基于JSP和sql server小区物业管理系统毕业论文(含源文件)


获取项目源文件,联系Q:1225467431,可指导毕设,课设


摘 要
当今社会,互联网信息的迅速发展在不断地影响着我们的生活。也使城市生活中的小区物业管理越来越信息化。本系统是在我了解了小区物业管理的基本流程后设计而成的,实现了管理员,住户对小区物业不同权限的管理。使得整个小区物业管理能在本系统下顺利的运行。
本系统主要利用tomcat6.0作为系统服务器,使用Myeclipse8.5作为开发平台,采用JSP作为开发语言,结合SQL server2005数据库开发的一个基于B/S体系结构的国际花都小区物业管理系统。该系统主要实现了物业信息管理,住户信息管理,房屋信息管理等模块。同时设置了小区物业管理员和住户两个不同权限的对象,提高了管理效率。该系统主要运行的管理项目有住户缴费信息管理,住户报修信息管理,住户投诉信息管理,住户信息管理,房屋信息管理。其中缴费信息,报修信息,投诉信息还可生成报表导出。通过运行与测试,成功实现了该系统的所有功能。
关键词:小区;物业管理;JSP;SQL server2005
Abstract
In todays society, the rapid development of the Internet information is constantly affecting our lives. Also make the residential property management in urban life more and more informationalized. This system which achieved the management of administrator as well as the inhabitants is designed after the understanding of the basic process of residential property management.So that the function of entire residential property management can run with this system smoothly.
This system mainly use the tomcat6.0 server and myeclipse8.5 which is used as a development platform. The system also using JSP as a development language, which combined with SQL Server2005 database development one based on B / s system structure of the Huadu District property management system. This system mainly realizes the property information management, the inhabitant information management, the housing information management and so on module. At the same time,the system setted two different rights, the district property managers and tenants ,to operate itself,which improves the managements efficiency. The main functions of the system are household payment information management, household repair information management, tenants complaints, information management, household information management and housing information management. The payment information, repair information and complaint information can also make reports. At last, all the functions of the system are realized successfully by systems running.
Key Words:Compounds; Property management; JSP; SQL server2005
目 录
TOC 1-3 HYPERLINK l _Toc8978 摘 要 I
HYPERLINK l _Toc7364 Abstract II
HYPERLINK l _Toc23194 1. 引言 1
HYPERLINK l _Toc15178 1.1 开发背景 1
HYPERLINK l _Toc14803 1.2 研究意义 1
HYPERLINK l _Toc20186 1.3 开发工具 2
HYPERLINK l _Toc18061 1.3.1 Tomcat 2
HYPERLINK l _Toc16650 1.3.2 Myeclipse 2
HYPERLINK l _Toc23298 1.3.3 B/S体系结构 2
HYPERLINK l _Toc9791 2. 需求分析 4
HYPERLINK l _Toc6348 2.1 需求分析 4
HYPERLINK l _Toc9547 2.2 设计要求 5
HYPERLINK l _Toc28813 2.3 可行性分析 7
HYPERLINK l _Toc9464 3. 系统设计 9
HYPERLINK l _Toc19408 3.1 系统总结构 9
HYPERLINK l _Toc14058 3.2 数据库设计 11
HYPERLINK l _Toc4842 3.2.1 E-R图设计 11
HYPERLINK l _Toc12917 3.2.2 数据库表的设计 13
HYPERLINK l _Toc22241 3.2.3 数据库的连接 15
HYPERLINK l _Toc18278 4. 系统实现 17
HYPERLINK l _Toc26539 4.1 用户登录 17
HYPERLINK l _Toc20430 4.2 管理员模块 18
HYPERLINK l _Toc8513 4.2.1 物业管理模块 18
HYPERLINK l _Toc8517 4.2.2 报表统计模块 20
HYPERLINK l _Toc20051 4.2.3 基本资料管理模块 21
HYPERLINK l _Toc24908 4.3 住户模块 25
HYPERLINK l _Toc13735 4.3.1 住户注册模块 25
HYPERLINK l _Toc15795 4.3.2 住户功能模块 26
HYPERLINK l _Toc20328 5. 系统测试与运行 28
HYPERLINK l _Toc12587 5.1 系统测试 28
HYPERLINK l _Toc18926 5.2 系统运行 28
HYPERLINK l _Toc32109 6. 结论 30
HYPERLINK l _Toc457 参考文献 31
HYPERLINK l _Toc3998 附 录 32
HYPERLINK l _Toc28431 致 谢 43
1. 引言
1.1 开发背景
物业管理是一种新型的综合性服务体系,近几年,随着我国城市化建设的推进,物业管理的服务范畴也在不断扩大,具有广阔的服务前景[1]。本行业的发展需要符合客观的经济规律,符合广大消费者的需求。在发展过程中还在不断完善,随着社会的进步,物业管理还有很多的空间可以发展进化。目前这种网络化的物业管理已经渐渐被大众所接受,城市化的发展也促进了物业管理的发展脚步。
小区管理是我们生活中密不可分的一部分,传统办法是使用手动方式来管理小区物业,这种管理方式有很多弊端,例如:管理繁琐,效率低下,易出错等。这对于小区物业管理者来说,是个相当大的难题。
随着科学技术的发展与不断进步,计算机科学技术在近几年发展超前迅速。人们将其运用到生活的各个方面,它已是人们生活必不可少的一部分,也为我们带来了极大的便利。运用计算机技术对小区物业进行网络化管理,也是形势所向,它完善了手动化管理所存在的缺点,使其成为优势,如:管理便利,运行流畅,操作便利,安全性好,成本低等。
1.2 研究意义
物业管理是社会发展的客观需求和必然产物,它是房地产经营管理的重要影响因素,又是城市发展的的重要组成部分。物业管理的发展影响着社会经济,人文环境等各方面的直接利益。因此,小区物业管理的发展具有十分重要的意义。
小区物业管理的发展促进了社会经济的发展,给社会带来了直接利益,并带动了国民经济的发展[2]。信息化的物业管理消除了传统房屋人工化管理不便,低效率的弊端,产生了房地产开发,经营,服务一体系的信息化管理体系。良好的物业管理可以使物业管理流程正常运行,给予人们优良的居住环境,完好的服务体系。房地产方面还可以不断完善物业管理,让信息化的物业管理适应社会的发展,保持持久的使用寿命。物业管理的发展也提高了人们生活水平的质量,随着社会城市化的推进,居民群众的生活需求也越来越高。提高人们群众的居住质量,不仅需要住宅产业的科技化发展,还需要良好的物业管理。这样才能大大改善居民群众的生活质量,让信息化科技融入群众的生活中。
物业管理的发展还有促进了居民居住环境的稳定。维护维护社区的安全,创造健康,优良的生活环境[3]。物业管理是社区服务非常重要的一部分,在社区服务中也发挥着重要的作用。物业管理可以有效地维护社区环境和秩序,也可以协助相关部门做好防范犯罪事故的事宜。物业管理推进了社区服务的建设,为居民提供了良好的居住环境,也促进了社区安定和社区精神文明的建设。随着人们对居住环境的要求的提高,社区服务管理公司不仅需要为居民提供住宅,绿化等硬件服务,也需要提供现代化的信息网络服务体系。利用这个系统可以及时的反应住户的需求,物业管理员也可以及时地提供服务。
小区物业管理的开发可以让小区物业的管理更加协调,规范,也为物业管理公司提供了一套高效、便捷的管理方式[4]。
1.3 开发工具
本系统主要利用tomcat6.0作为系统服务器,使用Myeclipse8.5作为开发平台,采用JSP作为开发语言,结合SQL server2005数据库开发的一个基于B/S体系结构的国际花都小区物业管理系统。
1.3.1 Tomcat
Tomcat服务器是开发源代码的Web应用服务器,是目前比较流行的Web应用服务器之一,Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目[5]。由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费。因此深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。本系统采用的是Tomcat6.0版本。
1.3.2 Myeclipse
Myeclipse是一个专门为Eclipse设计的商业插件和开源插件的完美集合。Myeclipse为Eclipse提供了一个大量私有和开源的Java工具的集合,Myeclipse目前支持Java Servlet、AJAX、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC数据库链接工具等多项功能[6]。可以说Myeclipse几乎囊括了目前所有主流开源产品的专属Eclipse开发工具,很大程度上解决了各种开源工具的不一致和缺点问题,并大大提高了Java和JSP应用开发的效率。Myeclipse包含大量由其他组织开发的开源插件,Genuine增强了这些插件的功能并且撰写了很多使用文档,便于开发者学习。Myeclipse插件对加速Eclipse的流行起到了很重要的作用,并大大简化了复杂Java和JSP用用程序的开发。
1.3.3 B/S体系结构
目前在开发领域中主要分为两大编程体系,一种是基于浏览器的B/S(Browser/Server)结构,另一种是C/S(Client/Server)结构,本系统采用B/S体系结构[7]。B/S结构编程语言分成浏览器端编程语言和服务器端编程语言。所谓浏览器端编程语言就是这些语言都是被浏览器解释执行。HTML和CSS是由浏览器解释的,JavaScript语言和VBScript语言也是在浏览器上执行的。为了实现一些复杂的操作,比如连接数据库、操作文件等,需要使用服务器端编程语言。目前主要是ASP.NET、JSP、PHP三种技术。B/S结构是随着Internet技术的兴起,对C/S结构的一种变化和改进。C/S结构应用程序最大特点是在每个用户端需要安装程序,所有用户端程序和中心服务器进行信息交互,而B/S结构是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S三层体系结构采用三层客户/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。
图1-1 系统使用者的机构图
2. 需求分析
2.1 需求分析
在软件工程中,需求分析指的是在创建或更改一个系统时描写系统的目的、任务、范围、定义和功能时所需要做的一系列的工作[8]。物业管理主要是处理住户与住宅的各种问题,服务于住户群众,给予居民群众良好的生活环境。物业管理的范围主要是对住户的日常管理,管理范围较广,如水费,电费缴纳,房屋报修,维修,住户投诉,处理等。
考虑到小区物业管理的普遍要求,国际花都小区物业管理系统主要功能模块有六大模块。账户登录管理,住户信息管理,房屋信息管理,物业缴费管理,房屋报修管理,住户投诉管理。系统所面向的使用对象为管理员及住户,实现管理员通过网络系统对小区住户,房屋等的管理。
(1)账户登录模块
登录模块面向的对象是管理员与住户。
物业管理员以管理员身份获得账号和密码,登录后可修改自身密码。
住户通过用户注册获得登录名和密码,登陆后可修改自身密码。
(2)住户信息管理
管理员登录后有对住户信息进行增加,修改,删除,查询的功能。
用户登录无此模块。
(3)房屋信息管理
管理员登录后有对房屋信息进行修改,删除,查询的功能。
用户登录无此模块。
(4)物业缴费管理
管理员账号登录后有对物业缴费信息进行增加,修改,删除,查询的功能。
用户登录可对本人的物业缴费进行查询功能。
(5)房屋报修管理
管理员登录后有对房屋报修信息进行查询,修改的功能。(如查询住户的房屋报修信息,处理后可将处理结果修改为已处理)。
用户登陆后可对房屋报修信息进行查询,增加,删除功能。(如对房屋报修信息进行增加,查询,对已处理的报修信息进行验证,若成功解决,可关闭问题,即删除功能,若未解决,可将处理结果修改为未处理)。
(6)住户投诉管理
管理员登录后可对住户投诉信息进行查询,修改功能。(如查询用户的住户投诉信息,处理后可将处理结果修改为已处理)。
用户登陆后可对住户投诉信息进行查询,增加,删除功能。(如对住户投诉信息进行增加,查询,对已处理的投诉信息进行验证,若成功解决,可关闭问题,即删除功能,若未解决,可将处理结果修改为未处理)。
2.2 设计要求
通过对本系统使用对象的调查,了解了各个对象的客观需求,分析得出了本系统使用者的机构图,如下:
图2-1 系统使用者的机构图
传统的小区物业管理是采用人工方式管理,这种管理方式存在很大的弊端,不利于查找,处理事物等,还会产生一定的数据冗余度。本系统遵循用户参与原则,对小区物业管理的流程进行了一定的了解后,做出了具体的分析,列出了本系统应该要完成各模块的的工作流程。
1.业务管理员的业务流程
管理员要对物业收费进行录入和管理,并可生成报表,如图2-2所示。
图2-2 物业收费管理
管理员要对投诉信息进行管理,包括查看,处理等功能,并可生成报表。如图2-3所示。
图2-3 投诉信息管理
管理员要对投诉信息进行管理,包括查看,处理等功能,并可生成报表。如图2-4所示。
图2-4 报修信息管理
管理员要对住户信息进行管理,包括查看、修改等功能,并可生成报表。如图2-5所示。
图2-5 住户信息管理
管理员要对房屋信息进行管理,包括录入、查看、修改等功能,并可生成报表。如图2-6所示。
图2-6 房屋信息管理
2.用户的业务流程
用户要对投诉信息进行管理,包括录入的功能。如图2-7所示。

图2-7 用户投诉流程
用户要对报修信息进行管理,包括录入的功能,如图2-8所示。

图2-8 报修投诉流程
在对物业管理的实际操作进行具体分析后,制定以上流程,该流程条理清晰,操作简便,功能全面,给物业管理员及住户都提供了良好的操作平台。在组织结构分析与业务流程分析后,管理员与住户的具体功能需求也基本确定。管理员作为系统的管理者,基本拥有所有物业信息的处理权限,如增加,修改,删除等。而用户的权限主要是查看自身的信息,还可以增加投诉,报修的信息。
整体的设计要求总结为:
(1)该系统要在Windows操作平台下运行,具有良好的登录界面。
(2)该系统分为两个用户类型:管理员、用户。
(3)系统对于一个用户只允许以一种身份登录。
2.3 可行性分析
在系统调查和业务流程分析的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决[9]。如果有,则采用合理有效的方法准确估计项目的可行性、软件规模和项目的开发成本,若没有,则应该尽早停止项目的开发,从而避免人力、物力、财力的浪费。
1. 技术可行性
本系统的数据库较小,在系统响应时间上及操作处理上都不存在什么问题。由于采用数据库技术并且用户的应用领域对数据精确度的要求不是太高,所以这点在系统中表现得比较少,但是用户数据的安全性与正确性是完全保证的,所以对用户的使用没有多大的障碍。
根据本系统功能需求,采用的开发工具为JSP及数据库SQL Server2005,由于JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。而SQL2005作为一种快速的、多线程、多用户和健壮的数据库服务器,根据第三方测试结果,在千万级的数据环境中依然保持较高的执行速度。因此在技术层面上,是完全可行的。而且SQL是一个非过程化的语言,可用于所有用户的数据库活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。基本的SQL命令只需要很少时间就能学会,最高级的命令在几天内便可掌握。SQL Server功能强大,而且很多信息管理系统都是用SQL Server作后台,对体育场地预约管理系统的开发是可行的。
2. 经济可行性
本系统开发所需的硬件为普通计算机一台,计算机的操作系统是Windows7,所使用的开发工具包括Myeclipse、SQL Server 2005和Tomcat,开发成本较低。用户使用本系统只需一台带有浏览器并可以连接Internet的计算机即可。
本环节通过分析新系统的成本效益,其中包括估计项目开发的成本,开发费用和今后的运行、维护费用以及新系统将获得的效益,估算开发成本是否高于项目预期的全部经费。下面具体列出了成本和效益的分析:
(1)支出
物业公司具有基础的信息化设施,目前各个部门使用计算机进行办公,建立了网络管理中心,负责管理和维护公司的计算机以及网络设施。物业公司的网络环境和基础设施能满足本系统的实施要求,所以无须另外的资金投入。
(2)效益
本系统的效益可以从经济效益和社会效益两方面考虑。其社会效益包括系统投入运行后可以使物业管理实现科学化、规范化,增强工作人员对物业信息的管理能力,从而提高工作效率,从长远来看,网上管理也是管理信息化的必经之路,这一系统的实施,实现了无纸化”办公,带动企业的其他信息化建设,推动企业的信息化水平更上一层楼。其经济效益包括系统的正常运行替代了以前的手工操作,这将大量减少员工开支和办公用品的开支等。
由以上可知,本系统在经济上是可行的。
3. 系统设计
3.1 系统总结构
根据之前的需求分析及可行性分析,本系统的小区物业管理设计的主要功能有:房屋信息管理(包括对小区所有房屋资料的录入、删除、修改、查询等功能实现),住户信息管理(包括对住户信息的增加、删除、修改、查询等功能的实现),物业信息管理(包括物业缴费信息、住户投诉信息、住户报修信息的增加,修改,删除,查询等功能的实现)。由此确定了系统的总体结构框架,如图3-1所示。
图3-1系统功能结构图
在业务流程分析的基础上,对数据流进行了分析,从数据流动过程考察了实际业务的数据处理模式。存在数据流程不畅等问题。现行的顶层数据流图如图3-2所示。
图3-2 数据流图
具体分析第一层数据流图,主要包括两个部分:物业信息和基本资料的录入。方便人员统计和查询信息,都有系统统一管理存储。该层数据流图如图3-3所示。
图3-3 第一层数据流图
分析物业信息录入。详细介绍如下。
物业管理员登录系统后,系统对收费信息进行管理。一次录入详细数据流图如图3-4所示。
图3-4 收费信息数据流图
系统的实施会简短数据的流程,并把信息集中统一于系统,方便用户查询和统计,给操作人员带了很大的工作便利。
3.2 数据库设计
数据库设计是系统设计中非常重要的一个环节。数据是一切系统设计的基础,通俗地说,数据库设计就像高楼大厦的根基一样,如果设计的不合理、不完善,将在系统开发过程中,甚至到后期的系统维护、功能变更和功能扩充时,引起较多问题,严重时甚至要重新设计,重做大量已完成工作[10]。
3.2.1 E-R图设计
数据库设计的第一步,设计E-R图。根据功能模块划分的结果,具体分析了本系统具有的实体,实体属性图如图所示。
图3-5 住户E-R图
图3-6 房屋E-R图
图3-7 收费E-R图
图3-8 报修E-R图
图3-9 实体属性图
得出总体E-R图,如图3-10所示。
图3-10 总体E-R图
3.2.2 数据库表的设计
在关系数据库系统中,数据库的逻辑设计就是根据概念模型设计的E-R图,按照E-R图到关系数据模型的转换规则,将E-R图转换成关系模型的过程,即将所有的实体和联系转化为一系列的关系模式的过程。
由此规则,以及根据上一章的概念设计中的E-R图,得到小区物业管理系统各个实体的关系模式如下:
住户信息表:(编号,登录名,密码,姓名,楼栋,房号,身份证号,联系电话)其中住户编号为主键;
房屋信息表:(编号,户型,楼栋,房号,面积,房屋状态)其中房屋编号为主键;
缴费信息表:(编号,楼栋,房号,收费金额,收费事由,收费状态)其中缴费编号为主键;
住户报修表:(编号,楼栋,房号,报修内容,处理状态,备注)其中报修编号为主键;
住户投诉表:(编号,楼栋,房号,投诉内容,处理状态,备注)其中投诉编号为主键;
由此,可得到以下数据库表。
1.sysuser(用户信息表)
该表存储了用户的基本信息,主要是用户信息的记录,该表的字段属性如表3-1。
表3-1 用户信息表
字段名 字段类型 字段长度 是否主键 描述
Id int 11 是 编号
Uname Varchar 160 否 登录名
upass Varchar 160 否 密码
Utype Varchar 80 否 类型
Truename Varchar 80 否 姓名
Louno Varchar 80 否 楼号
Houseno Varchar 80 否 房号
Phone Varchar 80 否 电话
sfid Varchar 80 否 身份证号
2.housees(房产信息表)
该表存储了房产的基本信息,主要是房产信息的记录,该表的字段属性如表3-2。
表3-2 房产信息表
字段名 字段类型 字段长度 是否主键 描述
Id int 11 是 编号
Louno Varchar 160 否 楼号
Houseno Varchar 160 否 房号
housetype Varchar 80 否 户型
mianji Varchar 80 否 面积
housezt Varchar 80 否 房屋状态
3.shoufei(收费信息表)
该表存储了收费的基本信息,主要是收费信息的记录,该表的字段属性如表3-3。
表3-3 收费信息表
字段名 字段类型 字段长度 是否主键 描述
Id int 11 是 编号
author varchar 50 否 缴费人
louno varchar 50 否 楼号
houseno varchar 50 否 房号
Shoufje Varchar 50 否 收费金额
Shouftime Varchar 50 否 收费时间
Shoufsy Varchar 50 否 收费事由
shoufzt Varchar 50 否 收费状态
4.tous(投诉信息表)
该表存储了投诉的基本信息,主要是投诉的信息的记录,该表的字段属性如表3-4。
表3-4 投诉信息表
字段名 字段类型 字段长度 是否主键 描述
Id Varchar 50 是 编号
Author Varchar 70 否 投诉人
louno varchar 50 否 楼号
houseno varchar 50 否 房号
tousunr varchar 255 否 投诉内容
chulizt varchar 255 否 处理状态
beizhu varchar 500 否 备注
5.baoxiu(报修信息表)
该表存储了报修的基本信息,主要是报修的信息的记录,该表的字段属性如表3-5。
表3-5 报修信息表
字段名 字段类型 字段长度 是否主键 描述
Id Varchar 50 是 编号
Author Varchar 70 否 报修人
louno varchar 50 否 楼号
houseno varchar 50 否 房号
baoxiunr varchar 255 否 报修内容
chulizt varchar 255 否 处理状态
beizhu varchar 500 否 备注
3.2.3 数据库的连接
本系统应用JDBC进行数据库的开发。JDBC主要有三种作用,分别是与数据库连接,发送SQL语句和处理语句执行结果。JDBC提供了连接数据库的几种方法,即与数据元直接通信,通过JDBC驱动程序通信以及与JDBC数据源通信。本系统最重要的一部分就是完成数据库的连接以及数据库的操作。在对数据完成操作后,信息都要写入数据库才能实现功能,数据库与系统连接完成才能进行后面的增加,修改,删除等功能,主要代码如下:
public Connection getConn()
{
try
{
String d = new Date().toLocaleString().substring(0,9);
Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);
conn = DriverManager.getConnection(jdbc:sqlserver://127.0.0.1:1433;DatabaseName=wuyegl;User=sa;Password=123456);
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
4. 系统实现
在系统总结构设计好后,本阶段要进行系统实现的详细设计。主要分为三大部分进行介绍,分别为用户登录,管理员模块,住户模块。
4.1 用户登录
在登录页面中选择用户类型,输入用户名和密码,然后单击登录按钮,index.aspx.cs页面将负责处理登录请求,验证用户身份和信息,完成登录。登录页面如图4-1所示。
图4-1 登录页面
根据变量用户类型utype来区分用户类型,管理员的utype值为1,住户注册用户时,用户类型utype自动写为0。用户登录时,根据utype的值区分登录用户的权限。登录成功后页面上方显示登录名以及用户角色。代码如下:

当前登录用户:<%=user.get(uname) %>  
用户角色:<%=user.get(utype).equals(0)?管理员:住户 %>

用户登录时,还要根据变量uname以及upass来判断用户名和密码的正确性,若用户名或密码输入错误,会提示用户名或密码错误”,无法登陆。代码如下:
String sql = select * from sysuser where uname=+uname+ and upass=+upass+;
System.out.println(sql);
List list = dao.select(sql);
if(list.size()==1)
{
session.setAttribute(admin, list.get(0));
gor(/wuyegl/admin/main.jsp, request, response);
}else{
request.setAttribute(error, );
go(/admin/login.jsp, request, response);
}
}
本系统有两种身份的用户,分别是管理员、住户。
4.2 管理员模块
管理员登录系统后,根据右边的导航栏,点击相应模块可进行增删查改等操作。
4.2.1 物业管理模块
物业管理模块包括收费管理,投诉处理,报修处理三个部分,管理员对这三个模块的主要功能为增加,修改,删除,查询。以收费管理为例,进入收费管理模块,管理员对收费信息有新增,修改,查询和删除权限。进入缴费管理页面后,点击列表上方的添加按钮,弹出新增窗口,正确填写信息后,点击提交信息按钮即可新增信息。如图4-2所示。
图4-2 新增缴费界面
新增缴费信息窗口有六项字段,其中楼栋、房号、收费事由、收费状态为下拉框选项,其中楼栋(louno)和房间号(houseno)只能选择房间状态即变量housezt为租借的房间号。由收费表中的author字段与房屋表中的id对应,由此获得房屋状态housezt为租借的楼栋及房间号。代码如下:
String louno = request.getParameter(louno);
String houseno = request.getParameter(houseno);
String sql1=select id from sysuser where louno=+louno+ and houseno=+houseno+ ;
List list = dao.select(sql1);
String author = list.get(0).get(id).toString();
收费事由(shoufsy)默认显示为--请选择--”,可选择项为电费,水费以及其他。收费状态(shoufzt)默认显示为--请选择--”,可选择项为未缴,已缴。收费时间(shouftime)和收费状态(shoufzt)为输入框。
点击操作栏的修改按钮可完成修改功能。修改窗口的字段与新增窗口相同,但各字段需要显示该信息在数据库中的信息,楼栋,房号的下拉框选择权限也如新增窗口的。界面显示如图4-3:
图4-3 修改缴费界面
修改缴费信息的界面设计,变量都与新增缴费信息一样,主要不同在于各变量默认显示该条缴费信息本身的信息。代码如下:
String sql = update shoufei set louno=+louno+,houseno=+houseno+,shouftime=+shouftime+,shoufsy=+shoufsy+,shoufje=+shoufje+,shoufzt=+shoufzt+ where id=+id;
System.out.println(sql);
dao.commOper(sql);
request.setAttribute(suc, );
go(/admin/addshoufei.jsp, request, response);
管理员对缴费信息还有删除和查询的权限,点击操作栏的删除按钮可完成删除功能,在查询输入框中输入对应的查询条件,点击查询按钮即可,还可支持模糊查询。界面如图4-4所示。
图4-4 缴费管理界面
删除功能是根据所点击的信息对应的id,由此来删除数据库中的信息,也就不再显示已删除的信息了。代码如下:
String did = request.getParameter(did);
if(did!=null)
{
dao.commOper(delete from shoufei where id=+did);
}
查询功能是根据查询条件所对应的变量,即为楼栋louno,并且支持模糊查询。代码如下:
String hql = select * from shoufei ;
String url = /wuyegl/admin/shoufei.jsp?1=1;
String key = request.getParameter(key)==null?:request.getParameter(key);
if(!key.equals())
{
hql+= and (louno like%+key+% );
url+=&key=+key;
}
4.2.2 报表统计模块
管理员对投诉信息,报修信息以及缴费信息还有报表统计的功能,管理员登录后,进入报表统计模块,对这三个模块的权限只有查询及导出报表的功能。界面如图4-5所示。
图4-5 报表统计界面
以收费统计为例,列表显示的字段有楼栋,房间号,收费时间,收费事由,收费金额,收费状态。查询功能与物业管理模块的设计相同,导出报表功能是依据数据库中各字段代表值依次导出,代码如下:
if(ac.equals(bbshoufei))
{
List list = dao.select(select louno,houseno,shouftime,shoufsy,shoufje,shoufzt from shoufei );
String[] pros = {楼栋,房间号,收费时间,收费事由,收费金额,收费状态};
Info.writeExcel(request.getRealPath(/upfile)+/+bbshoufei.xls, pros, list, request, response);
gor(/wuyegl/upload?filename=bbshoufei.xls, request, response);
}
4.2.3 基本资料管理模块
基本资料管理模块包括三个部分,住户资料管理,房屋资料管理,修改登录密码。其中管理员对住户资料有修改,删除,查询权限,对房屋资料有增加,修改,删除,查询的权限。以房屋资料管理为例,列表显示的字段有楼栋,房号,户型,面积,房屋状态,基本操作。点击列表上方添加按钮,弹出新增出口,正确填写信息后点击提交信息按钮即可。如图4-6所示。
图4-6 新增房产资料界面
新增窗口显示的字段包括楼栋,房间号,户型,面积。其中楼栋,房间号,户型为下拉框选项,面积为输入框。而房屋状态字段值是在新增房产信息后,数据库自动写入空闲”。代码如下:
if(ac.equals(addhousees))
{
String louno = request.getParameter(louno);
String houseno = request.getParameter(houseno);
String housetype = request.getParameter(housetype);
String mianji = request.getParameter(mianji);
String housezt = 空闲;
}
修改房产信息时,界面设计与新增信息时一致,但各字段默认值显示该条信息在数据库中显示的数据。需要注意的是,修改以及新增操作都不可以出现两个相同的楼栋及房间号,界面显示如图4-7:
图4-7 房间号重复界面
要判断变量louno与houseno的值是否在数据库中已存在,若已存在则提示该楼栋的房间号已存在”,新增或修改失败。代码如下:
String csql = select * from housees where louno=+louno+ and houseno=+houseno+;
if(dao.select(csql).size()>0)
{
request.setAttribute(euc, );
go(/admin/addhousees.jsp, request, response);
}else{
String sql = insert into housees values(+louno+,+houseno+,+housetype+,+mianji+,+housezt+);
dao.commOper(sql);
request.setAttribute(suc, );
go(/admin/addhousees.jsp, request, response);
}
管理员对住户及房产资料都有查询及删除权限,其功能设计与物业管理模块相同,界面显示如图4-8所示。
图4-8 房产资料界面
修改登录密码模块包括原密码,新密码,重复新密码三个输入框,界面如图4-9所示。
图4-9 修改密码界面
此模块主要是对变量upass的修改操作,根据登录用户的id查询出用户的原密码,才可以进行修改密码的操作。代码如下:
if(!user.get(upass).equals(oldpass))
{
request.setAttribute(error, );
go(/admin/uppass.jsp, request, response);
}else{
String sql = update sysuser set upass=+upass+ where id=+user.get(id);
dao.commOper(sql);
request.setAttribute(suc, );
go(/admin/uppass.jsp, request, response);
}
}
4.3 住户模块
4.3.1 住户注册模块
住户在登录系统之前都要先注册用户,点击登录页面的用户注册按钮,弹出注册窗口,正确填写信息后点击提交信息即可,界面显示如图4-10所示。
图4-10 住户注册界面
此操作实际是新增住户信息的操作,界面显示的字段包括登录名,密码,姓名,楼栋,房间号,身份证号,联系电话。其中登录名(uname),密码(upass)即为该住户登录时的用户和密码,不同住户注册时不可以重复登录名。主要代码如下:
String uname = request.getParameter(uname);
String csql = select * from sysuser where uname=+uname+;
if(dao.select(csql).size()>0)
{
request.setAttribute(error, );
go(/admin/adduser.jsp, request, response);
}else{
String housezt=租借;
}
}
楼栋和房间号只能选择房屋状态为空闲的选项。代码如下:
String louno = request.getParameter(louno);
String housezt =空闲;
String sql = select * from housees where louno=+louno+ and housezt=+housezt+ ;
住户注册后该房屋的房屋状态(housezt)自动转为租借”。代码如下:
String louno = request.getParameter(louno);
String housezt =租借;
String sql = select * from housees where louno=+louno+ and housezt=+housezt+ ;
4.3.2 住户功能模块
用户登录系统后,主要的功能包括缴费信息、报修信息、投诉信息、修改登录密码等。住户对缴费信息只有查看功能,且只能查看自己的缴费信息。列表字段包括楼栋,房间号,收费时间,收费事由,收费金额,收费状态。界面如图4-11所示。
图4-11 我的缴费界面
数据库中的缴费信息表还包括一个author字段,功能设计中可根据变量author找出登录用户的id值,根据id值便可以选择出该用户的缴费信息。代码如下:
HashMap map = (HashMap)session.getAttribute(admin);
String hql = select * from shoufei where author=+map.get(id)+ ;
住户对投诉信息及报修信息的管理是相同的,功能权限包括新增,删除,查询。以报修管理为例,新增报修信息界面如图4-12所示。
图4-12 新增报修界面
新增报修信息窗口包括字段楼栋,房间号,报修内容,处理状态,备注。其中楼栋,房间号以及处理状态都不可选择。楼栋(louno)及房间号(houseno)都是根据用户id从数据库中获取的,而处理状态是直接写入未处理,不可选择的。代码如下:
String sql = select houseno from sysuser where uname=+id+ ;
String sql = select louno from sysuser where uname=+id+ ;
住户对报修信息的删除及查询功能与管理员对物业信息的删除及查询功能设计相同,界面设计如图4-13所示。
图4-13 报修管理界面
住户的修改登录密码模块与管理员修改登录密码模块设计相同,这里就不再多做介绍。
5. 系统测试与运行
本系统的开发和测试均在windows操作系统平台下进行的,使用AMP集成软件包搭建运行环境。
5.1 系统测试
软件测试是软件质量保证的关键步骤,不仅是为了发现程序中的错误,也是为了设计使系统的问题最多的暴露出来的测试方案。软件测试是要将系统所有潜在的问题和缺陷找出。软件测试的整个过程包括规格说明书审查,系统和程序设计审查,单元测试,集成测试,功能测试,系统测试,安装测试和验收测试8个阶段[11]。
为了使本系统能够稳定地运行,对本系统采用了全面性的软件测试,首先为了确保每一个功能模块能正确的实现系统设计的功能,对应每一个模块输入相关基础数据。然后对每一个菜单栏的数据反复地进行新增,修改,删除,查询等操作。从而保证菜单栏数据执行的稳定性与正确性。之后再采用数据跟踪的方式,对系统中的每一条数据进行跟踪,确保数据流流通的正确性,以及测试不同模块之间的数据流通的正确性。
软件测试的主要方法分为黑盒测试和白盒测试,以上测试方法都属于黑盒测试,在测试过程中,要记录每一条测试执行后的结果,判断是否与预期结果一致,若测试结果相同,则测试成功,若测试结果与预期结果不同,则需要我们分析了解问题的原因及解决办法。之后再进行测试,直到测试成功为止。
本系统的关键问题分为两个部分,第一部分主要就是测试系统所要求的最基本的功能,主要侧重于用户的使用流程。基本的用户使用相当流畅,但是在物品搜索功能上,虽然能够使用关键字搜索到物品信息,但是还有所欠缺,而且可以使用的物品属性关键字还太少。第二部分主要是针对后台管理的测试,由于后台管理功能模块较为集中,是整个系统的核心所在,特别是对用户的审核、对管理员的权限分配以及对信息的处理都完全符合系统设计初期的功能要求。因此从整体上来说,系统的设计和实现是成功的。
5.2 系统运行
Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其跨平台和安全性而被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,Perl/Python等解释器可被编译到服务器中。
Apache支持许多特性,其中大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证方案。一些通用的语言接口支持Perl、Python、Tcl和PHP。流行的认证模块包括mod_access,mod_auth和mod_digest。其他的例子有SSL和TLS支持(mod_ssl),proxy模块。很有用的URL重写(由mod_rewrite实现),定制日志文件(mod_log_config),以及过滤支持(mod_include和mod_ext_filter)。Apache日志可以通过网页浏览器使用免费的脚本AWStats或Visitors来进行分析。相比较linux下的复杂安装过程,在windows操作系统下搭建运行环境相对简单,但是不足之处在于配置选项较少,安全性相对不高。
最后系统在已搭建好的运行环境下正常运行,在设计过程中,也遇到了各种问题,经过不断调试,完善功能完成了国际花都小区物业管理系统。
6. 结论
本论文对小区物业管理系统的设计与开发过程进行了详细的阐述,并最终完成了系统的开发,按时完成了论文的撰写。在系统的开发过程中,充分的借鉴了开源社区的优秀代码段和设计思想,使用面向对象的编程方式与JSP技术结合,完整的实现了系统的需求。优秀的开源数据引擎SQL2005本身所具有的良好性能,对于繁杂而且庞大的数据处理有明显的优势,这就为系统的使用提供了稳定性和安全性[12]。
小区物业管理系统的设计开发运用到了多种知识的结合,其中包括:物业管理,软件工程,数据库技术,Java语言,JSP技术等。本系统经过需求分析,系统设计,系统实现,系统测试与运行等阶段,最终实现了国际花都小区物业管理的实现,功能包括:缴费信息管理,投诉信息管理,报修信息管理,住户信息管理,房屋信息管理等。在过去几个月的设计和开发过程中,通过老师的指导、主动的收集资料,已有知识的整合,对构建大型系统尤其是商务应用系统有了进一步的认识,对如何进一步提高JSP技术与SQL2005系统的安全性有了更多的思考。
然而,做为小区物业管理系统,在数据库信息管理实现过程中,本身需要有良好的性能来防范可能出现的任何漏洞,对程序代码本身的安全性要求相当高,从这个方面来看,还需要进一步的工作来完善,在确保功能流程的前提下为用户提供体验性好而且可信任的服务。
参考文献
[1] 苏俊. 小区物业管理系统的设计与实现[D]. 成都:电子科技大学大学,2008.
[2] 范文婷. 基于.NET的小区物业管理系统的设计与实现[D]. 成都:电子科技大学,2012.
[3] 代青. 长房小区物业管理系统的设计与实现[D]. 湖南:湖南大学,2013.
[4] 王桥. 小区物业管理系统的设计与实现[D]. 山东:山东大学,2012.
[5] 赵明. 小区物业管理系统[D]. 天津:天津大学,2007.
[6] 刘晓华. JSP应用开发详解(第三版)[M]. 北京:电子工业出版社,2007.
[7] Watts S. Humphrey. A Discipline for Software Engineering. 2002.
[8] 吴晨清,荣震华. 用JSP/Servlet技术构建Web用[J]. 计算机工程,2001.
[9] 马建红,李占波. JSP应用与开发技术(第二版)[M]. 北京:清华大学出版社,2014.
[10] 汪孝宜. JSP数据库开发实例精粹[M]. 北京:电子工业出版社,2005.
[11] 朱少民. 软件测试方法和技术[M]. 北京:清华大学出版社,2013.
[12] Lorie, R.A.,Nilsson, J.F. An Access Specification Language for a Relational Data Base System. IBM Research Report RJ2218 . 1978.
附 录
国际花都小区物业管理系统的设计与实现包括数据库的连接,数据库的操作,JSP的界面设计等部分。数据库连接部分的代码已在3.2.3节详细介绍了。这里以管理员身份登录的缴费管理模块为例,以下为缴费管理模块的数据库操作部分的代码。
package control;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
import util.Info;
import dao.CommDAO;
public class MainCtrl extends HttpServlet {
public MainCtrl() {
super();
}
public void destroy() {
super.destroy(); // Just puts destroy string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void go(String url,HttpServletRequest request, HttpServletResponse response)
{
try {
request.getRequestDispatcher(url).forward(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void gor(String url,HttpServletRequest request, HttpServletResponse response)
{
try {
response.sendRedirect(url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@SuppressWarnings(deprecation)
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(text/html);
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
HashMap user = (HashMap)session.getAttribute(admin);
String ac = request.getParameter(ac);
if(ac==null)ac=;
CommDAO dao = new CommDAO();
String date = Info.getDateStr();
String today = date.substring(0,10);
String tomonth = date.substring(0,7);
//添加收费
if(ac.equals(addshoufei))
{
String louno = request.getParameter(louno);
String houseno = request.getParameter(houseno);
String sql1=select id from sysuser where louno=+louno+ and houseno=+houseno+ ;
List list = dao.select(sql1);
String author = list.get(0).get(id).toString();
String shouftime = request.getParameter(shouftime);
String shoufsy = request.getParameter(shoufsy);
String shoufje = request.getParameter(shoufje);
String shoufzt = request.getParameter(shoufzt);
String sql = insert into shoufei values(+author+,+louno+,+houseno+,+shouftime+,+shoufsy+,+shoufje+,+shoufzt+);
dao.commOper(sql);
request.setAttribute(suc, );
go(/admin/addshoufei.jsp, request, response);
}
//修改收费
if(ac.equals(updateshoufei))
{
String id = request.getParameter(id);
String louno = request.getParameter(louno);
String houseno = request.getParameter(houseno);
String shouftime = request.getParameter(shouftime);
String shoufsy = request.getParameter(shoufsy);
String shoufje = request.getParameter(shoufje);
String shoufzt = request.getParameter(shoufzt);
String sql = update shoufei set louno=+louno+,houseno=+houseno+,shouftime=+shouftime+,shoufsy=+shoufsy+,shoufje=+shoufje+,shoufzt=+shoufzt+ where id=+id;
System.out.println(sql);
dao.commOper(sql);
request.setAttribute(suc, );
go(/admin/addshoufei.jsp, request, response);
}
缴费管理页面的JSP界面设计的主要代码如下。
<%@ page language=java import=java.util.* pageEncoding=utf-8%>
<%@page import=util.PageManager%>
<%@page import=dao.CommDAO%>
<%@page import=util.Info%>










 









 




 




 




 
tb.gif 收费管理

add.gif添加
      














<%
HashMap map = (HashMap)session.getAttribute(admin);
String hql = select * from shoufei ;
String url = /wuyegl/admin/shoufei.jsp?1=1;
String key = request.getParameter(key)==null?:request.getParameter(key);
String f = request.getParameter(f);
if(f==null)
{
key = Info.getUTFStr(key);
}
if(!key.equals())
{
hql+= and (louno like%+key+% );
url+=&key=+key;
}
hql+= order by id desc;
%>
<%
CommDAO dao = new CommDAO();
String did = request.getParameter(did);
if(did!=null)
{
dao.commOper(delete from shoufei where id=+did);
}
PageManager pageManager = PageManager.getPage(url,10, request);
pageManager.doList(hql);
PageManager bean= (PageManager)request.getAttribute(page);
ArrayList nlist=(ArrayList)bean.getCollection();
for(HashMap m :nlist)
{
%>









<%} %>
楼栋:


楼栋 房号 收费时间 收费事由 收费金额 收费状态 基本操作
<%=m.get(louno) %> <%=m.get(houseno) %> <%=m.get(shouftime) %> <%=m.get(shoufsy) %> <%=m.get(shoufje) %> <%=m.get(shoufzt) %>
class=STYLE19>删除
  |   
) class=STYLE19>查看



 
${page.info }



致 谢
我的毕业论文题目是国际花都小区物业管理系统,从最初的毕业选题,经过资料收集,系统设计,不断修改和测试,到最后论文的撰写,我要感谢所有在此期间帮助我的人,感谢你们的指导与支持!
首先,感谢我的指导老师孙雯老师,本系统是在孙雯老师的悉心指导和殷切关怀下完成的,她给予了我大量的帮助。孙雯老师教学严谨,经验丰富,平易近人,工作敬业,在这近几个月的时间里,一直兢兢业业的认真指导我的毕业设计及论文。在设计过程中,在我遇到问题时,她会及时给我提出重要性的意见,让我了解自身的不足之处,不论是自身素养的养成还是毕业设计的完成,孙雯老师都对我有很大的影响力。
在此,谨向孙雯老师致以最真挚的感谢!
同时我还要感谢在毕设设计过程中所有帮助我的同学,朋友们,是他们的鼓励与支持,我的毕业设计才得以完成。在此表示由衷的感谢。
本次论文的完成,学校为我们提供了便利的条件和开发环境,而我们的指导老师更是悉心辅导我们。完成毕业设计的过程中我深刻认识到学习是一个很严谨的过程,只有认真钻研了,才能得到真知,而马虎大意将会一无所获。在系统开发过程中我还经常和同学们一起研究、探讨问题,我设计的系统中也有很多问题是在和同学的探讨中发现并改正的。在此对给予我帮助的同学同样表示衷心的感谢!
最后,再次向他们表示我最衷心的感谢和最诚挚的敬意!
本页为中文摘要样版
本页为参考文献样版
本页为致谢样版
获取项目源文件,联系Q:1225467431,可指导其它毕设,课设

猜你喜欢

转载自blog.csdn.net/u010783228/article/details/86035381