国际花都小区物业管理系统的设计与实现_第1页
国际花都小区物业管理系统的设计与实现_第2页
国际花都小区物业管理系统的设计与实现_第3页
国际花都小区物业管理系统的设计与实现_第4页
国际花都小区物业管理系统的设计与实现_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

合肥师范学院2015届本科生毕业论文(设计)合肥师范学院2015届本科生毕业论文(设计)本科生毕业论文(设计)题目:国际花都小区物业管理系统的设计与实现2015年05月19日.引言1.1开发背景物业管理是一种新型的综合性服务体系,近几年,随着我国城市化建设的推进,物业管理的服务范畴也在不断扩大,具有广阔的服务前景[1]。本行业的发展需要符合客观的经济规律,符合广大消费者的需求。在发展过程中还在不断完善,随着社会的进步,物业管理还有很多的空间可以发展进化。目前这种网络化的物业管理已经渐渐被大众所接受,城市化的发展也促进了物业管理的发展脚步。小区管理是我们生活中密不可分的一部分,传统办法是使用手动方式来管理小区物业,这种管理方式有很多弊端,例如:管理繁琐,效率低下,易出错等。这对于小区物业管理者来说,是个相当大的难题。随着科学技术的发展与不断进步,计算机科学技术在近几年发展超前迅速。人们将其运用到生活的各个方面,它已是人们生活必不可少的一部分,也为我们带来了极大的便利。运用计算机技术对小区物业进行网络化管理,也是形势所向,它完善了手动化管理所存在的缺点,使其成为优势,如:管理便利,运行流畅,操作便利,安全性好,成本低等。1.2研究意义物业管理是社会发展的客观需求和必然产物,它是房地产经营管理的重要影响因素,又是城市发展的的重要组成部分。物业管理的发展影响着社会经济,人文环境等各方面的直接利益。因此,小区物业管理的发展具有十分重要的意义。小区物业管理的发展促进了社会经济的发展,给社会带来了直接利益,并带动了国民经济的发展[2]。信息化的物业管理消除了传统房屋人工化管理不便,低效率的弊端,产生了房地产开发,经营,服务一体系的信息化管理体系。良好的物业管理可以使物业管理流程正常运行,给予人们优良的居住环境,完好的服务体系。房地产方面还可以不断完善物业管理,让信息化的物业管理适应社会的发展,保持持久的使用寿命。物业管理的发展也提高了人们生活水平的质量,随着社会城市化的推进,居民群众的生活需求也越来越高。提高人们群众的居住质量,不仅需要住宅产业的科技化发展,还需要良好的物业管理。这样才能大大改善居民群众的生活质量,让信息化科技融入群众的生活中。物业管理的发展还有促进了居民居住环境的稳定。维护维护社区的安全,创造健康,优良的生活环境[3]。物业管理是社区服务非常重要的一部分,在社区服务中也发挥着重要的作用。物业管理可以有效地维护社区环境和秩序,也可以协助相关部门做好防范犯罪事故的事宜。物业管理推进了社区服务的建设,为居民提供了良好的居住环境,也促进了社区安定和社区精神文明的建设。随着人们对居住环境的要求的提高,社区服务管理公司不仅需要为居民提供住宅,绿化等硬件服务,也需要提供现代化的信息网络服务体系。利用这个系统可以及时的反应住户的需求,物业管理员也可以及时地提供服务。小区物业管理的开发可以让小区物业的管理更加协调,规范,也为物业管理公司提供了一套高效、便捷的管理方式[4]。1.3开发工具本系统主要利用tomcat6.0作为系统服务器,使用Myeclipse8.5作为开发平台,采用JSP作为开发语言,结合SQLserver2005数据库开发的一个基于B/S体系结构的国际花都小区物业管理系统。1.3.1TomcatTomcat服务器是开发源代码的Web应用服务器,是目前比较流行的Web应用服务器之一,Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目[5]。由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费。因此深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。本系统采用的是Tomcat6.0版本。1.3.2MyeclipseMyeclipse是一个专门为Eclipse设计的商业插件和开源插件的完美集合。Myeclipse为Eclipse提供了一个大量私有和开源的Java工具的集合,Myeclipse目前支持JavaServlet、AJAX、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC数据库链接工具等多项功能[6]。可以说Myeclipse几乎囊括了目前所有主流开源产品的专属Eclipse开发工具,很大程度上解决了各种开源工具的不一致和缺点问题,并大大提高了Java和JSP应用开发的效率。Myeclipse包含大量由其他组织开发的开源插件,Genuine增强了这些插件的功能并且撰写了很多使用文档,便于开发者学习。Myeclipse插件对加速Eclipse的流行起到了很重要的作用,并大大简化了复杂Java和JSP用用程序的开发。1.3.3B/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报修投诉流程在对物业管理的实际操作进行具体分析后,制定以上流程,该流程条理清晰,操作简便,功能全面,给物业管理员及住户都提供了良好的操作平台。在组织结构分析与业务流程分析后,管理员与住户的具体功能需求也基本确定。管理员作为系统的管理者,基本拥有所有物业信息的处理权限,如增加,修改,删除等。而用户的权限主要是查看自身的信息,还可以增加投诉,报修的信息。整体的设计要求总结为:该系统要在Windows操作平台下运行,具有良好的登录界面。该系统分为两个用户类型:管理员、用户。系统对于一个用户只允许以一种身份登录。2.3可行性分析在系统调查和业务流程分析的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决[9]。如果有,则采用合理有效的方法准确估计项目的可行性、软件规模和项目的开发成本,若没有,则应该尽早停止项目的开发,从而避免人力、物力、财力的浪费。技术可行性本系统的数据库较小,在系统响应时间上及操作处理上都不存在什么问题。由于采用数据库技术并且用户的应用领域对数据精确度的要求不是太高,所以这点在系统中表现得比较少,但是用户数据的安全性与正确性是完全保证的,所以对用户的使用没有多大的障碍。根据本系统功能需求,采用的开发工具为JSP及数据库SQLServer2005,由于JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。而SQL2005作为一种快速的、多线程、多用户和健壮的数据库服务器,根据第三方测试结果,在千万级的数据环境中依然保持较高的执行速度。因此在技术层面上,是完全可行的。而且SQL是一个非过程化的语言,可用于所有用户的数据库活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。基本的SQL命令只需要很少时间就能学会,最高级的命令在几天内便可掌握。SQLServer功能强大,而且很多信息管理系统都是用SQLServer作后台,对体育场地预约管理系统的开发是可行的。经济可行性本系统开发所需的硬件为普通计算机一台,计算机的操作系统是Windows7,所使用的开发工具包括Myeclipse、SQLServer2005和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.1E-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用户信息表字段名字段类型字段长度是否主键描述Idint11是编号UnameVarchar160否登录名upassVarchar160否密码UtypeVarchar80否类型TruenameVarchar80否姓名LounoVarchar80否楼号HousenoVarchar80否房号PhoneVarchar80否电话sfidVarchar80否身份证号2.housees(房产信息表)该表存储了房产的基本信息,主要是房产信息的记录,该表的字段属性如表3-2。表3-2房产信息表字段名字段类型字段长度是否主键描述Idint11是编号LounoVarchar160否楼号HousenoVarchar160否房号housetypeVarchar80否户型mianjiVarchar80否面积houseztVarchar80否房屋状态3.shoufei(收费信息表)该表存储了收费的基本信息,主要是收费信息的记录,该表的字段属性如表3-3。表3-3收费信息表字段名字段类型字段长度是否主键描述Idint11是编号authorvarchar50否缴费人lounovarchar50否楼号housenovarchar50否房号ShoufjeVarchar50否收费金额ShouftimeVarchar50否收费时间ShoufsyVarchar50否收费事由shoufztVarchar50否收费状态4.tous(投诉信息表)该表存储了投诉的基本信息,主要是投诉的信息的记录,该表的字段属性如表3-4。表3-4投诉信息表字段名字段类型字段长度是否主键描述IdVarchar50是编号AuthorVarchar70否投诉人lounovarchar50否楼号housenovarchar50否房号tousunrvarchar255否投诉内容chuliztvarchar255否处理状态beizhuvarchar500否备注5.baoxiu(报修信息表)该表存储了报修的基本信息,主要是报修的信息的记录,该表的字段属性如表3-5。表3-5报修信息表字段名字段类型字段长度是否主键描述IdVarchar50是编号AuthorVarchar70否报修人lounovarchar50否楼号housenovarchar50否房号baoxiunrvarchar255否报修内容chuliztvarchar255否处理状态beizhuvarchar500否备注3.2.3数据库的连接本系统应用JDBC进行数据库的开发。JDBC主要有三种作用,分别是与数据库连接,发送SQL语句和处理语句执行结果。JDBC提供了连接数据库的几种方法,即与数据元直接通信,通过JDBC驱动程序通信以及与JDBC数据源通信。本系统最重要的一部分就是完成数据库的连接以及数据库的操作。在对数据完成操作后,信息都要写入数据库才能实现功能,数据库与系统连接完成才能进行后面的增加,修改,删除等功能,主要代码如下:publicConnectiongetConn() { try { Stringd=newDate().toLocaleString().substring(0,9); Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn=DriverManager.getConnection("jdbc:sqlserver://:1433;DatabaseName=wuyegl;User=sa;Password=123456"); } catch(Exceptione) { e.printStackTrace(); } returnconn; }4.系统实现在系统总结构设计好后,本阶段要进行系统实现的详细设计。主要分为三大部分进行介绍,分别为用户登录,管理员模块,住户模块。4.1用户登录在登录页面中选择用户类型,输入用户名和密码,然后单击登录按钮,index.aspx.cs页面将负责处理登录请求,验证用户身份和信息,完成登录。登录页面如图4-1所示。图4-1登录页面根据变量用户类型utype来区分用户类型,管理员的utype值为1,住户注册用户时,用户类型utype自动写为0。用户登录时,根据utype的值区分登录用户的权限。登录成功后页面上方显示登录名以及用户角色。代码如下:<tdheight="20"valign="bottom"><spanclass="STYLE1">当前登录用户:<%=user.get("uname")%> 用户角色:<%=user.get("utype").equals("0")?"管理员":"住户"%></span></td>用户登录时,还要根据变量uname以及upass来判断用户名和密码的正确性,若用户名或密码输入错误,会提示“用户名或密码错误”,无法登陆。代码如下: Stringsql="select*fromsysuserwhereuname='"+uname+"'andupass='"+upass+"'"; System.out.println(sql); List<HashMap>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为租借的楼栋及房间号。代码如下:Stringlouno=request.getParameter("louno"); Stringhouseno=request.getParameter("houseno"); Stringsql1="selectidfromsysuserwherelouno='"+louno+"'andhouseno='"+houseno+"'"; List<HashMap>list=dao.select(sql1); Stringauthor=list.get(0).get("id").toString();收费事由(shoufsy)默认显示为“--请选择--”,可选择项为电费,水费以及其他。收费状态(shoufzt)默认显示为“--请选择--”,可选择项为未缴,已缴。收费时间(shouftime)和收费状态(shoufzt)为输入框。点击操作栏的修改按钮可完成修改功能。修改窗口的字段与新增窗口相同,但各字段需要显示该信息在数据库中的信息,楼栋,房号的下拉框选择权限也如新增窗口的。界面显示如图4-3:图4-3修改缴费界面修改缴费信息的界面设计,变量都与新增缴费信息一样,主要不同在于各变量默认显示该条缴费信息本身的信息。代码如下:Stringsql="updateshoufeisetlouno='"+louno+"',houseno='"+houseno+"',shouftime='"+shouftime+"',shoufsy='"+shoufsy+"',shoufje='"+shoufje+"',shoufzt='"+shoufzt+"'whereid="+id; System.out.println(sql); mOper(sql); request.setAttribute("suc",""); go("/admin/addshoufei.jsp",request,response);管理员对缴费信息还有删除和查询的权限,点击操作栏的删除按钮可完成删除功能,在查询输入框中输入对应的查询条件,点击查询按钮即可,还可支持模糊查询。界面如图4-4所示。图4-4缴费管理界面删除功能是根据所点击的信息对应的id,由此来删除数据库中的信息,也就不再显示已删除的信息了。代码如下:Stringdid=request.getParameter("did");if(did!=null){mOper("deletefromshoufeiwhereid="+did);}查询功能是根据查询条件所对应的变量,即为楼栋louno,并且支持模糊查询。代码如下:Stringhql="select*fromshoufei";Stringurl="/wuyegl/admin/shoufei.jsp?1=1";Stringkey=request.getParameter("key")==null?"":request.getParameter("key");if(!key.equals("")){hql+="and(lounolike'%"+key+"%')";url+="&key="+key;}4.2.2报表统计模块管理员对投诉信息,报修信息以及缴费信息还有报表统计的功能,管理员登录后,进入报表统计模块,对这三个模块的权限只有查询及导出报表的功能。界面如图4-5所示。图4-5报表统计界面以收费统计为例,列表显示的字段有楼栋,房间号,收费时间,收费事由,收费金额,收费状态。查询功能与物业管理模块的设计相同,导出报表功能是依据数据库中各字段代表值依次导出,代码如下: if(ac.equals("bbshoufei")) { List<HashMap>list=dao.select("selectlouno,houseno,shouftime,shoufsy,shoufje,shoufztfromshoufei"); 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")) { Stringlouno=request.getParameter("louno"); Stringhouseno=request.getParameter("houseno"); Stringhousetype=request.getParameter("housetype"); Stringmianji=request.getParameter("mianji"); Stringhousezt="空闲"; }修改房产信息时,界面设计与新增信息时一致,但各字段默认值显示该条信息在数据库中显示的数据。需要注意的是,修改以及新增操作都不可以出现两个相同的楼栋及房间号,界面显示如图4-7:图4-7房间号重复界面要判断变量louno与houseno的值是否在数据库中已存在,若已存在则提示“该楼栋的房间号已存在”,新增或修改失败。代码如下:Stringcsql="select*fromhouseeswherelouno='"+louno+"'andhouseno='"+houseno+"'"; if(dao.select(csql).size()>0) { request.setAttribute("euc",""); go("/admin/addhousees.jsp",request,response); }else{ Stringsql="insertintohouseesvalues('"+louno+"','"+houseno+"','"+housetype+"','"+mianji+"','"+housezt+"')"; mOper(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{ Stringsql="updatesysusersetupass='"+upass+"'whereid="+user.get("id"); mOper(sql); request.setAttribute("suc",""); go("/admin/uppass.jsp",request,response); }}4.3住户模块4.3.1住户注册模块住户在登录系统之前都要先注册用户,点击登录页面的用户注册按钮,弹出注册窗口,正确填写信息后点击提交信息即可,界面显示如图4-10所示。图4-10住户注册界面此操作实际是新增住户信息的操作,界面显示的字段包括登录名,密码,姓名,楼栋,房间号,身份证号,联系电话。其中登录名(uname),密码(upass)即为该住户登录时的用户和密码,不同住户注册时不可以重复登录名。主要代码如下:Stringuname=request.getParameter("uname"); Stringcsql="select*fromsysuserwhereuname='"+uname+"'"; if(dao.select(csql).size()>0) { request.setAttribute("error",""); go("/admin/adduser.jsp",request,response); }else{ Stringhousezt="租借"; }}楼栋和房间号只能选择房屋状态为空闲的选项。代码如下:Stringlouno=request.getParameter("louno"); Stringhousezt="空闲"; Stringsql="select*fromhouseeswherelouno='"+louno+"'andhousezt='"+housezt+"'";住户注册后该房屋的房屋状态(housezt)自动转为“租借”。代码如下:Stringlouno=request.getParameter("louno"); Stringhousezt="租借"; Stringsql="select*fromhouseeswherelouno='"+louno+"'andhousezt='"+housezt+"'";4.3.2住户功能模块用户登录系统后,主要的功能包括缴费信息、报修信息、投诉信息、修改登录密码等。住户对缴费信息只有查看功能,且只能查看自己的缴费信息。列表字段包括楼栋,房间号,收费时间,收费事由,收费金额,收费状态。界面如图4-11所示。图4-11我的缴费界面数据库中的缴费信息表还包括一个author字段,功能设计中可根据变量author找出登录用户的id值,根据id值便可以选择出该用户的缴费信息。代码如下:HashMapmap=(HashMap)session.getAttribute("admin");Stringhql="select*fromshoufeiwhereauthor='"+map.get("id")+"'";住户对投诉信息及报修信息的管理是相同的,功能权限包括新增,删除,查询。以报修管理为例,新增报修信息界面如图4-12所示。图4-12新增报修界面新增报修信息窗口包括字段楼栋,房间号,报修内容,处理状态,备注。其中楼栋,房间号以及处理状态都不可选择。楼栋(louno)及房间号(houseno)都是根据用户id从数据库中获取的,而处理状态是直接写入未处理,不可选择的。代码如下:Stringsql="selecthousenofromsysuserwhereuname='"+id+"'";Stringsql="selectlounofromsysuserwhereuname='"+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]WattsS.Humphrey.ADisciplineforSoftwareEngineering.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.AnAccessSpecificationLanguageforaRelationalDataBaseSystem.IBMResearchReportRJ2218.1978.本页为参考文献样版本页为参考文献样版附录国际花都小区物业管理系统的设计与实现包括数据库的连接,数据库的操作,JSP的界面设计等部分。数据库连接部分的代码已在3.2.3节详细介绍了。这里以管理员身份登录的缴费管理模块为例,以下为缴费管理模块的数据库操作部分的代码。packagecontrol;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.io.UnsupportedEncodingException;import.URLEncoder;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importmons.fileupload.FileItem;importmons.fileupload.FileUpload;importmons.fileupload.RequestContext;importmons.fileupload.disk.DiskFileItemFactory;importmons.fileupload.servlet.ServletFileUpload;importmons.fileupload.servlet.ServletRequestContext;importutil.Info;importdao.CommDAO;publicclassMainCtrlextendsHttpServlet{ publicMainCtrl(){ super(); } publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ this.doPost(request,response); } publicvoidgo(Stringurl,HttpServletRequestrequest,HttpServletResponseresponse) { try{ request.getRequestDispatcher(url).forward(request,response); }catch(ServletExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); } } publicvoidgor(Stringurl,HttpServletRequestrequest,HttpServletResponseresponse) { try{ response.sendRedirect(url); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }} @SuppressWarnings("deprecation") publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{response.setContentType("text/html"); PrintWriterout=response.getWriter(); HttpSessionsession=request.getSession(); HashMapuser=(HashMap)session.getAttribute("admin"); Stringac=request.getParameter("ac"); if(ac==null)ac=""; CommDAOdao=newCommDAO(); Stringdate=Info.getDateStr(); Stringtoday=date.substring(0,10); Stringtomonth=date.substring(0,7);//添加收费 if(ac.equals("addshoufei")) { Stringlouno=request.getParameter("louno"); Stringhouseno=request.getParameter("houseno"); Stringsql1="selectidfromsysuserwherelouno='"+louno+"'andhouseno='"+houseno+"'"; List<HashMap>list=dao.select(sql1); Stringauthor=list.get(0).get("id").toString(); Stringshouftime=request.getParameter("shouftime"); Stringshoufsy=request.getParameter("shoufsy"); Stringshoufje=request.getParameter("shoufje"); Stringshoufzt=request.getParameter("shoufzt"); Stringsql="insertintoshoufeivalues('"+author+"','"+louno+"','"+houseno+"','"+shouftime+"','"+shoufsy+"','"+shoufje+"','"+shoufzt+"')"; mOper(sql); request.setAttribute("suc",""); go("/admin/addshoufei.jsp",request,response); } //修改收费 if(ac.equals("updateshoufei")) { Stringid=request.getParameter("id"); Stringlouno=request.getParameter("louno"); Stringhouseno=request.getParameter("houseno"); Stringshouftime=request.getParameter("shouftime"); Stringshoufsy=request.getParameter("shoufsy"); Stringshoufje=request.getParameter("shoufje"); Stringshoufzt=request.getParameter("shoufzt"); Stringsql="updateshoufeisetlouno='"+louno+"',houseno='"+houseno+"',shouftime='"+shouftime+"',shoufsy='"+shoufsy+"',shoufje='"+shoufje+"',shoufzt='"+shoufzt+"'whereid="+id; System.out.println(sql); mOper(sql); request.setAttribute("suc",""); go("/admin/addshoufei.jsp",request,response); } 缴费管理页面的JSP界面设计的主要代码如下。<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%@pageimport="util.PageManager"%><%@pageimport="dao.CommDAO"%><%@pageimport="util.Info"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>无标题文档</title><styletype="text/css"><!--body{ margin-left:3px; margin-top:0px; margin-right:3px; margin-bottom:0px;}.STYLE1{ color:#e1e2e3; font-size:12px;}.STYLE6{color:#000000;font-size:12;}.STYLE10{color:#000000;font-size:12px;}.STYLE19{ color:#344b50; font-size:12px;}.STYLE21{ font-size:12px; color:#3b6375;}.STYLE22{ font-size:12px; color:#295568;}--></style><scriptlanguage="javascript"src="../js/popup.js"></script><script>varhighlightcolor='#d5f4fe';varclickcolor='#51b2f6';functionchangeto(){source=event.srcElement;if(source.tagName=="TR"||source.tagName=="TABLE")return;while(source.tagName!="TD")source=source.parentElement;source=source.parentElement;cs=source.children;//alert(cs.length);if(cs[0].style.backgroundColor!=highlightcolor&&source.id!="nc"&&cs[0].style.backgroundColor!=clickcolor)for(i=0;i<cs.length;i++){ cs[i].style.backgroundColor=highlightcolor;}}functionchangeback(){if(event.fromElement.contains(event.toElement)||source.contains(event.toElement)||source.id=="nc")returnif(event.toElement!=source&&cs[0].style.backgroundColor!=clickcolor)//source.style.backgroundColor=originalcolorfor(i=0;i<cs.length;i++){ cs[i].style.backgroundColor="";}}functionclickto(){source=event.srcElement;if(source.tagName=="TR"||source.tagName=="TABLE")return;while(source.tagName!="TD")source=source.parentElement;source=source.parentElement;cs=source.children;//alert(cs.length);if(cs[0].style.backgroundColor!=clickcolor&&source.id!="nc")for(i=0;i<cs.length;i++){ cs[i].style.backgroundColor=clickcolor;}elsefor(i=0;i<cs.length;i++){ cs[i].style.backgroundColor="";}}</script></head><body><formaction="shoufei.jsp?f=f"name="f1"method="post"><tablewidth="100%"border="0"align="center"cellpadding="0"cellspacing="0"><tr><tdheight="30"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdheight="24"bgcolor="#353c44"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><td><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdwidth="6%"height="19"valign="bottom"><imgsrc="images/tb.gif"width="14"height="14"/></td><tdwidth="94%"valign="bottom"><spanclass="STYLE1">收费管理</span></td></tr></table></td><td><divalign="right"><spanonclick="add();"class="STYLE1"style="cursor:hand"><imgsrc="images/add.gif"width="10"height="10"/>添加</span>      <scriptlanguage="javascript">functionadd(){pop("addshoufei.jsp","添加收费",400,220);}functionupdate(no){pop("updateshoufei.jsp?id="+no,"修改收费",400,220);}</script></td></tr></table></td></tr></table></td></tr><tr><td><tablewidth="100%"border="0"cellpadding="0"cellspacing="1"bgcolor="#a8c7ce"onmouseover="changeto()"onmouseout="changeback()"><tr><tdheight="30"colspan="7"align="left"bgcolor="#FFFFFF"class="STYLE19">楼栋:<label><inputname="key"style="height:12px"type="text"size="30"/><inputtype="button"style="height:20px"onclick="f1.submit();"name="Submit"value="查询"/></label></td></tr><tr><tdheight="30"align="center"bgcolor="d3eaef"class="STYLE10">楼栋</td><tdheight="30"align="center"bgcolor="d3eaef"class="STYLE10">房号</td><tdheight="30"align="center"bgcolor="d3eaef"class="STYLE10">收费时间</td><tdheight="30"align="center"bgcolor="d3eaef"class="STYLE10">收费事由</td><tdheight="30"align="center"bgcolor="d3eaef"class="STYLE10">收费金额</td>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论