小区物业管理系统_第1页
小区物业管理系统_第2页
小区物业管理系统_第3页
小区物业管理系统_第4页
小区物业管理系统_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

洛阳师范学院2013届本科生毕业设计小区物业管理系统PAGE40PAGE39摘要随着我国经济的发展和城市的开发,住宅小区越来越受到人们的欢迎,小区物业管理是针对当今社会这一市场需要应运而生的。而小区物业管理系统的开发,可以给小区物业管理者的工作带来极大的便利,同时,也可以让小区业主得到更加人性化的服务。根据需求分析,实现小区管理业务,方便物业管理人员的工作,提高工作效率。该系统是基于J2EE和MySql数据库的一种在Internet上公开发布、共享信息的系统,管理员可以方便的完成小区物业信息的发布、更新,及时的与业主沟通。业主同样也可以同步得到管理员所发布的物业管理信息、与管理员就物业信息进行交流。本系统主要包括管理员管理模块、业主管理模块、投诉管理模块、报修管理模块、收费管理模块、业主留言模块及相关公告信息模块等。关键词:物业管理;数据库;信息发布

AbstractAsourcountry'seconomyandexploitationofthecitiesdevelopdaybyday,residencecommunitieshavebecomethemainstreamofhousing.Thuspropertymanagementis

becoming

more

popular

than

before.Thedevelopmentofcommunitypropertymanagementsystemcanofferconsiderableconveniencetothemanager,meanwhile,italsoprovidestheownerwithmorehumanizedservice.Withtheanalysisbasedtheneed,wecanrealizethemanagementoperationwithhigherefficiencyandalsomaketheadministrativestaff'sworkmoreconvenient.Thissystem,whichisreleasedopenlyontheinternet,isfoundedonthedatabaseofJ2EEandMySqlandalltheinformationonitcanbeshared.Administrativestaffcanrelease,refreshtheinformationofresidencecommunityeasilyonit.Theycancommunicatewithpropertyownersontime,ontheotherhand,propertyownersalsocangetaccesstothosereleasedinformationthencommencingcommunicationconcerningtheproperty.Thissystemmainlyincludesmanagermanagementmodule,ownermanagementmodule,complaintfilingmodule,repairrequestmodule,chargingmanagementmodule,owner'smessagemoduleandrelevantinformationannouncementmodulesandsoon.Keywords:Property

Management;Database;InformationRelease

目录第1章绪论 11.1系统开发背景 11.2系统研究目的和意义 1第2章系统需求分析 22.1用户功能需求分析 22.2系统性能要求 22.3业务流程分析 3第3章系统总体设计 53.1系统功能模块分析 53.2实体联系图 6第4章系统详细设计 104.1开发工具简介 104.2数据库设计 104.3用户界面设计 134.3.1登录界面 134.3.2管理员界面 174.3.3业主管理界面 26第5章软件测试和调试 335.1测试目的 335.2测试环境 335.3测试用例 33第6章工作总结和展望 38参考文献 39致谢 40洛阳师范学院2013届本科生毕业设计

第1章绪论1.1系统开发背景物业管理行业是房地产行业的一个重要组成部分,随着房地产行业的快速发展,人们逐渐接受了小区物业管理。良好的小区物业管理已经成为楼盘销售的重要因素,也成为业主或租户选择物业公司的重要考虑因素。长期以来,小区的物业管理工作只停留在看看门、扫扫地、补补漏、收收垃圾等很浅的层次上面,又由于物业管理公司的启动基金不足,多种经营服务不善等因素,导致物业公司招不到专业水平高的工作人员,再加上管理手段落后,所以就很难提高小区物业管理公司的效益。小区物业管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了小区物业的资源,同时也需要手工记录这些事情,不但麻烦琐碎,还经常容易出现错误,给广大业主带来很多不便。通过对洛阳的周边小区进行实地考察以及利用网络等多种渠道,了解到了洛阳的物业公司目前在小区物业管理方面的一些现状,也是停留在手动纯依赖人力操作的时代,物业公司需要专门的安排人力来与业主们一个个的进行物业信息的发布与维护。1.2系统研究目的和意义本次小区物业系统的开发,其中包含了日常小区物业管理的基本模块,其目的是物业公司采用该系统后,物业管理的报修、公告、投诉等基本信息能够通过该系统平台得到更加及时发布与接收,不用业主与物业管理人员依靠人力方式进行面对面沟通,节省时间、物力、减少物业管理人员的工作量,提高物业公司的服务质量。小区物业系统的开发,对物业管理实现由人工管理向数字化管理的阶段起到了过渡的作用,可以提高物业管理的效率,给广大的业主与物业管理人员带来了极大的方便。各种人性化的服务模块,使管理者和业主对住宅小区中的事物能够得到更方便、更快捷、更满意的答复。智能铁路查询系统第2章系统需求分析2.1用户功能需求分析设计小区物业管理系统时应该首先充分了解到用户的各个方面需求,包括现有的以及将来可能增加的需求,通过对洛阳周边小区进行详细的实地考察以及利用网络等多种渠道,了解到洛阳本地在小区物业管理方面的一些现状以及业主、物业管理人员对小区物业管理系统的各种要求,调研结果如下:业主:可以查看缴费信息,查看公告信息,进而获得自己所需要知道的物业管理信息,因此查看这两种信息不能对其进行数据的修改、编辑;业主可以参与投诉、报修,将所需要维修的设备信息提交给管理员,管理员接受到保修信息后可回复给业主处理结果;业主可以投诉小区的某些不如人意的地方,管理员得到投诉信息并可回复;此外,业主可以修改自己的密码,账号信息,使该用户的账户更加安全,为了便于维持业主个人信息的真实性,业主不能修改自己的个人信息。普通管理员:可以发布公告信息并进行添加、删除、修改、查看的操作;可以查看、发布、删除留言信息,可以同业主进行交流;可以查看、删除和回复报修信息与投诉信息;可以对业主信息进行添加、删除、修改、查看;有一点需注意,新注册的业主用户必须经过管理员的审核后才能登陆该系统,这样做是为了维护该小区内信息发布的安全性,防止被不法人员所知。超级管理员:拥有普通管理员的所有权限;可以对管理员进行管理等;可以使用系统的一切功能;并且应该能够保证系统的安全性。该系统功能模块虽然不是太多,但也包含了物业管理的基本业务,具有很高的实用性,且简单易于操作,维护成本低。2.2系统性能要求1、安全性该系统的安全性主要是防止他人非法进入系统,从而保证了数据的安全性,数据存储的完整性和数据的可靠性。设置三种不同的身份进行登录,即超级管理员、普通管理员和业主;系统的一些关键信息的删除并未从删除数据,而是加上一些字段使其查找不出来,从一定程度上可以降低数据的损坏程度。2、高效性使用此小区物业管理系统既可以方便管理小区的物业相关信息,又可以大大减轻小区工作人员的负担,不用物业管理人员挨家挨户通知相关信息,同时,业主也可以方便的通过该系统向物业管理者提交报修与投诉信息,与传统上的人工服务相比效率得到了很大的提高。3、便捷性本系统的界面友好,操作方便,能够达到所见即所得的效果,方便用户的使用。2.3业务流程分析依据系统的需求分析,得到系统业主的流程图:图2-1业主流程图图2-2管理员流程图

第3章系统总体设计系统总体设计需要完成的主要功能是概念和逻辑结构的设计,其中概念结构设计是将需求分析得到的用户需求抽象为概念模型的过程,它是整个数据库设计的关键。逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型转换为具体DBMS所能支持的数据模型,并对其进行优化。3.1系统功能模块分析本系统主要分为管理员信息管理、业主信息管理、投诉信息管理、报修信息管理、收费信息管理、业主留言管理和小区公告信息管理七个功能模块。1、管理员信息管理超级管理员(admin)具有最高权限可以添加和删除普通管理员,便于有更多的物业管理人员管理物业信息。2、业主信息管理对业主信息进行管理维护;添加和删除业主,编辑业主的个人信息;对新注册的业主用户进行身份的确认审核后新注册业主才可以登录成功。3、投诉信息管理业主:可以添加所要投诉的信息,并查看自己的投诉信息的审核结果。管理员:可以查看业主所提交的投诉信息,并处理投诉信息。4、报修信息管理业主:可以查看自己的报修信息记录;可以添加提交自己的新的报修信息。管理员:查看业主提交的报修信息;删除业主提交的报修信息;向业主回复报修信息已开始受理。5、收费信息管理业主:可以查看要交的费用信息;管理员:可以对某位业主的某项费用进行添加;可以删除某条收费记录;可以查看收费记录。6、业主留言管理业主:可以查看留言版的留言信息;可以提交新的留言,参与到留言中去。管理员:可以查看留言板信息;可以删除留言板的某条记录;可以发布留言信息。7、小区公告信息业主:可以查看公告信息。管理员:可以查看公告信息;可以删除某条公告信息;可以发布公告信息。系统设置了三种身份的登录,包括超级管理员、普通管理员和业主。其中超级管理员和普通管理员是一个表,系统默认为admin的为超级管理员,已经写在数据库中,该系统没有游客,只能登陆进去才能浏览,如图3-1就是系统的总体结构框图。图3-1系统总体结构框图3.2实体联系图通过需求分析,现定义以下每个实体的属性:管理员表(管理员id,登陆名,密码)业主表(业主id,业主姓名,电话,住址,备注信息,删除标示,登录名,密码)报修表(报修id,时间,报修信息,业主id,删除标示,报修状态)留言表(留言id,标题,内容,时间,留言者)公告表(公告id,编号,标题,对象,开始时间,结束时间,内容,删除标示)投诉表(投诉id,时间,内容,业主id,删除标示,投诉状态)收费表(收费id,时间,名称,金额,业主id,删除标示)1、管理员表名为vm_admin,存放的是管理员的登录信息,起登陆服务端验证的作用,管理员信息实体属性图如图3-2所示。图3-2管理员信息实体属性图2、业主表名为vm_user,存放的是业主的个人信息、登陆账号和密码信息,业主信息实体属性图如图3-3所示。图3-3业主信息实体属性图3、报修信息表名为vm_repair,存放的是报修的相关信息,报修信息实体属性图如图3-4所示。图3-4报修信息实体属性图4、留言信息表名为vm_note,存放的好似留言的相关信息,留言信息实体属性图如图3-5所示。图3-5留言信息实体属性图5、公告信息表名为vm_notice,存放的是公告的相关信息,公告信息实体属性图如图3-6所示。图3-6公告信息实体属性图6、投诉信息表名为vm_complain,存放的是投诉的相关信息,投诉信息实体属性图如图3-7所示。图3-7投诉信息实体属性图7、收费信息表名为vm_charge,存放的是收费的相关信息,收费信息实体属性图如图3-8所示。图3-8收费信息实体属性图实体之间关系的E-R图如图3-9所示。图3-9总的实体联系图

第4章系统详细设计4.1开发工具简介MyEclipse企业级工作平台是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、JavaScript、Spring、SQL、Hibernate。利用MyEclipse开发项目,有许多便利之处,我们可以能看到类或者变量、方法被哪些其它的类所引用,在写JavaBean的时候常常要写一些模式化的getXXX()和setXXX()这样的方法,我们同样可以用MyEclipse来自动生成这些模版化的方法,在MyEclipse里有许多这样的方法,这都将会大大的加快开发程序或者理解程序结构的进度。

在程序开发的过程中,当程序出现错误时,可以使用debug模式,使用该模式可以很容易的查询出程序中的错误,极大的提高的程序的开发的效率,同时可视化的开发界面,我们也很容易学会难度,这都我们项目的开发带来了便利。4.2数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。本系统主要用到了以下7张表:1、管理员表,表名为vm_admin,存储的是管理员id(主键),管理员登录名和密码,管理员表的具体信息,如图4-1管理员表图所示。图4-1管理员表2、业主表,表名为vm_user,字段有业主id、用户名、电话、住址、备注、删除标示、登录名字、登录密码,其详细设计,如图4-2业主表所示。图4-2业主表3、报修表,表名为vm_repair,存储的字段为:报修id、报修时间、详细信息、业主id、删除标示、处理情况,其中,vm_repair的repairId主键关联vm_user的userId,详细设计,如图4-3所示。图4-3报修表4、公告表,表名为vm_notice,存储的字段有公告id、编号、公告名称、对象、开始时间、截止时间、内容、删除标示,该表的详细设计,如图4-4公告表所示。图4-4公告表5、留言表,表名为vm_note,存储的字段有留言id、标题、内容、时间、留言人,详细设计,如图4-4留言表所示。图4-5留言表6、投诉表,表名为vm_complain,,存储的字段有投诉id、时间、内容、业主id、删除标示、处理情况,其中vm_complain的complainId主键关联vm_user表的userId,详细设计,如图4-6投诉表所示。图4-6投诉表7、收费信息,表名为vm_charge,存储的字段有收费id、时间、收费项目名、金额、业主id、删除标示,其中vm_charge的主键chargeId关联vm_user表的userId,详细设计,如图4-7收费表所示。表4-7收费表4.3用户界面设计4.3.1登录界面1、系统主界面超级管理员拥有最高权限,可以使用系统内的所有功能;而普通管理员和业主登录时,操作受到相应的限制,执行所禁止的权限的操作会提示权限不够,其界面图,如图4-8系统主界面所示。图4-8系统主界面menu界面中单选框事件代码如下<li><aclass="head">个人信息管理</a><ul><li><ahref='<%=path%>/admin/person_info/info_pwd.jsp'target='main'>个人密码修改</a></li></ul></li><li><aclass="head">管理员信息管理</a><ul><li><ahref='<%=path%>/adminManage.action'target='main'>管理员信息维护</a></li><li><ahref='<%=path%>/admin/index/adminAdd.jsp'target='main'>管理员信息添加</a></li></ul></li><li><aclass="head">业主信息管理</a><ul><li><ahref='<%=path%>/userManage.action'target='main'>业主信息维护</a></li><li><ahref='<%=path%>/admin/user/user_add.jsp'target='main'>业主信息添加</a></li><li><ahref='<%=path%>/user_register.action'target='main'>业主信息审核</a></li></ul></li><li><aclass="head">投诉信息管理</a><ul><li><ahref='<%=path%>/complainManage.action'target='main'>投诉信息维护</a></li></ul></li><li><aclass="head">报修信息管理</a><ul><li><ahref='<%=path%>/repairManage.action'target='main'>报修信息维护</a></li></ul></li><li><aclass="head">收费信息管理</a><ul><li><ahref='<%=path%>/chargeManage.action'target='main'>收费信息维护</a></li><li><ahref='<%=path%>/admin/charge/charge_add.jsp'target='main'>收费信息添加</a></li></ul></li><li><aclass="head">业主留言管理</a><ul><li><ahref='<%=path%>/noteManage.action'target='main'>业主留言维护</a></li></ul></li><li><aclass="head">小区公告信息</a><ul><li><ahref='<%=path%>/noticeManage.action'target='main'>公告信息维护</a></li><li><ahref='<%=path%>/admin/notice/notice_Add.jsp'target='main'>公告信息添加</a></li></ul></li></ul>2、登录界面管理员和业主必须通过用户名和密码进行登录,登录时会进行身份验证。在登陆页面输入用户名和密码,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码,验证码进行判断,验证通过进入对应的页面。新用户注册的后台代码如下,输入注册信息,单机提交,执行下列语句,进而跳转到登录页面。用户登录页面,如图4-9登录界面所示。图4-9登录界面1、javaScript事件代码如下:functionlogin(){if(document.ThisForm.userName.value=="") { alert("请输入用户名"); document.ThisForm.userName.focus(); returnfalse; }if(document.ThisForm.userPwd.value=="") { alert("请输入密码"); document.ThisForm.userPwd.focus(); returnfalse; }if(document.ThisForm.userType.value=="-1") { alert("请选择登陆角色!"); document.ThisForm.userType.focus(); returnfalse; }document.getElementById("indicator").style.display="block";LoginService.login(document.ThisForm.userName.value,document.ThisForm.userPwd.value,document.ThisForm.userType.value,callback);}2、functioncallback(data){document.getElementById("indicator").style.display="none";if(data=="no") { alert("用户名或密码错误"); }if(data=="yes") { alert("通过验证,系统登录成功"); window.location.href="<%=path%>/login_success.jsp"; }}functionreset() { document.getElementById("ThisForm").reset(); }}3、loginservice关键代码: if(userType==0)//系统管理员登陆{ Stringsql="fromAdminwhereuserName=?anduserPwd=?"; Object[]con={userName,userPwd}; ListadminList=admindao.getHibernateTemplate().find(sql,con); if(adminList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); Adminadmin=(Admin)adminList.get(0); session.setAttribute("userType",0); session.setAttribute("admin",admin); result="yes"; }}if(userType==1)//业主登录{ Stringsql="fromUserwhereuserName=?anduserPwd=?anduserDel='no'"; Object[]con={userName,userPwd}; ListuserList=userdao.getHibernateTemplate().find(sql,con); if(userList.size()==0) { result="no"; } else{ WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); Useruser=(User)userList.get(0); session.setAttribute("userType",1); session.setAttribute("user",user); result="yes";}}returnresult;}4、注册服务器端代码。Useruser=newUser();user.setUserName(userName);user.setUserPwd(userPwd);user.setUname(uname);user.setUserTel(userTel);user.setUserAddress(userAddress);user.setUserInfo(userInfo);user.setUserDel("shenhe");userdao.save(user);return"msg";4.3.2管理员界面1、个人密码修改“个人密码修改”按钮事件代码如下,其界面如图4-10个人密码修改所示。其代码可以判断原密码是否正确,新密码的二次输入是否一致。单击修改按钮后,执行service中的adminPwdEdi()方法,执行完成后返回本界面,其相关代码信息如下列举。图4-10个人密码修改functioncheck(){varuserPwdReal="${sessionScope.admin.userPwd}";if(document.formPw.userPwd.value!=userPwdReal){alert("原密码不正确");return;}if(document.formPw.userPwd1.value==""){alert("新密码不能空");return;}if(document.formPw.userPwd1.value!=document.formPw.userPwd2.value){alert("两次输入的密码不一致");return;}}publicStringadminPwdEdit(StringuserPwNew){ WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); Adminadmin=(Admin)session.getAttribute("admin"); admin.setUserPwd(userPwNew); admindao.getHibernateTemplate().update(admin); session.setAttribute("admin",admin); return"yes";}2、管理员维护“管理员信息维护”按钮clicked事件代码如下,服务器端可以判断该管理员是否为超级管理员是否具有该权限,“添加“按钮单击后,页面跳转到管理员添加页面,进而填入相关信息再提交信息,完成普通管理员的注册,其界面信息如图4-11所示。图4-11管理员维护界面functionadminDel(adminId){if(confirm('您确定删除吗?')){varuserName="${sessionScope.admin.userName}"; if(userName!="admin") { alert("您无此操作权限!"); returnfalse; }window.location.href="<%=path%>/adminDel.action?adminId="+adminId;}}functionadminAdd(){varurl="<%=path%>/admin/index/adminAdd.jsp"; window.location.href=url;}}publicStringadminAdd(){if(userName.trim().equals("admin")){ this.setMessage("admin账户已存在!"); this.setPath("admin/index/adminAdd.jsp"); return"succeed";} else{ Adminadmin=newAdmin(); admin.setUserName(userName); admin.setUserPwd(userPwd); admindao.save(admin); this.setMessage("添加管理员成功!"); this.setPath("adminManage.action"); return"succeed";}}3、业主信息管理管理员登录本系统后,可以查看注册的业主信息,删除、编辑、添加、审核业主信息;分别调用各自对应的action,来执行相应的方法,完成对业主信息的各种操作。其界面,如图4-12业主信息维护界面所示。图4-12业主信息维护界面“业主信息维护”按钮事件代码如下:Stringsql="fromUserwhereuserDel!='yes'";ListuserList=userdao.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("userList",userList);returnActionSupport.SUCCESS;“查询”按钮clicked事件代码如下:Stringsql="fromUserwhereuserDel!='yes'andunamelike'%"+uname.trim()+"%'";ListuserList=userdao.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("userList",userList);returnActionSupport.SUCCESS;“添加”按钮clicked事件代码如下:varurl="<%=path%>/admin/user/user_add.jsp";window.location.href=url;“删除”按钮clicked事件代码如下:if(confirm('您确定删除吗?')){window.location.href="<%=path%>/userDel.action?userId="+userId;}“编辑”按钮clicked事件代码如下:functionuserEditPre(userId){window.location.href="<%=path%>/userEditPre.action?userId="+userId;}4、投诉信息维护先是点击投诉信息维护,页面跳转到投诉信息维护界面,浏览所有的业主投诉信息,点击要删除的投诉信息,执行点击确定按钮,完成投诉信息删除操作。其界面,如图4-13投诉信息维护界面。4-13投诉信息维护界面查看投诉事件代码如下:Stringsql="fromComplainwherecomplainDel='no'orderbycomplainIddesc";ListcomplainList=complaindao.getHibernateTemplate().find(sql);for(inti=0;i<complainList.size();i++){ Complaincomplain=(Complain)complainList.get(i); complain.setUserName(userdao.findById(complain.getUserId()).getUserName());}Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("complainList",complainList);returnActionSupport.SUCCESS;“受理”按钮clicked事件代码如下:Complaincomplain=complaindao.findById(complainId);complain.setComplainIdentify("yishouli");complaindao.saveup(complain);this.setMessage("授理成功!");this.setPath("complainManage.action");return"succeed";5.报修信息维护先是点击报修信息维护,页面跳转到报修信息维护界面,浏览所有的业主报修信息,点击要删除的报修信息,点击确定按钮,完成报修信息的删除操作,点击要受理的报修信息,完成受理报修信息的操作,其界面,如图4-14报修信息维护。图4-14报修信息维护“删除”按钮代码如下:Repairrepair=repairdao.findById(repairId);repair.setRepairDel("yes");repairdao.saveup(repair);this.setMessage("删除成功!");this.setPath("repairManage.action");return"succeed";“受理”按钮代码如下:Repairrepair=repairdao.findById(repairId);repair.setRepairIdentify("yishouli");repairdao.saveup(repair);this.setMessage("受理成功!");this.setPath("repairManage.action");return"succeed";6.收费信息维护先是点击收费信息维护,页面跳转到收费信息维护界面,浏览所有的业主的收费信息,点击要删除的收费信息,执行点击确定按钮,完成收费信息删除操作。管理员需添加收费信息,需输入收费相关正确信息后点击录入按钮,如果没有输入完整的收费信息,都会给出相应的错误提示,不能录入成功。通过执行相应的action方法来完成信息的添加,其界面,如图4-15收费管理界面。图4-15收费管理界面“删除“按钮clicked事件代码如下:Chargecharge=chargedao.findById(chargeId);charge.setChargeDel("yes");chargedao.saveup(charge);this.setMessage("删除成功!");this.setPath("chargeManage.action");return"succeed";“添加”按钮的事件代码为:Chargecharge=newCharge();charge.setChargeTime(chargeTime);charge.setChargeName(chargeName);charge.setChargeMoney(chargeMoney);charge.setUserId(userId);charge.setChargeDel("no");chargedao.save(charge);this.setMessage("添加成功!");this.setPath("chargeManage.action");return"succeed";7、业主留言管理管理员点击左侧的菜单“留言信息维护”,页面跳转到留言信息维护界面,调用后台的action类查询出所有的业主留言信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出所有业主的留言信息。需删除时,点击留言信息维护界面的“删除”按钮,href="<%=path%>/noteDel.Action?noteId=<s:propertyvalue="#note.noteId",执行相应的action方法,完成留言信息的删除操作。如图4-16留言信息维护界面。图4-16留言信息维护界面查看此页面代码如下:ListnoteList=notedao.findAll();Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("noteList",noteList);returnActionSupport.SUCCESS;“删除”按钮事件代码如下:Notenote=notedao.findById(noteId);notedao.delete(note);this.setMessage("留言删除成功!");this.setPath("noteManage.action");return"succeed";“提交留言”按钮事件代码如下:Notenote=newNote();note.setNoteInfo(noteInfo);note.setNoteTitle(noteTitle);note.setNoteTime(newDate().toLocaleString());Mapsession=ActionContext.getContext().getSession();if(session.get("user")!=null) { Useruser=(User)session.get("user"); note.setNoteUser(user.getUserName()); }notedao.save(note);this.setMessage("留言成功!");this.setPath("noteAll.action");return"succeed";8、公告信息维护管理员点击左侧的菜单“公告信息维护”,页面跳转到小区公告信息界面,调用后台的action类查询出所有的公告信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示公告信息。需删除时,点击要删除的公告信息,完成公告信息的删除操作,该操作通过执行href="<%=path%>/noticeDel.action?noticeId=<s:propertyvalue="#notice.noticeId"/>",来调用相应的action中的方法,其页面,如图4-17所示。图4-17公告信息维护界面查看此页面代码如下:Stringsql="fromNoticewherenoticeDel='no'orderbybianhaodesc";ListnoticeList=noticedao.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("noticeList",noticeList);returnActionSupport.SUCCESS;“删除”按钮事件代码如下:Noticenotice=noticedao.findById(noticeId);notice.setNoticeDel("yes");noticedao.saveup(notice);this.setMessage("删除成功!");this.setPath("noticeManage.action");return"succeed";“添加”按钮事件代码如下:Noticenotice=newNotice();notice.setBianhao(bianhao);notice.setNoticeName(noticeName);notice.setNoticeOb(noticeOb);notice.setNoticeSt(noticeSt);notice.setNoticeEnd(noticeEnd);notice.setNoticeInfo(noticeInfo);notice.setNoticeDel("no");noticedao.save(notice);this.setMessage("添加成功!");this.setPath("noticeManage.action");return"succeed";4.3.3业主管理界面1、修改密码业主点击左侧的菜单“个人密码修改”,页面跳转到业主个人密码修改界面,该页面通过调用LoginService中的userPwdEdit(StringuserPwdNew)的方法来完成密码的修改。其界面,如图4-18个人密码修改界面所示。图4-18个人密码修改界面“修改”按钮后台事件代码如下:WebContextctx=WebContextFactory.get();HttpSessionsession=ctx.getSession();Useruser=(User)session.getAttribute("user");user.setUserPwd(userPwdNew);admindao.getHibernateTemplate().update(user);session.setAttribute("user",user);return"yes";“个人密码修改”的客户端校验代码为:functioncheck(){varuserPwReal="${sessionScope.user.userPwd}";if(document.formPw.userPwd.value!=userPwReal){alert("原密码不正确");return;}if(document.formPw.userPwd1.value==""){alert("新密码不能空");return;}if(document.formPw.userPwd1.value!=document.formPw.userPwd2.value){alert("两次输入的密码不一致");return;}}2、个人信息查看业主点击左侧的菜单“个人信息查看”,页面跳转到业主个人信息查看界面,该页面通过调用jsp的内置对象sessionScope来获取个人信息的各个属性值。其界面,如图4-19个人信息查看界面所示。图4-19个人信息查看界面个人信息查看的jsp部分主题代码如下(不一一列举):<tralign='center'bgcolor="#FFFFFF"><tdwidth="25%"bgcolor="#FFFFFF"align="right">业主名:</td><tdwidth="75%"bgcolor="#FFFFFF"align="left"><inputtype="text"name="uname"size="20"value="${sessionScope.user.uname}"disabled="disabled"/></td></tr>3、投诉信息添加业主输入投诉相关信息后点击“提交”按钮,输入数据都通过submit来执行RepairAction中的repairAdd()的方法,存入相关数据,其界面,如图4-20所示。图4-20投诉信息添加界面“提交”按钮的服务器端代码如下:Complaincomplain=newComplain();complain.setComplainTime(newDate().toLocaleString());complain.setComplainInfo(complainInfo);Mapsession=ActionContext.getContext().getSession();if(session.get("user")!=null) { Useruser=(User)session.get("user"); complain.setUserId(user.getUserId()); }complain.setComplainIdentify("weishouli");complain.setComplainDel("no");complaindao.save(complain);this.setMessage("操作成功");this.setPath("complainMy.action");return"succeed";4、报修信息添加业主输入报修相关正确信息后点击“提交”按钮,输入数据都通过form表单中定义的方法来执行RepairAction的相关代码,向vm_repair中存入需要录入的数据信息。其界面,如图4-21报修信息添加界面所示。图4-21报修信息添加界面“提交”按钮事件代码如下:Repairrepair=newRepair();repair.setRepairInfo(repairInfo);repair.setRepairTime(newDate().toLocaleString());Mapsession=ActionContext.getContext().getSession();if(session.get("user")!=null){ Useruser=(User)session.get("user"); repair.setUserId(user.getUserId());}repair.setRepairIdentify("weishouli");repair.setRepairDel("no");repairdao.save(repair);this.setMessage("添加成功!");this.setPath("repairMy.action");return"succeed";5、我的缴费信息业主点击左侧的菜单“我的缴费信息”,页面跳转到业主缴费情况查看界面,调用后台的action类查询出所有的业主缴费信息,并把这些信息封转到数据集合chargeList中,绑定到request对象,然后页面跳转到相应的jsp,显示本业主缴费情况。其界面,如图4-22我的缴费信息界面所示。图4-22我的缴费信息界面“我的缴费信息”按钮事件代码如下:Mapsession=ActionContext.getContext().getSession();Useruser=(User)session.get("user");Stringsql="fromChargewherechargeDel='no'anduserId="+user.getUserId();ListchargeList=chargedao.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("chargeList",chargeList);returnActionSupport.SUCCESS;6、发表留言界面业主点击左侧的菜单“发表留言”,页面跳转到发表留言信息界面,调用后台的action类查询出所有的留言信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示留言信息,在下方的留言处,业主输入主题及内容,完成留言。其界面,如图4-23发表留言界面所示。图4-23发表留言界面“发表留言”按钮事件代码如下:ListnoteList=notedao.findAll();Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("noteList",noteList);returnActionSupport.SUCCESS;“提交留言”按钮事件服务器端代码如下:Notenote=newNote();note.setNoteInfo(noteInfo);note.setNoteTitle(noteTitle);note.setNoteTime(newDate().toLocaleString());Mapsession=ActionContext.getContext().getSession();if(session.get("user")!=null){Useruser=(User)session.get("user");note.setNoteUser(user.getUserName());}notedao.save(note);this.setMessage("留言成功!");this.setPath("noteAll.action");return"succeed";“提交留言”按钮事件客户端校验的代码如下:varnoteTitle=document.getElementById("noteTitle").value;if(noteTitle==""){alert("主题不能为空!");returnfalse;}7、公告信息查看业主点击左侧的菜单“小区公告信息”,页面跳转到小区公告信息界面,调用后台的action类查询出所有的小区公告信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示小区公告信息。其界面,如图4-24公告信息查看界面所示。图4-24公告信息查看界面Stringsql="fromNoticewherenoticeDel='no'";ListnoticeList=noticedao.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get("request");request.put("noticeList",noticeList);returnActionSupport.SUCCESS;

第5章软件测试和调试软件测试是本系统开发周期中一个十分重要而漫长的阶段,其目的就是为寻找和纠正软件中的故障,在软件系统的开发中,软件测试不仅是软件生命周期中的一个独立的阶段,在需求分析、软件设计和编码阶段,都需要对这些阶段的软件产品,包括需求规格说明书、软件架构、概要设计和详细设计说明书进行测试。软件测试已经形成了完整的、系统的测试方法,并且有众多的手工和自动化测试工具支持这些方法。通过评审文档、阅读代码等方式测试软件称为静态测试,通过运行程序测试软件称为动态测试。在动态测试中,通常使用白盒测试和黑盒测试,从不同的角度设计测试用例,查找软件代码中的错误。5.1测试目的1、发现一些可以通过测试避免的开发风险。2、实施测试来降低所发现的风险。3、确定测试何时可以结束。4、在开发项目的过程中将测试看作是一个标准项目。5.2测试环境本次测试使用的是Window7系统,安装的是Myeclipse8.50、Tomcat6.0、JDK1.6、MysqL、IE浏览器、火狐浏览器。5.3测试用例测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求,本系统的主要测试用例如下。表5-1登录测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、输入已存在的管理员账号、密码。进入管理员主界面。进入管理员主界面通过2、用户名输入,密码为空,角色为空提示“请输入登录角色”。提示“请输入登录角色”。通过

续表5-1步骤操作/输入数据预期结果实际结果/注释通过/失败3、输入不存在的用户名、密码,点击登陆。提示用户名或密码错误。提示用户名或密码错误通过4、用户名为空,登录密码为空,角色为空,提交登录。提示“请输入用户名”。提示“请输入用户名”。通过5、用户名输入,密码为空,角色为空。提示“请输入密码”。提示“请输入密码”。通过6、用户名、密码输入为管理员账号,角色为业主。提示“用户名或密码错误”。提示“用户名或密码错误”。通过7、用户名、密码输入为业主账号,角色选为业主。提示“用户名或密码错误”。提示“用户名或密码错误”。通过8、启动IE浏览器,在地址栏输入:http://localhost:8080/VillageManage/login.jsp浏览器进入登录界面浏览器进入登录界面通过表5-2报修信息受理测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用管理员模式登录,进入报修信息管理页面,选择受理弹出“受理成功”,提示已受理。弹出“受理成功”,提示已受理。通过表5-3报修信息删除测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用管理员模式登录,进入报修信息管理页面,选择删除弹出“删除成功”,此条报修记录消失。弹出“删除成功”,此条报修记录消失。通过表5-4保修信息添加测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用业主模式登录,进入报修信息添加页面,输入“4号楼111,水管断水”。信息添加成功,返回报修主页面,显示刚才添加的报修信息。信息添加成功,返回报修主页面,显示刚才添加的报修信息。通过表5-5公告信息查看测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用业主模式登录,进入公告信息查看页面。弹出公告信息查看页面,显示最近管理员添加的公告信息。弹出公告信息查看页面,显示最近管理员添加的公告信息。通过表5-6公告信息添加测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用管理员模式登录,进入公告信息添加页面,不填写任何数据,提交。弹出请输入“公告编号”。弹出请输入“公告编号”。通过续表5-6步骤操作/输入数据预期结果实际结果/注释通过/失败2、采用管理员模式登录,进入公告信息添加页面,不填写任何数据,提交。弹出请输入“公告编号”。弹出请输入“公告编号”。通过3、采用管理员模式登录,进入公告信息添加页面,填写正确的公告信息。返回公告信息查看页面,显示出管理员所提交的公告信息。返回公告信息查看页面,显示出管理员所提交的公告信息。通过表5-7我的缴费测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用业主模式登录,进入我的缴费页面。显示该业主的缴费信息。显示该业主的缴费信息。通过表5-8缴费信息删除测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用管理员模式登录,进入缴费信息页面,选择删除某条收费记录。重新加载该页面,所删除的收费信息消失。重新加载该页面,所删除的收费信息消失。通过表5-9添加收费信息测试表步骤操作/输入数据预期结果实际结果/注释通过/失败1、采用管理员模式登录,进入收费信息维护页面,选择添加收费信息,不输入任何数据,提交。弹出提示“请输入业主”。弹出提示“请输入业主”。通过续表5-9步骤操作/输入数据预期结果实际结果/注释通过/失败2、采用管理员模式登录,进入缴费信息维护页面,选择添加收费信息,输入正确信息,提交。弹出提示“添加成功”,系统重新加载收费信息维护页面,显示出新提交的收费信息。弹出提示“添加成功”,系统重新加载收费信息维护页面,显示出新提交的收费信息。通过

第6章工作总结和展望大学生活即将接近尾声,在这几年的大学生活中,我收获了许多,最后以一个好的毕业论文项目来结束这几年来的学习生活,意义非凡。本次系统的实现充分利用了这些年来学到的知识

温馨提示

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

最新文档

评论

0/150

提交评论