1、本科毕业论文(设计)题 目: 基于Java宿舍管理系统设计和实现 学 生: 韩梦梦 学 号: 40910210 学 院: 计算机和信息工程学院 专 业: 计算机科学和技术入课时间: 年 9 月 3 日指导老师: 张岩 职 称: 副教授 完成日期: 年 4 月 25 日诚 信 承 诺我谨在此承诺:本人所写毕业论文基于Java宿舍管理系统设计和实现均系本人独立完成,没有剽窃行为,凡包含其它作者见解和材料,均作了注释,若有不实,后果由本人负担。 承诺人(署名): 年 月 日基于Java宿舍管理系统设计和实现摘 要:伴随互联网时代到来,越来越多生活领域发生了翻天覆地改变,大家生活方法也随之改变,更多线
2、下场景被搬到互联网上,进而为人类生活带来更多便利。对于高校学生来说,宿舍就是学生在学校家,对宿舍管理尤为关键,宿舍管理员一直在这个过程中饰演着关键角色。她们工作特点繁琐、单一、反复性大,很适合进行信息化,来提升宿舍管理员效率。本毕业设计以软件工程理论为指导,采取Java技术,利用开发领域沉淀下来主流框架,设计并开发了宿舍管理系统。论文首先指明了课题研究意义,接着分析了宿舍管理系统建设可行性,然后计划设计了宿舍管理系统整体功效结构和数据库概念、逻辑结构,最终利用Mysql数据库和Java编程技术实现系统。宿舍管理系统关键参与方为宿舍管理员,同时也为学生提供了部分方便功效。宿舍管理员能够利用系统完
3、成以下工作:系统功效菜单维护,系统角色维护,学生信息维护,水电气费录入,学生报修处理,访客信息管理,卫生检验管理,宿舍信息维护,失物信息查看。学生能够利用系统:查看卫生检验成绩,日常缴费,报修,查看失物信息。关键词:宿舍管理;互联网;Java;MysqlDesign and implementation of Dorm Management System based on JavaAbstract: With the advent of the era of Internet, more and more areas of life, great changes have taken plac
4、e in peoples life style has changed, more offline scenarios were moved to the Internet, and then bring more convenience to human life. For university students, dormitory is the home of the students in the school, the management of the dormitory is particularly important, the dormitory administrator
5、has play an important role in the process. The characteristics of their work tedious, single, repeatability, very suitable for information, to improve the efficiency of the dormitory administrator.The graduation design with software engineering theory as the instruction, using Java technology, the u
6、se of the mainstream of development areas settle framework, design and develop the dormitory management system. Paper firstly pointed out the research significance, and then analyzes the feasibility of the construction of dormitory management system, then design the whole function of the dormitory m
7、anagement system structure and database concepts, logic structure, system is realized by using the Mysql database and Java programming technology.Dormitory management system is mainly of participants for the dormitory administrator, at the same time also provides students with some handy features. D
8、ormitory administrator can use the system to complete the following work: system function menu maintenance, system maintenance, student information maintenance, utility fee entry, students hot processing, the visitor information management, health examination management, dormitory information mainte
9、nance, the lost information view.: students can use the system to check the health check result, daily pay cost, the repair, the lost information view.Key words: Dorm management; Internet;Java;Mysql;目 录1 引言11.1 课题研究背景及意义11.2 可行性分析11.2.1 经济可行性21.2.2 技术可行性21.2.3 应用可行性21.2.4 法律可行性32 需求分析33 系统功效模块设计53.1
10、 管理员端功效模块设计53.2 学生端功效模块设计54 数据库分析和设计64.1 数据库分析64.2 数据库概念结构设计74.3 数据库逻辑结构设计95 宿舍管理系统实现115.1 宿舍管理系统数据库实现和连接125.2 管理员端功效模块实现125.2.1 登录页界面125.2.2 登陆后主界面145.2.3 控制面板页面145.2.4 学生信息管理155.2.5 宿舍信息管理175.2.6 访客登记185.2.7 报修处理195.2.8 卫生检验205.2.9 水电气费缴纳205.2.10 失物信息管理215.3学生端功效模块实现235.3.1 宿舍报修235.3.2 密码修改245.3.3
11、 卫生检验查看245.3.4 水电费缴费查看245.3.5 失物信息公布256 结束语25参考文件:261 引言1.1 课题研究背景及意义依据目前高等教育情况1,很多学生全部是远离家乡,采取住校方法。学生们除了日常学习以外,剩下生活时间关键就是以宿舍为中心,所以宿舍成为高校学生第二个家。宿舍管理在整个高校教育工作中地位显得尤为关键。传统宿舍管理全靠人工,多种信息处理方法也全部是采取纸质文档统计,伴随整个社会信息化进程加紧,更为便捷、环境保护信息化处理方案提上日程。基于B/S架构2也为信息化方案实施带来了便捷,也能减轻宿舍管理员手工作业程度,提升工作效率,愈加好为学生服务。因为当今网络技术飞速发
12、展,使信息传输速度达成空前解放,同时在各行各业中,计算机技术全部在不停融入其中,极大程度推进了各行业发展3。基于B/S模式学生宿舍管理系统处理了传统信息存放方法和学生信息获取方面缺点,极大节省了社会资源,实现了无纸化管理。于此同时,也确保了宿舍同学获取日常生活信息时效性和便捷性和可操作性,极大方便了同学和宿舍管理员之间信息交互。社会信息化进程加紧,促进大家以更便捷方法生活,更高效方法工作。这其间,网络作用不容忽略,网络技术之所以受到大家青睐,自然有它亮点所在。其次,相关操作全部是在计算机上处理和存放,数据存放媒介不再依靠于传统纸质,而是存放于多种磁盘中。同时利用计算机高效处理能力,能够对信息进
13、行科学比对分析,以数据为基础变革宿舍管理模式。总而言之,伴随计算机普及和因特网技术发展,网络信息共享和交流成为大家社会生活不可分割关键组成部分。我们全部知道,技术革命会改变产业结构,也会带动市场竞争标准变更。所以,网络技术发展,将是一场大革命,多种信息化网站建设必如雨后春竹般蓬勃展开7。1.2 可行性分析从50年代老电影到现在电视中,通常跟校园相关全部会出现宿舍管理员身影,这个行业已经存在并不停发展了快要一个世纪,其步骤和边界全部已经很清楚了,工作步骤也是比较明确,足够利用信息化将其标准化。作为一名高校学生宿舍一切和自己息息相关,自己本身也是该系统一个潜在使用者,所以对系统把握也很轻易做。1.
14、2.1 经济可行性 互联网本就是自由、分享代名词,和互联网相关很多技术和资源全部是能够无偿自由分享。该系统开发使用java编程语言是无偿,而且其优异框架也全部是无偿。使用到操作系统、Mysql数据库、Tomcat容器全部是无偿开源,唯一需要就是一台连接网络PC足够承载宿舍管理系统运行。其成本全在系统开发和以后维护,也就是人力成本。综合考虑,该系统经济上几乎不存在消耗,能够实施开发。1.2.2 技术可行性本系统开发是基于B/S模式,包含前端应用程序开发和后端数据库建立和维护。前端应用程序要求功效齐全,性能稳定;后端数据库要求结构完整安全性好。本系统开发采取Java编程语言,基于J2EE规范,利用
15、Servlet+Jsp技术进行开发,为提升工作效率,会使用部分业界比较著名框架。前端框架使用Easyui框架,提供简练、大方前端页面。后端技术框架选择著名SSH(Struts2+Spring+Hibernate)框架来实现业务逻辑和信息持久化。程序最终运行在一个布署在Linux系统上Tomcat容器中。经过在校近四年学习和老师指导,以上这些技术全部有学习,即使使用不够熟练,不过经过自己探索,能够保质保量完成宿舍管理系统开发。1.2.3 应用可行性本宿舍管理系统是一个B/S架构Web应用程序,其运行在一台稳定服务器上,而作为应用使用者:宿舍管理员和学生,不需要做任何其它操作。只需要在自己电脑上打
16、开浏览器,输入对应网络地址,依据提醒输入自己账号密码就能够登陆成功,进行一系列操作。它能使同学不受地域和时间限制,就能够在浏览器当中对宿舍费用和损坏物品进行保修。页面操作简单,使用方便,只要能连接到互联网,便能够在自己计算机上打开浏览器访问本宿舍管理系统。所以本宿舍管理系统不存在学习成本,适适用于多种知识水平人员9,10。1.2.4 法律可行性本系统是作为毕业设计而开发,和商业没相关系,同时,这个系统又是本人自主研发,所以不会包含到侵权问题,所以在法律上是含有可行性。2 需求分析经过和宿舍管理员沟通交流,结合自己日常部分生活习性,经过一系列汇总分析,得出系统业务步骤为:宿舍管理员使用管理员账号
17、登陆系统,能够对其管理宿舍信息进行管理,对入住学生信息进行管理,对学生提交保修申请进行护理,对学生代缴水电费信息进行录入,对来访客人信息进行登记。作为学生,能够使用管理员分配账号进行登陆,在该系统中能够进行损坏物品保修,查看卫生检验统计,查看水电费统计,已经公布物品丢失信息。图2-1是本宿舍管理系统业务步骤:图2-1 宿舍管理系统业务步骤图本系统是将现代化网络技术和信息共享、信息交流模式相结合,根据系统业务步骤设计完成。开发过程中尽力做到拥抱改变,支持扩展,为后期新需求开发提供了宽广扩展空间。宿舍管理系统开发目标以下:(1)友好、简练操作界面:创建便于用户操作界面,设计菜单式导航条,导航条在主
18、窗口左侧,符合人体工程学。相关操作选项按摄影关性进行科学编排,使用时候只需要我们先点击对应一级菜单,然后在展开二级菜单中选择自己需要操作。(2)方便快捷操作方法:对信息操作(包含修改、添加和删除等)全部将以弹出窗口形式出现,当用户确定无误以后进行提交,保留成功后在页面展示。(3)完善功效:系统功效设计基于日常宿舍管理员真实工作内容,各个功效点均是日常工作必需,不存在多出华而不实功效。功效模块设计完全站在最终用户角度进行设计和考量。(4)拥有较强移植性:一个系统最基础要含有性质有以下几点:实用性、适用性和可靠性,还有系统优异性。因为java原来就是一个跨平台变成语言,所以系统含有很强可移植性。完
19、全不用考虑迁移了服务器系统以后造成不稳定性。除了应用环境可移植性行以外,使用场景也含有可复制性,因为宿舍管理工作在多数情况下是一致,所以能够做到无修改平移到其它学校,然后直接就能够使用。(5)稳定运行:系统采取linux+tomcat+mysql这三个web应用插件全部是经过前人精心锤炼,稳定性也是经过大家认可,确保了系统稳定运行。3 系统功效模块设计宿舍管理系统关键参与角色有宿舍管理员和学生用户,依据参与者关注点不一样可将系统划分为两大模块:宿舍管理员和学生。不一样角色登陆进来以后看到菜单不一样,对相同内容能进行操作也不相同。3.1 管理员端功效模块设计宿舍管理员使用初始账号登陆,管理员账号
20、内置在系统中,宿舍存在之初就拥有一个宿舍管理员账号。宿舍管理员登陆以后能够进行操作有:密码修改、宿舍管理、学生信息管理、水电气费管理、宿舍卫生检验管理、宿舍报修处理、访客统计管理、遗失物品公告、系统菜单管理、系统角色管理、退出等功效模块。图3-1是宿舍管理员端含有功效模块。图3-1 宿舍管理员端功效模块图3.2 学生端功效模块设计学生能够登录系统查看宿舍相关信息和完成部分日常所需操作,学生能够进行操作:登录、修改密码、登出、损坏报修、宿舍卫生检验统计查看、宿舍水电气缴费查看。图3-2是学生端功效模块。图3-2 学生端功效模块图4 数据库分析和设计4.1 数据库分析数据库作为信息在系统中终点,其
21、关键性不言而喻。数据库设计对于应用后期发展也是相当关键,好设计能为系统后期维护和扩展带来很多便利。用户多种多样操作也是围绕数据为关键进行处理,经过对系统业务分析和整理,最终得出对数据库设计含有以下需求:1)用户分为宿舍管理员和学生,两个角色会操作相同数据,这就需要对不一样角色重合部分数据进行合理数据隔离。2)该系统最终使用者将会是整个学校全部学生,不一样学生所处宿舍也不一样,很多操作全部是围绕宿舍进行,所以不一样宿舍之间也需要做好数据隔离。3)为了便于后期系统扩展,宿舍管理员含有创建角色,录入新菜单,和菜单分配功效。所以系统需要完整权限管理设计。4)系统使用者关键是高校全体学生,数据处理等级是
22、万级,需要考虑到数据查询性能,数据检索效率等性能问题。5)宿舍是高校学生日常生活关键一部分,对并发上也有一定要求,设计数据库时候需要考虑。4.2 数据库概念结构设计经过了以上部分对业务分析,和后期性能考虑,该系统应该含有以下实体:宿舍、用户、访客统计、卫生检验统计、报修统计、失物信息、水电气费、系统角色、菜单。用户实体包含学生信息,和宿舍管理员信息,两种登录账号经过类型区分;卫生检验、报修统计、水电气费、用户实体全部需要关联对应宿舍,她们和宿舍关系均是多对一。各实体相关属性图4-1至4-8所表示,部分实体间联络图4-9所表示,没有联络实体为孤立实体。 图4-1用户实体及其属性图4-2 系统菜单
23、实体及其属性图4-3 失物通知实体及其属性图4-4 报修统计实体及其属性图4-5 访客统计实体及其属性图4-6 宿舍实体及其属性图4-7 卫生检验实体及其属性图4-8 缴费实体及其属性图4-9 部分实体联络图4.3 数据库逻辑结构设计在完成宿舍管理系统数据库概念结构设计后,需要把所得到数据库概念模型转变成Mysql所支持关系模型,也就是数据库逻辑结构。依据概念设计结果,本宿舍管理网站数据库中包含用户表、角色表、菜单表、宿舍表、报修统计表、卫生检验表、访客统计表、水电费统计表、失物统计表。每个表逻辑结构如表1表9所表示。表1 用户表(T_USER)属性名字属性数据类型属性长度属性说明ID文本32
24、主码用户名文本64密码文本64真实姓名文本64电话号码文本16状态布尔1院系文本32年纪数字4学号文本32唯一宿舍id文本32外键用户类型文本16添加时间日期时间8修改时间日期时间8表2 角色表(T_ROLE)属性名字属性数据类型属性长度属性说明ID文本32主码角色名文本20唯一值描述文本128表3 菜单表(T_AUTH)属性名字属性数据类型属性长度属性说明ID文本32主码父菜单ID文本32外键菜单描述文本128菜单图标文本32菜单名文本32唯一显示次序数字3菜单地址文本64表4 宿舍表(T_DORM)属性名字属性数据类型属性长度属性说明ID文本32主码宿舍编号文本32备注文本128表5 卫生
25、检验表(T_SANITARY)属性名字属性数据类型属性长度属性说明ID文本32主码检验时间日期时间8分数数字3宿舍id文本32外键表6 水电气费表(T_UTILITY)属性名字属性数据类型属性长度属性说明ID文本32主码缴费月份文本16缴费时间日期时间8金额数字8宿舍id文本32外键备注文本128表7 访客表(T_VISITOR)属性名字属性数据类型属性长度属性说明ID文本32主码访客姓名文本32访客证件号文本64受访者姓名文本64受访宿舍文本32外码来访时间日期时间8离开时间日期时间8表8 失物信息表(T_NOTE)属性名字属性数据类型属性长度属性说明ID文本32主码标题文本32内容文本25
26、6创建人文本32添加时间日期时间8表9 报修统计表(T_REPAIR)属性名字属性数据类型属性长度属性说明ID文本32主码宿舍编号文本32报修人文本32描述文本256修理状态布尔1处理意见文本645 宿舍管理系统实现宿舍管理系统是基于Web应用系统,系统开发平台为Windows7,开发工具Myeclipse,编程技术选择Java,数据库采取Mysql。5.1 宿舍管理系统数据库实现和连接依据逻辑设计结果,使用远程连接操作工具创建对应数据表,创建用户设置密码。系统利用Hibernate框架实现数据持久化,并完成从关系型数据库到对象映射,为了提升数据读取和操作数据库连接使用了连接池,系统中使用阿里
27、巴巴开源Druid数据库连接池;整个项目又是使用Spring框架提供IoC容器来管理业务Bean数据库实现关键经过配置完成,配置以下: 5.2 管理员端功效模块实现宿舍管理系统网站包含登录页、主页、功效导航、控制面板、失物信息管理、学生信息管理、宿舍信息管理、访客统计管理、报修处理。5.2.1 登录页界面登录页图5-1所表示,该界面是本站默认登录页。网站登录页界面清楚,简练大方,在该页面输入账号密码登录,假如账号密码不正确能够在页面给出提醒。登录成功后会跳转到系统主页。用户登录模块代码以下:public String login() if (StringUtils.isBlank(user.g
28、etCname() | StringUtils.isBlank(user.getCpwd() getRequest().setAttribute(msg, 提醒:用户名和密码不能为空!);return login;User u = userService.login(user);if (u != null) /将用户属性放进sessionsaveSessionInfo(u);changeUserAuths(u); else getRequest().setAttribute(msg, 提醒:用户名或密码错误,请确定数据库是否初始化!);return login;return index;图5-
29、1 登录页面5.2.2 登陆后主界面用户登录成功后主界面图5-2所表示,用户登录后能够点击左侧导航菜单进行对应操作。图5-2 登陆成功后主界面5.2.3 控制面板页面控制面板页面关键进行密码修改,和目前登录用户信息查看。控制面板页面图5-3所表示,用于修改密码。图5-3 控制面板界面实现控制面板功效部分代码以下: 0) List auths = sessionInfo.getAuths();for (int i = 0; i 0) out.print(,);Auth a = auths.get(i);out.print(a.getCname();%原密码新密码反复密码修改5.2.4 学生信息管
30、理宿舍管理员在左侧菜单选择学生信息菜单以后,将会在主窗口中打开一个新标签页用来显示对学生信息维护。在该页面管理员能够增加新学生信息、也能够编辑已经存在学生信息、也能够删除掉没用数据。图5-4所表示。该界面是个列表,列出了已经存在于系统学生信息,能够对学生信息进行排序,页面实现代码以下:datagrid = $(#datagrid).datagrid(url : userAction!datagrid.action,title : 用户列表(admin拥有全部权限,不需要更改角色),iconCls : icon-save,pagination : true,pagePosition : bott
31、om,pageSize : 50,pageList : 10, 20, 30, 40, 50, 100 ,fit : true,fitColumns : false,rownumbers : true,nowrap : false,border : false,idField : cid,sortName : cname,sortOrder : desc)学生信息管理页面:图5-4 学生信息界面学生信息管理后端实现代码:Transactional(propagation = Propagation.SUPPORTS)public DataGrid datagrid(User user) Dat
32、aGrid j = new DataGrid();j.setRows(getUsersFromTusers(find(user);j.setTotal(total(user);return j;private List getUsersFromTusers(List tusers) List users = new ArrayList();if (tusers != null & tusers.size() 0) for (Tuser tu : tusers) User u = new User();BeanUtils.copyProperties(tu, u);Set tusertroles
33、 = tu.getTusertroles();String roleIds = ;String roleNames = ;if (tusertroles != null & tusertroles.size() 0) for (Tusertrole tusertrole : tusertroles) if (tusertrole.getTrole() != null) roleIds += , + tusertrole.getTrole().getCid();roleNames += , + tusertrole.getTrole().getCname();if (roleIds.equals
34、() u.setRoleIds();u.setRoleNames(); else u.setRoleIds(roleIds.substring(1);u.setRoleNames(roleNames.substring(1);users.add(u);return users;private List find(User user) String hql = from Tuser t where 1=1 ;List values = new ArrayList();hql = addWhere(user, hql, values);if (user.getSort() != null & us
35、er.getOrder() != null) hql += order by + user.getSort() + + user.getOrder();return userDao.find(hql, user.getPage(), user.getRows(), values);5.2.5 宿舍信息管理宿舍管理系统关键就是宿舍,宿舍信息作为该系统基础信息,宿舍管理员需要录入其管理宿舍全部宿舍,并将各个宿舍编号录入系统。管理员点击导航菜单宿舍管理按钮,打开宿舍管理功效,宿舍管理页面图5-5所表示。图5-5 宿舍管理界面宿舍信息管理前台部分利用easyui框架datagrid实现,具体代码以下:
36、datagrid = $(#datagrid).datagrid(url : dormAction!datagrid.action,title : 宿舍列表,iconCls : icon-save,pagination : true,pagePosition : bottom,rownumbers : true,pageSize : 10,pageList : 10, 20, 30, 40 ,fit : true,fitColumns : true,nowrap : true,border : false,idField : id,sortName : ,sortOrder : desc,columns : field:ck,checkbox:true,