WEB课程设计报告样板.docx
《WEB课程设计报告样板.docx》由会员分享,可在线阅读,更多相关《WEB课程设计报告样板.docx(40页珍藏版)》请在冰点文库上搜索。
WEB课程设计报告样板
南昌航空大学信息工程学院
课程设计说明书
课程名称:
WEB课程设计
设计题目:
房屋租赁管理系统
专业:
班级:
姓名:
学号:
评分:
指导教师:
2010年6月25日
基于PHP的房屋租赁管理系统
摘要:
21世纪,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。
个性化已逐渐成为当今Web应用的潮流。
如何通过网络有效进行交流是摆在我们面前的一个新领域。
本文阐述了如何构造一个基于PHP的房屋租赁管理系统,对B/S结构、PHP技术以及MySQL原理进行了较深入的论述。
阐述了对房屋租赁管理系统的需求分析、功能模块划分、数据库模式分析,功能模块的实现过程。
在此基础上,对所应用的关键技术进行描述。
最后,对程序调试与调试结果进行论述。
本文在研究目前国内外房屋租赁管理系统情况的基础上,从实际需求出发,采用当前较为流行的PHP动态网页开发技术,基于Windows2003操作系统和MySQL数据库环境,设计并实现了一个功能较为完善的房屋租赁管理系统。
通过对系统进行一系列的需求分析、设计、编码、测试等工作。
该系统普通用户可以浏览、查看房屋信息,也可以注册成为网站会员、登录网站,然后发布个人房屋信息,还可以查看该网站的新闻公告等;管理员可以对网站会员、房屋信息以及网站的新闻公告进行管理。
本文重点对系统设计过程做了相应描述,同时也对系统需要改进的地方做了总结。
关键词:
房屋租赁,管理系统,PHP,MySQL
基于PHP的房屋租赁管理系统
1绪论
1.1课题研究的背景介绍
说到房屋租赁,我们首先想到的就是房屋中介,但是不论对于房屋出租者还是对于求租者来说,要面对的各种问题实在让人头疼。
随着社会经济的发展,城市现代化建设步伐不断加快,城市规模不断扩大,人员的流动也不断加大,房屋租赁逐渐成为社会生活的重要组成部分。
无论是房屋出租还是房屋求租,都面临着大量需求。
首先是琳琅满目的中介公司让人感到无从选择,在要顾及中介单位可信度的同时,大量复杂的房产信息使他们感到迷茫,难以快速、准确地从中找到适合自己的房屋信息。
再者,出租、承租双方进行交易的时候还要通过中介,使交易过程更加繁琐。
而且中介单位还要收取的一定比例的中介费用,这也在一定程度上加重了房屋承租者的负担。
因此,现实社会中急需一个第三者为房屋出租者与房屋求租者牵线搭桥,来弥补中介单位的种种不足。
在互联网蓬勃发展的今天,网络和我们的生活、工作越来越密不可分,网络正领导着一个新时代的来临。
于是我们就利用开放的Internet技术,开发出实时、快捷、全方位传播信息的平台,我们制作的房屋出租管理系统的网站,就成了人们关于生活中住房问题的信息载体,使得房屋信息在出租者与求租者之间传播更为轻松。
这样,使原本复杂的房屋信息简单化。
系统能及时为他们提供服务,使出租求租双方都能够方便快捷的得到信息。
通过本系统来管理房屋出租情况,可以解决大量房屋信息的查询和管理、便于房屋出租者更好的发布其房屋信息,同时也为租房者提供方便。
1.2系统开发环境及开发平台介绍
1.2.1系统开发环境
硬件环境
1)CPU:
Intel酷睿2双核P8700;
2)内存:
4GB;
3)硬盘:
320GB.。
软件环境
1)操作系统:
WindowsXP;
2)数据库:
MySQL;
3)开发工具:
Editplus;
4)PHP服务器:
WAMP5-v1.7.4;
5)浏览器:
chrome。
1.2.2系统开发平台简介
1)系统开发平台
本系统开发语言选用PHP,所以采用Editplus为主要开发工具,然后结合Dreamweaver,phpmyadmin与WindowsXP操作系统进行。
既考虑了系统的需求,又兼顾了运行的效率,以及今后系统的功能拓展等。
2)Editplus简介
首先,EditPlus是一套功能强大的文本编辑器。
它拥有无限制的Undo/Redo功能,让你不再为一步误操作而后悔不已;其强劲的英文拼字检查、自动换行、列数标记、语法高亮显示、垂直选择、搜寻功能,让你全面体验记事本所没有的超强功能;它可以同时编辑多种文件类型,轻松做到“一旦拥有,别无所求”;另外还有全屏幕浏览功能;特别值得一提的是,它的监视剪贴板的功能,能同步于剪贴板自动将文字贴进EditPlus的编辑窗口中,让你省去粘贴的步骤。
其次,EditPlus还是一个好用的(X)HTML编辑器。
在EditPlus中设计网页和编辑一个文档没什么两样。
单击“File”→“New”→“HTMLPage”,就可以打开“HTML页面编辑器”窗口,使用它所提供的工具就可以直接进行网页的编辑与创作。
EditPlus除了可以对你直接输入的文字用颜色标记HTMLTag(同时支持C/C++、Perl、Java)外,还内建了完整的HTML和CSS1指令功能,你甚至可以一边编辑一边“浏览”(CTRL+B)页面效果。
对于习惯用记事本进行网页编辑的网友们来说,它可以帮你节省一半的网页编辑时间。
再次,EditPlus其他比较好用的功能包括:
可以设置工程并进行多文件查找;代码片断;自动完成;设置标记方便跳转。
2系统开发技术介绍
2.1系统的B/S结构
2.1.1B/S结构简介
B/S结构:
(Browser/Server,浏览器/服务器模式):
是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。
B/S模式体系结构的原理如图2.1所示,浏览器通过WebServer同数据库进行数据交互。
图2.1B/S模式体系结构原理图
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。
只要有一台能上网的电脑就能使用,客户端零维护。
系统的扩展非常容易。
B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
2.1.2B/S架构软件的优势与劣势
维护和升级方式简单。
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。
今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。
因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
成本降低,选择更多。
大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。
现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。
所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。
应用服务器运行数据负荷较重。
由于B/S架构管理软件只安装在服务器端上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端完全通过WWW浏览器实现,极少部分事务逻辑在前端实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
因此,许多单位都备有数据库存储服务器,以防万一。
2.1.3B/S框架与C/S框架的联系与区别
C/S是Client/Server的缩写。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。
客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
浏览器通过WebServer同数据库进行数据交互。
C/S与B/S区别:
1)硬件环境不同
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。
B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理。
有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2)对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强。
一般高度机密的信息系统采用C/S结构适宜。
可以通过B/S发布部分可公开信息。
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
3)对程序架构不同
C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。
比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。
4)软件重用不同
C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。
B/S面对的多重结构,要求构件相对独立的功能,能够相对较好的重用,就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。
5)系统维护不同
C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级。
升级难,可能要再做一个全新的系统。
B/S构件组成,方面构件个别的更换,实现系统的无缝升级。
系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。
6)处理问题不同
C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关,应该都是相同的系统。
B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的.与操作系统平台关系最小。
7)用户接口不同
C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。
B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流。
并且大部分难度减低,减低开发成本。
8)信息流不同
C/S程序一般是典型的中央集权的机械式处理,交互性相对低。
B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更像交易中心。
2.2PHP技术概述
2.2.1PHP简介
PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。
它可以比CGI或者Perl更快速的执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP最初是1994年RasmusLerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。
后来又用C语言重新编写,包括可以访问数据库。
在1995年以PersonalHomePageTools(PHPTools)开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。
在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。
以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。
第二版定名为PHP/FI(FormInterpreter)。
PHP/FI加入了对mySQL的支持,从此建立了PHP在动态网页开发上的地位。
到了1996年底,有15000个网站使用PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。
而在1997年中,开始了第三版的开发计划,开发小组加入了ZeevSuraski及AndiGutmans,而第三版就定名为PHP3。
2000年,PHP4.0又问世了,其中增加了许多新的特性。
2.2.2PHP技术的强势与弱势分析
PHP技术的强势
1)PHP是免费的。
2)php的便捷性:
php十分便捷,学习简单
3)基于服务器端:
由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。
4)嵌入HTML:
因为PHP可以嵌入HTML语言,所以学习起来并不困难。
5)简单的语言:
PHP坚持脚本语言为主,与Java和C++不同。
6)效率高:
PHP消耗相当少的系统资源。
7)图像处理:
用PHP动态创建图像
8)面向对像:
在php4,php5中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。
9)PHP相对于其他语言,编辑简单,实用性强,更适合初学者。
。
PHP技术的弱势:
1)缺乏对名字空间的支持。
名字空间(namespace)是开发大型应用程序时非常有用的特性,它能够代码中的名字分配到不同的空间中,从而避免它们互相冲突。
如果没有名字空间,在使用第三方库的时候,很容易遇到名字冲突的问题,即不同的类、接口、函数或全局变量使用了同样的名字。
C++/Java/C#等语言都支持名字空间。
名字空间本来是PHP5开发计划的一部分,但是由于这一特征对性能造成了明显的影响,最终在发布版中被取消了。
因此,直到现在,PHP程序员们仍然不得不使用非常长的名字(诸如Canata_Util_ConvertHtml())来避免名字冲突。
2)缺乏对Unicode的支持。
PHP5仍然没有添加对Unicode的内置支持,仅仅是增加了一些多字节字符串(MultibyteString)处理函数,而这些函数需要在编译时手工指定才能够打开。
据说Unicode将在PHP6中得到完整的支持。
3)缺乏统一的命名规范。
和Java不同,PHP没有统一的命名规范。
因此,PHP程序员随心所欲地使用他愿意使用的任何命名规范。
象converttohtml()、ConvertToHtml()和convert_to_html()这样的命名规范往往同时被使用。
对于程序员自己来说,只要坚持使用一种命名规范,倒不是什么太大的问题;但是如果需要用到第三方库的时候,这种经验就不那么令人愉快了。
4)缺乏标准框架。
到目前为止,PHP社区没有出现一套统一的、完整的Web开发框架,象Struts或RubyonRails那样。
PHP程序员只有可复用的函数和类。
这也许要部分地归因于PHP本身的特性,由于它无法实现有效的缓存机制,因此也无法构建传统的MVC框架。
2.2.3PHP动态网站开发技术
PHP原本的简称为PersonalHomePage,是RasmusLerdorf为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的Perl程序。
最初这些工具程序用来显示RasmusLerdorf的个人履历,以及统计网页流量。
他将这些程序和一些表单直译器整合起来,称为PHP/FI。
PHP/FI可以和数据库连接,产生简单的动态网页程序。
RasmusLerdorf在1995年6月8日将PHP/FI公开释出,希望可以透过社群来加速程序开发与寻找错误。
这个释出的版本命名为PHP2,已经有今日PHP的一些雏型,像是类似Perl的变量命名方式、表单处理功能、以及嵌入到HTML中执行的能力。
程序语法上也类似Perl,有较多的限制,不过更简单、更有弹性。
在1997年,任职于TechnionIIT公司的两个以色列程序设计师:
ZeevSuraski和AndiGutmans,重写了PHP的剖析器,成为PHP3的基础,而PHP也在这个时候改称为PHP:
HypertextPreprocessor.[5]。
经过几个月测试,开发团队在1997年11月释出了PHP/FI2,随后就开始PHP3的开放测试,最后在1998年6月正式释出PHP3。
ZeevSuraski和AndiGutmans在PHP3释出后开始改写PHP的核心,这个在1999年释出的剖析器称为ZendEngine[7],他们也在以色列的RamatGan成立了ZendTechnologies来管理PHP的开发。
在2000年5月22日,以ZendEngine1.0为基础的PHP4正式释出,2004年7月13日则释出了PHP5,PHP5则使用了第二代的ZendEngine[5]。
PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHPDataObjects,一个存取数据库的延伸函数库)、以及许多效能上的增强。
目前PHP4已经不会继续更新,以鼓励用户转移到PHP5。
2008年PHP5成为了PHP唯一的有在开发的PHP版本。
将来的PHP5.3将会加入Latestaticbinding和一些其他的功能强化。
PHP6的开发也正在进行中,主要的改进有移除register_globals、magicquotes和Safemode的功能。
2.3MVC及Struts介绍
2.3.1MVC介绍
MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。
即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
模型(Model):
就是业务流程/状态的处理以及业务规则的制定。
业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心。
目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。
它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。
对一个开发者来说,就可以专注于业务模型的设计。
MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。
抽象与具体不能隔得太远,也不能太近。
MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。
我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。
这点对编程的开发人员非常重要。
业务模型还有一个很重要的模型那就是数据模型。
数据模型主要指实体对象的数据保存(持续化)。
比如将一张订单保存到数据库,从数据库获取订单。
我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层并不做任何的数据处理。
例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。
因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。
因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。
这实际上是一种模型的变化-传播机制。
模型、视图、控制器三者之间的关系和各自的主要功能,如图2.2所示。
图2.2MVC组件类型的关系和功能
2.3.2Struts介绍
Struts和其他的java架构一样,Struts也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。
Struts框架的核心是一个弹性的控制层,基于如JavaServlet,JavaBeans,ResourceBundles与XML等标准技术,以及JakartaCommons的一些类库。
Struts有一组相互协作的类(组件)、Serlvet以及jsptaglib组成。
基于Struts构架的Web应用程序基本上符合JSPModel2的设计标准,可以说是一个传统MVC设计模式的一种变化类型。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。
除此之外,Struts的优点主要集中体现在两个方面:
Taglib和页面导航。
Taglib是Struts的标记库,灵活动用,能大大提高开发效率。
另外,就目前国内的JSP开发者而言,除了使用PHP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
3系统分析
3.1任务描述
为了实现网络化、科学化、现代化的房屋出租管理,使用MySQL和JavaScript及数据库技术相结合,编写一个B/S结构的房屋出租管理系统。
系统的总体设计应该是提供给上网浏览者一个高效率,能进行丰富的网上活动的网站,为网站用户提供及时发布、查询房屋租赁信息的平台。
系统目标如下:
1)应用网络的优势,开发房屋出租信息网站,方便房屋出租者与房屋求租者交流,可以使双方都能