1、本科毕业论文(设计)题 目: 基于Java的宿舍管理系统的设计与实现 学 生: 韩梦梦 学 号: 学 院: 计算机与信息工程学院 专 业: 计算机科学与技术入学时间: 2023 年 9 月 3 日指导教师: 张岩 职 称: 副专家 完毕日期: 2023 年 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, g
4、reat changes have taken place 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,
5、the dormitory administrator 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,
6、using Java technology, the use 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
7、 function of the dormitory management 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
8、 with some handy features. Dormitory 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,
9、dormitory information maintenance, 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
10、 法律可行性32 需求分析33 系统功能模块设计53.1 管理员端功能模块设计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
11、.3.1 宿舍报修235.3.2 密码修改245.3.3 卫生检查查看245.3.4 水电费缴费查看245.3.5 失物信息发布256 结束语25参考文献:261 引言1.1 课题研究背景及意义根据当前高等教育的情况1,很多学生都是远离家乡,采用住校的方式。学生们除了平常的学习以外,剩余的生活时间重要就是以宿舍为中心,因此宿舍成为高校学生的第二个家。宿舍的管理在整个高校的教育工作中的地位显得尤为重要。传统的宿舍管理全靠人工,各种信息的解决方式也都是采用的纸质文档记录,随着整个社会信息化进程的加快,更为便捷、环保的信息化解决方案提上日程。基于B/S的架构2也为信息化方案的实行带来了便捷,也能减轻
12、宿舍管理员的手工作业限度,提高工作效率,更好的为学生服务。由于当今网络技术的飞速发展,使信息传播速度达成空前的解放,同时在各行各业中,计算机技术都在不断的融入其中,极大限度的推动了各行业的发展3。基于B/S模式的学生宿舍管理系统解决了传统信息存储方式以及学生信息获取方面的缺陷,极大的节约了社会资源,实现了无纸化的管理。于此同时,也保证了宿舍同学获取平常生活信息的时效性和便捷性以及可操作性,极大的方便了同学与宿舍管理员之间信息的交互。社会信息化进程的加快,促进人们以更便捷的方式生活,更高效的方式工作。这其间,网络的作用不容忽视,网络技术之所以受到人们的青睐,自然有它的亮点所在。另一方面,相关的操
13、作都是在计算机上解决和存储,数据存储的媒介不再依赖于传统的纸质,而是存储于各种磁盘中。同时运用计算机的高效解决能力,可以对信息进行科学的比对分析,以数据为基础变革宿舍管理的模式。总之,随着计算机的普及和因特网技术的发展,网络信息共享和交流成为人们社会生活不可分割的重要组成部分。我们都知道,技术革命会改变产业的结构,也会带动市场竞争标准的变更。因此,网络技术的发展,将是一场大革命,各种信息化网站的建设必如雨后春竹般蓬勃展开7。1.2 可行性分析从50年代的老电影到如今的电视中,凡是跟校园相关的都会出现宿舍管理员的身影,这个行业已经存在并不断发展了将近一个世纪,其流程以及边界都已经很清楚了,工作的
14、流程也是比较明确的,足够运用信息化将其标准化。作为一名高校学生宿舍的一切与自己息息相关,自己自身也是该系统的一个潜在使用者,因此对系统的把握也很容易做。1.2.1 经济可行性 互联网本就是自由、分享的代名词,与互联网相关的很多技术以及资源都是可以免费自由分享的。该系统开发使用的java编程语言是免费的,并且其优秀框架也都是免费。使用到的操作系统、Mysql数据库、Tomcat容器都是免费开源的,唯一需要的就是一台连接网络的PC足够承载宿舍管理系统的运营。其成本全在系统的开发以及以后的维护,也就是人力成本。综合考虑,该系统经济上几乎不存在消耗,可以实行开发。1.2.2 技术可行性本系统的开发是基
15、于B/S模式,涉及前端应用程序的开发和后端数据库建立和维护。前端应用程序规定功能齐全,性能稳定;后端数据库规定结构完整安全性好。本系统开发采用Java编程语言,基于J2EE规范,运用Servlet+Jsp技术进行开发,为提高工作效率,会使用一些业界比较知名的框架。前端框架使用Easyui框架,提供简洁、大方的前端页面。后端技术框架选用知名的SSH(Struts2+Spring+Hibernate)框架来实现业务逻辑以及信息的持久化。程序最终运营在一个部署在Linux系统上的Tomcat容器中。通过在校近四年的学习以及老师的指导,以上这些技术都有学习,虽然使用不够纯熟,但是通过自己的探索,可以保
16、质保量的完毕宿舍管理系统的开发。1.2.3 应用可行性本宿舍管理系统是一个B/S架构的Web应用程序,其运营在一台稳定的服务器上,而作为应用的使用者:宿舍管理员和学生,不需要做任何其他的操作。只需要在自己的电脑上打开浏览器,输入相应的网络地址,根据提醒输入自己的账号密码就可以登陆成功,进行一系列的操作。它能使同学不受地区和时间的限制,就可以在浏览器当中对宿舍费用以及损坏物品进行保修。页面操作简朴,使用方便,只要能连接到互联网,便可以在自己的计算机上打开浏览器访问本宿舍管理系统。因此本宿舍管理系统不存在学习成本,合用于各种知识水平人员9,10。1.2.4 法律可行性本系统是作为毕业设计而开发的,
17、与商业没有关系,同时,这个系统又是本人自主研发,因此不会涉及到侵权问题,所以在法律上是具有可行性的。2 需求分析通过与宿舍管理员的沟通交流,结合自己平常的一些生活习性,通过一系列的汇总分析,得出系统的业务流程为:宿舍管理员使用管理员账号登陆系统,可以对其管理的宿舍信息进行管理,对入住的学生信息进行管理,对学生提交的保修申请进行护理,对学生代缴的水电费信息进行录入,对来访客人的信息进行登记。作为学生,可以使用管理员分派的账号进行登陆,在该系统中可以进行损坏物品保修,查看卫生检查记录,查看水电费记录,已经发布物品丢失信息。图2-1是本宿舍管理系统的业务流程:图2-1 宿舍管理系统业务流程图本系统是
18、将现代化的网络技术与信息共享、信息交流模式相结合,按照系统业务流程设计完毕的。开发过程中尽力做到拥抱变化,支持扩展,为后期新需求的开发提供了广阔的扩展空间。宿舍管理系统的开发目的如下:(1)和谐、简洁的操作界面:创建便于用户操作的界面,设计菜单式导航条,导航条位于主窗口的左侧,符合人体工程学。相关的操作选项按照相关性进行科学的编排,使用的时候只需要我们先点击相应的一级菜单,然后在展开的二级菜单中选择自己需要的操作。(2)方便快捷的操作方式:对信息的操作(涉及修改、添加和删除等)都将以弹出窗口的形式出现,当用户确认无误以后进行提交,保存成功后在页面展示。(3)完善功能:系统的功能设计基于平常宿舍
19、管理员的真实工作内容,各个功能点均是平常工作必须的,不存在多余的华而不实的功能。功能模块的设计完全站在最终用户的角度进行设计和考量。(4)拥有较强的移植性:一个系统最基本要具有的性质有以下几点:实用性、合用性和可靠性,尚有系统的先进性。由于java本来就是一种跨平台的变成语言,因此系统具有很强的可移植性。完全不用考虑迁移了服务器系统以后导致的不稳定性。除了应用环境的可移植性行以外,使用场景也具有可复制性,由于宿舍管理的工作在多数情况下是一致的,因此可以做到无修改的平移到其他学校,然后直接就可以使用。(5)稳定的运营:系统采用linux+tomcat+mysql这三个web应用插件都是通过前人精
20、心锤炼的,稳定性也是通过大家认可的,保证了系统的稳定运营。3 系统功能模块设计宿舍管理系统重要参与角色有宿舍管理员和学生用户,根据参与者的关注点不同可将系统划分为两大模块:宿舍管理员与学生。不同的角色登陆进来以后看到的菜单不同,对相同的内容能进行的操作也不相同。3.1 管理员端功能模块设计宿舍管理员使用初始账号登陆,管理员账号内置在系统中,宿舍存在之初就拥有一个宿舍管理员账号。宿舍管理员登陆以后可以进行的操作有:密码修改、宿舍管理、学生信息管理、水电气费管理、宿舍卫生检查管理、宿舍报修解决、访客记录管理、遗失物品公告、系统菜单管理、系统角色管理、退出等功能模块。图3-1是宿舍管理员端具有的功能
21、模块。图3-1 宿舍管理员端功能模块图3.2 学生端功能模块设计学生可以登录系统查看宿舍相关的信息以及完毕一些平常所需的操作,学生可以进行的操作:登录、修改密码、登出、损坏报修、宿舍卫生检查记录查看、宿舍水电气缴费查看。图3-2是学生端功能模块。图3-2 学生端功能模块图4 数据库分析与设计4.1 数据库分析数据库作为信息在系统中的终点,其重要性不言而喻。数据库的设计对于应用的后期发展也是相称重要的,好的设计能为系统后期的维护与扩展带来很多的便利。用户的各种各样的操作也是围绕数据为核心进行解决的,通过对系统业务的分析和整理,最终得出对数据库的设计具有以下的需求:1)用户分为宿舍管理员和学生,两
22、个角色会操作相同的数据,这就需要对不同角色的重叠部分的数据进行合理的数据隔离。2)该系统最终的使用者将会是整个学校的所有学生,不同的学生所处的宿舍也不同,许多的操作都是围绕宿舍进行,因此不同宿舍之间也需要做好数据的隔离。3)为了便于后期系统的扩展,宿舍管理员具有创建角色,录入新菜单,以及菜单分派的功能。因此系统需要完整的权限管理设计。4)系统的使用者重要是高校的全体学生,数据的解决级别是万级的,需要考虑到数据的查询性能,数据的检索效率等性能问题。5)宿舍是高校学生平常生活的重要一部分,对并发上也有一定的规定,设计数据库的时候需要考虑。4.2 数据库概念结构设计通过了以上的一些对业务的分析,以及
23、后期性能的考虑,该系统应当具有以下实体:宿舍、用户、访客记录、卫生检查记录、报修记录、失物信息、水电气费、系统角色、菜单。用户实体包含学生信息,以及宿舍管理员信息,两种登录账号通过类型区分;卫生检查、报修记录、水电气费、用户实体都需要关联相应的宿舍,他们与宿舍的关系均是多对一。各实体的相关属性如图4-1至4-8所示,部分实体间的联系如图4-9所示,没有联系的实体为孤立实体。 图4-1用户实体及其属性图4-2 系统菜单实体及其属性图4-3 失物告知实体及其属性图4-4 报修记录实体及其属性图4-5 访客记录实体及其属性图4-6 宿舍实体及其属性图4-7 卫生检查实体及其属性图4-8 缴费实体及其
24、属性图4-9 部分实体联系图4.3 数据库逻辑结构设计在完毕宿舍管理系统数据库的概念结构设计后,需要把所得到的数据库概念模型转变成Mysql所支持的关系模型,也就是数据库的逻辑结构。根据概念设计结果,本宿舍管理网站的数据库中涉及用户表、角色表、菜单表、宿舍表、报修登记表、卫生检查表、访客登记表、水电费登记表、失物登记表。每个表的逻辑结构如表1表9所示。表1 用户表(T_USER)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码用户名文本64密码文本64真实姓名文本64电话号码文本16状态布尔1院系文本32年龄数字4学号文本32唯一宿舍id文本32外键用户类型文本16添加时间日期时间
25、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 卫生检查表(T_SANITARY)属性的名字属性的数据类型属性的长度属性的说明ID文本32主码检查时间日期时间8分数数字3宿舍id文本32外键
26、表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内容文本256创建人文本32添加时间日期时间8表9 报修登记表(T_REPAIR)属性的名字属性的数据类型属性的长度属
27、性的说明ID文本32主码宿舍编号文本32报修人文本32描述文本256修理状态布尔1解决意见文本645 宿舍管理系统实现宿舍管理系统是基于Web的应用系统,系统开发平台为Windows7,开发工具Myeclipse,编程技术选择Java,数据库采用Mysql。5.1 宿舍管理系统数据库实现与连接根据逻辑设计结果,使用远程连接操作工具创建相应的数据表,创建用户设立密码。系统运用Hibernate框架实现数据的持久化,并完毕从关系型数据库到对象的映射,为了提高数据的读取和操作数据库的连接使用了连接池,系统中使用的阿里巴巴开源的Druid数据库连接池;整个项目又是使用Spring框架提供的IoC容器来
28、管理业务Bean数据库的实现重要通过配置完毕,配置如下: 5.2 管理员端功能模块实现宿舍管理系统网站涉及登录页、主页、功能导航、控制面板、失物信息管理、学生信息管理、宿舍信息管理、访客记录管理、报修解决。5.2.1 登录页界面登录页如图5-1所示,该界面是本站的默认登录页。网站登录页界面清楚,简洁大方,在该页面输入账号密码登录,假如账号密码不对的可以在页面给出提醒。登录成功后会跳转到系统主页。用户登录模块代码如下:public String login() if (StringUtils.isBlank(user.getCname() | StringUtils.isBlank(user.g
29、etCpwd() 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-1 登录页面5.2.2 登陆后主界面用户登录成功后主界面如图5-2所示,用户
30、登录后可以点击左侧导航菜单进行相应的操作。图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 学生信息管理宿舍管理员在左侧菜单选择学生信息菜单以后,将会在主窗口中打开一个
31、新的标签页用来显示对学生信息的维护。在该页面管理员可以增长新的学生信息、也可以编辑已经存在的学生信息、也可以删除掉没用的数据。如图5-4所示。该界面是个列表,列出了已经存在于系统的学生信息,可以对学生信息进行排序,页面实现代码如下:datagrid = $(#datagrid).datagrid(url : userAction!datagrid.action,title : 用户列表(admin拥有所有权限,不需要更改角色),iconCls : icon-save,pagination : true,pagePosition : bottom,pageSize : 50,pageList :
32、 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) DataGrid j = new DataGrid();j
33、.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 = tu.getTusertroles();Str
34、ing 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() u.setRoleIds();u.setRol
35、eNames(); 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 & user.getOrder() != null) hql
36、 += order by + user.getSort() + + user.getOrder();return userDao.find(hql, user.getPage(), user.getRows(), values);5.2.5 宿舍信息管理宿舍管理系统的核心就是宿舍,宿舍信息作为该系统的基础信息,宿舍管理员需要录入其管理宿舍的所有宿舍,并将各个宿舍的编号录入系统。管理员点击导航菜单的宿舍管理按钮,打开宿舍管理功能,宿舍管理页面如图5-5所示。图5-5 宿舍管理界面宿舍信息管理的前台部分运用easyui框架的datagrid实现,具体代码如下:datagrid = $(#datagrid).datagrid(url : dormAction!datagrid.action,title : 宿舍列表,iconCls : icon-save,pagination : true,pagePositio