博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,博客中有上百套程序可供参考,欢迎共同交流学习。
🍅文末点击卡片获取联系🍅
技术:springboot+mysql+vue+tomcat
目录
1 系统介绍
互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对学生宿舍信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用学生宿舍管理系统可以有效管理,使信息管理能够更加科学和规范。
学生宿舍管理系统在Eclipse环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员管理宿管员,管理学生,修改密码,维护个人信息。宿管员管理公寓资产,缴费信息,公共场所清理信息,日常事务信息,审核学生床位安排信息。学生查看公共场所清理信息,日常事务,缴费信息,在线申请床位,查看床位安排。
总之,学生宿舍管理系统集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。
2 系统背景
2.1 课题背景
互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各行业,尤其是规模较大的企业和学校等都开始借助互联网和软件工具管理信息,传播信息,共享信息等等,以此可以增强自身实力,提高在同行业当中的竞争能力,并从各种激烈的竞争中获取发展的机会。针对学生宿舍信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,经过分析和考虑,在目前的情况下,可以引进一款学生宿舍管理系统这样的现代化管理工具,这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理,还缩短学生宿舍信息管理流程,使其系统化和规范化。同时还可以减少工作量,节约学生宿舍信息管理需要的人力和资金。所以学生宿舍管理系统是信息管理环节中不可缺少的工具,它对管理者来说非常重要。
2.2 课题意义
现如今,信息种类变得越来越多,信息的容量也变得越来越大,这就是信息时代的标志。近些年,计算机科学发展得也越来越快,而且软件开发技术也越来越成熟,因此,在生活中的各个领域,只要存在信息管理,几乎都有计算机的影子,可以说很多行业都采用计算机的方式管理信息。信息计算机化处理相比手工操作,有着保密性强,效率高,存储空间大,成本低等诸多优点。针对学生宿舍信息管理,采用学生宿舍管理系统可以有效管理,使信息管理能够更加科学和规范。
总之,在实际中使用学生宿舍管理系统,其意义如下:
第一点:学生宿舍管理系统的实际运用,可以帮助管理人员在短时间内完成信息处理工作;
第二点:通过系统页面的合理排版布局,可以更加直观的展示系统的内容,并且使用者可以随时阅读页面信息,随时操作系统提供的功能;
第三点:可以实现信息管理计算机化;
第四点:可以降低信息管理成本;
3 系统功能结构
3.1 管理员
3.2 宿管员
3.3 用户
4 数据库结构
本数据库是关系型数据库,因此对二维表的结构设计也比较关键。毕竟二维表格模型就是关系型数据库中的关系模型。而一些常用的关系模型中的概念也需要了解,才可以对关系模型进行设计。下面就简单介绍关系,元组,属性,域,关键字等常用概念的含义。
关系:关系就是数据库中的一张数据表,每张数据表都有命名,也就是每个关系也有名字,那就是数据表名;
元组:元组就是数据表中的一行记录;
属性:属性就是数据表中的字段,也就是数据表中的一列;
域:域就是对数据表中属性的取值进行限定;
关键字:关键字就是数据表中的主键;
在了解了表结构设计的常用概念后,接下来就需要使用前面绘制的E-R模型完成表结构的设计工作,并在数据库中创建数据表,并为各个数据表进行命名。以下就对设计的结果通过表格形式进行展示。
表4. 1 床位安排信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
bianhao | varchar(200) | 是 | NULL | 编号 |
xuehao | varchar(200) | 是 | NULL | 学号 |
xingming | varchar(200) | 是 | NULL | 姓名 |
xingbie | varchar(200) | 是 | NULL | 性别 |
fangjianhao | varchar(200) | 是 | NULL | 房间号 |
chuangweihao | varchar(200) | 是 | NULL | 床位号 |
sfsh | varchar(200) | 是 | 否 | 是否审核 |
shhf | longtext | 是 | NULL | 审核回复 |
表4. 2 公寓资产信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
bianhao | varchar(200) | 是 | NULL | 编号 |
fangjianhao | varchar(200) | 是 | NULL | 房间号 |
zichanmingcheng | varchar(200) | 是 | NULL | 资产名称 |
gudingzichan | varchar(200) | 是 | NULL | 固定资产 |
goururiqi | date | 是 | NULL | 购入日期 |
gonghao | varchar(200) | 是 | NULL | 工号 |
xingming | varchar(200) | 是 | NULL | 姓名 |
beizhu | varchar(200) | 是 | NULL | 备注 |
表4. 3 缴费信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
bianhao | varchar(200) | 是 | NULL | 编号 |
xuehao | varchar(200) | 是 | NULL | 学号 |
xingming | varchar(200) | 是 | NULL | 姓名 |
zhusufeiyong | int(11) | 是 | NULL | 住宿费用 |
fabushijian | date | 是 | NULL | 发布时间 |
jiaofeiriqi | date | 是 | NULL | 缴费日期 |
clicknum | int(11) | 是 | 0 | 点击次数 |
表4. 4 清理公共场所信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
xuehao | varchar(200) | 是 | NULL | 学号 |
xingming | varchar(200) | 是 | NULL | 姓名 |
qinglishijian | date | 是 | NULL | 清理时间 |
qinglididian | varchar(200) | 是 | NULL | 清理地点 |
表4. 5 日常事务信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
bianhao | varchar(200) | 是 | NULL | 编号 |
xuehao | varchar(200) | 是 | NULL | 学号 |
xingming | varchar(200) | 是 | NULL | 姓名 |
biaoti | varchar(200) | 是 | NULL | 标题 |
neirong | longtext | 是 | NULL | 内容 |
shijian | date | 是 | NULL | 时间 |
jiafenshixiang | varchar(200) | 是 | NULL | 加分事项 |
pingfenbiaozhun | varchar(200) | 是 | NULL | 评分标准 |
beizhu | varchar(200) | 是 | NULL | 备注 |
表4. 6 宿管员信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
gonghao | varchar(200) | 否 | 工号 | |
mima | varchar(200) | 否 | 密码 | |
xingming | varchar(200) | 否 | 姓名 | |
xingbie | varchar(200) | 是 | NULL | 性别 |
shouji | varchar(200) | 是 | NULL | 手机 |
youxiang | varchar(200) | 是 | NULL | 邮箱 |
zhaopian | varchar(200) | 是 | NULL | 照片 |
表4. 7管理员信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
username | varchar(100) | 否 | 用户名 | |
password | varchar(100) | 否 | 密码 | |
role | varchar(100) | 是 | 管理员 | 角色 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 新增时间 |
表4. 8学生信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
xuehao | varchar(200) | 否 | 学号 | |
mima | varchar(200) | 否 | 密码 | |
xingming | varchar(200) | 是 | NULL | 姓名 |
xingbie | varchar(200) | 是 | NULL | 性别 |
zhaopian | varchar(200) | 是 | NULL | 照片 |
dianhuahaoma | varchar(200) | 是 | NULL | 电话号码 |
youxiang | varchar(200) | 是 | NULL | 邮箱 |
5 系统功能
进入到这个环节,也就可以及时检查出前面设计的需求是否可靠了。一个设计良好的方案在运用于系统实现中,是会帮助系统编制人员节省时间,并提升开发效率的。所以在系统的编程阶段,也就是系统实现阶段,对于一些不合理的设计需求,也是可以及时发现。因为设计的方案是完全指导系统的编码过程的。
5.1 管理员功能实现
5.1.1 宿管员管理
管理员进入指定功能操作区之后可以管理宿管员。其页面见下图。宿管员的资料需要管理员负责管理,包括修改,新增,删除等操作。
图5.1 宿管员管理页面
5.1.2 学生管理
管理员进入指定功能操作区之后可以管理学生。其页面见下图。学生信息也需要管理员负责管理,包括信息的增删改查操作。
图5.2 学生管理页面
5.2 宿管员功能实现
5.2.1 学生信息管理
宿管员进入指定功能操作区之后可以管理学生信息。其页面见下图。宿管员增删改查学生信息,为各位学生申请床位,管理学生的卫生记录和日常事务评分。
图5.3 学生信息管理页面
5.2.2 公寓资产管理
宿管员进入指定功能操作区之后可以管理公寓资产。其页面见下图。公寓资产存在损坏情况,需要宿管员通过损坏按钮登记公寓资产损坏信息。
图5.4 公寓资产管理页面
5.2.3 缴费信息管理
宿管员进入指定功能操作区之后可以管理缴费信息。其页面见下图。宿管员增删改缴费信息。
图5.5 缴费信息管理页面
5.2.4 床位安排管理
宿管员进入指定功能操作区之后可以管理床位安排。其页面见下图。宿管员审核对学生的床位安排信息。
图5.6 床位安排管理页面
5.3 学生功能实现
5.3.1 清理公共场所
学生进入指定功能操作区之后可以查看清理公共场所信息。其页面见下图。各位学生负责清理的公共场所信息都会显示在本页面,学生可查询也能查看。
图5.7 清理公共场所页面
5.3.2 申请床位
学生进入指定功能操作区之后可以申请床位。其页面见下图。学生可以选择床位号进行床位申请,宿管员审核通过之后,学生才能使用申请的床位。
图5.8 申请床位页面
5.3.3 日常事务
学生进入指定功能操作区之后可以查看日常事务。其页面见下图。学生查看日常事务的加分项和评分标准信息。
图5.9 日常事务页面
5.3.4 缴费信息
学生进入指定功能操作区之后可以查看缴费信息。其页面见下图。学生查看住宿费用,以及缴费时间等信息。
图5.10 缴费信息页面
6 系统测试
进入这个环节就代表着系统已经结束了编码实现功能阶段,接下来要做的事情,就是对该系统进行检测,也就是系统测试,这个环节是很有必要进行的,原因是开发本系统的人员,其自身具备的开发技术以及开发思维是有限的,在面对具有复杂性操作逻辑的系统,都会出现大大小小的错误,并且这样的错误还都是不可避免的。通过及时的测试,可以尽早排除程序中的错误,这样也可以减少实际运行中产生的问题,从而真正避免在后期使用中为修复这些问题所付出的高昂代价。及时测试,及时发现问题并解决,也是提高开发过程的效率的一种表现形式。总而言之,在软件开发生命周期的每个阶段都需要加以重视,并做好每个阶段需要做的任务,从开始到结尾都需要保证开发软件的质量。
6.1 测试的任务
在系统编码完成之后,完成对本系统的测试工作,其主要的任务还是找出本系统可能出现的错误,而且是发现的错误越多越好,因为每发现一个程序错误,都需要进行文档记载,然后根据这些记载程序错误的文档,采取各种措施去解决这些程序问题,逐渐完善程序。所以,测试并不是去证明开发的系统是正确的,而是通过各种各样的方式去寻找系统中的缺陷,并针对性的完善系统。这样才能保证系统在实际运行中,可以保质保量的进行工作。
6.2 测试的目标
通过对系统的测试,才可以发现系统的问题。通常测试就是对大部分程序容易出错的位置进行检测,或者是针对系统复杂的部分进行检测,其目的就是发现系统中尽可能多的错误。尽管系统开发时,采用的开发方式,或者是开发技术都是比较成熟的,但这并不能证明系统是没有缺陷和错误的。尤其是随着现在软件开发技术的升级,市场上大部分软件都具有规模大,复杂性高的特点,所以这更加难以保证开发的系统不会出现错误。对此,进行系统的测试,并做好测试工作,是十分有益的。
6.3 测试方案
系统进入测试阶段,就要确定测试方案,毕竟这部分内容非常关键。测试时,要对前面设计的系统功能进行检测,看刚刚完成编码的系统是否在功能上符合用户需求,同时还要在各个功能模块里面进行测试数据的输入,并查看预期的结果与系统实际反馈的结果是否一致,另外,为了检测系统各个模块的错误,也要设计输入一些不符合操作规范的数据,检测系统能不能正常应对或者显示报错提示。截止目前,常用的两种测试方法即:黑盒和白盒测试,它们分别用于不同的测试内容。以下就对这两种方法进行了描述。
黑盒测试方法:这个测试主要还是运用在程序的各个接口测试,使用这个方法主要还是检查程序实现的功能是否跟功能需求文档匹配,它关注的主要还是功能实现,而忽视了程序的内部运行原理,以及程序在操作逻辑上的处理过程。通常进行黑盒测试,大部分都没有让用户参与。常见的除了功能测试外,它也会涉及到其它的测试,比如系统的安全性测试,恢复性测试,容量和负载性测试,以及稳定性和可靠性测试等。
白盒测试方法:这个测试主要还是注重程序内部的逻辑,包括检测程序是如何工作的,是否跟预期设定的操作逻辑一致,同时白盒测试对程序代码的检测比较彻底,可以及时把代码层面隐藏的错误给找出来,因为程序代码的每条路径都要经过检测,所以这样的方式对于代码优化也有好处。
本节针对本系统的检测也设置了相应的测试步骤,首先是模块测试,然后是集成测试,最后是验收测试。
模块测试:这个测试环节的操作员,一般都是编写程序的人员,他们会划分系统的功能模块,然后把每个功能模块都当成一个单元进行测试,因此单元测试也是模块测试的别称。这部分测试通常就是验证程序各个功能可以运行,以及发现一些来源于编码和程序设计的问题。对于模块测试,常见的错误主要有下面5个。
第一个常见错误:则是单元接口;
第二个常见错误:则是局部数据结构;
第三个常见错误:则是独立路径;
第四个常见错误:则是出错处理通路;
第五个常见错误:则是跟上述错误相关的边界条件;
总之,模块测试也是基于白盒测试,在对各模块内部的检测中,发现可能存在的错误。
集成测试:进行这个环节的测试的前提是,模块测试已经完成,然后把系统的各个模块进行组合并开始测试,测试时,主要还是检查系统各个模块连接的接口是否正确。当模块测试通过之后,把它们进行组合时,也会出现一些问题,所以在模块组合时,也进行整体性的测试,也非常重要。
集成测试常用的方法则是渐增式方法,相比非渐增式来说,渐增式用得比较多,也比较受欢迎,其中的原因有以下4点。
第一点:同样是测试,采用渐增式方法可以节约成本,开销不高;
第二点:采用渐增式方法可以短时间内暴露模块间接口的错误问题;
第三点:采用渐增式方法可以更容易对错误的位置进行判断;
第四点:采用渐增式方法可以更彻底地测试系统;
通过上面的比较分析,选用渐增式方式测试本系统,但是主要是运用渐增式里面的混合法进行集成测试。用自上而下的方式测试程序结构的较上层;对程序结构的较下层,则是采用自下而上的方式,这两种方式搭配使用完成本系统的集成测试。
验收测试:这个步骤就需要未来使用程序的人进行参与了,主要还是检测程序是否可以按照用户预定的方式进行工作,此部分测试主要还是在功能检测上,参考标准就是提前设计的功能需求文档,所以,采用黑盒测试法比较符合要求。一般来说,进行到验收测试这个环节,都会产生两种结果。一种是程序提供的功能跟用户之前要求的功能保持一致;这个就是未来使用程序的用户想要达到的效果。还有一种是程序提供的功能跟用户预定的功能需求有差距;总的来说,这个阶段主要还是验证程序跟需求文档之间的差距问题。
6.4 功能测试
通过设计一些数据检验学生宿舍管理系统的功能是否根据预定进行数据输出,以此检验系统功能是否合格。接下来就选取部分功能进行检测。
6.4.1 登录功能测试
学生宿舍管理系统提供的服务是给规定的用户使用的,其他无关用户是无法进入的,登录功能就是检验访问者是否是符合要求的用户,及时将不符合要求的用户拒之门外。以此保证系统安全。这里以管理员身份进行检测,测试的内容见下表。
表6.1 登录功能测试表
账号 | 密码 | 身份 | 结果 |
guanliyuan | guanliyuan | 管理员 | 提示成功,进入系统后台 |
user | guanliyuan | 管理员 | 提示失败,停留在登录页面 |
guanliyuan | user | 管理员 | 提示失败,停留在登录页面 |
6.4.2 修改密码功能测试
这个功能的设置也是出于对系统的保护,让操作人员的密码可以一直变化,减少泄露的几率。测试的数据见下表。通过验证旧密码,确认操作者是本人,然后开始对新密码进行登记。一般修改完密码后,需要再次登录。
表6.2 修改密码功能测试表
旧密码 | 新密码 | 密码修改结果 |
guanliyuan | gly | 成功 |
user | gly | 失败 |
guanliyuan | 失败 |
6.5 测试结果
经过测试,从学生宿舍管理系统功能的角度来看,本系统各个功能在符合用户要求的情况下,也能保持运行正常。从学生宿舍管理系统性能的角度来看,本系统可以保持24小时不间断运行,而且面对用户的误操作行为,有提前设置的错误反馈机制应对,另外,本系统界面布局考虑用户阅读习惯,可以让用户短时间内获取需要的内容。总之,本系统可以投入生产,帮助用户解决实际问题,发挥其应用价值。
7 总结
采用Java+Mysql的方式设计制作的学生宿舍管理系统,在功能上可以满足管理人员对于信息的管理需求;在界面的设计上,尽最大努力用自身的美工知识做到界面美观简洁。在操作方面上,让系统可以方便操作,同时对用户常见的误操作行为进行分析总结,并尽力在系统中避免同样的由于用户的误操作所带来的错误现象。
作为毕业设计,分配给本系统的设计与制作时间还是不足的,所以,学生宿舍管理系统还有许多需要完善的地方。
第一个就是本系统的编程代码问题,各个程序文件的代码存在冗余的地方非常多,导致代码不够简洁,同时对代码的注释也比较麻烦。编码期间,对于很多页面可以共享的函数与方法都没有单独列出来,而是在需要用到函数和方法的页面上都重新编写了代码,通过后期的技术学习,以及对编码过程的分析总结,发现可以把共用的函数或方法编写在同一个页面上,在之后的页面中,需要使用此函数的页面,则可以直接调用函数,无需再编写代码了,这样可以简化代码,也能节省时间和存储空间。
第二个就是对数据库的设计不够好,在数据处理中,影响程序运行速度。因此需要对数据库的性能进行优化。通过这方面知识的学习,在某个开发技术类的博客中,发现可以用数据库连接池技术来解决数据库的性能问题,另外还需规范数据库里面的关系模式,降低数据库的冗余率,提高运行速度。
如果说平时的作业也是检查对知识的掌握情况,那么制作毕业设计,将是对自身所有知识的一个全面检测。因为系统能够制作完成则是经历了很多阶段,正如文中所展示的那样,先有可行性分析,对功能的分析,对功能的设计,对数据库的设计,对程序功能的编码实现,对完成编码程序的测试等,这些环节缺一不可,而且还都需要认真对待,大学学到的所有知识在制作系统时,才会发现不够用。所以这个项目制作,在检测自身能力的同时,也对问题分析,资料搜集,问题解决等能力进行了培养。
我通过制作本系统,熟悉了程序开发的流程,提高了对程序的编码能力,培养了独立分析与解决问题的能力;但也让我明白自身的不足之处,所以在接下来的时间,我还是要加强对技术知识的学习,去逐渐完善本系统