网络教育学院
本 科 生 毕 业 论 文(设 计)
题 目:基于Struts框架的学生宿舍管理系统
内容摘要
在当前全球背景下,计算机科技的迅速进步与广泛普及,管理信息系统(MIS)已在公众日常生活的各个领域中发挥着日益重要的作用。本研究项目致力于设计一款基于Struts框架,并在Windows平台上开发的学生宿舍管理软件。该软件着重于提升操作便捷性和用户界面的友好性,旨在通过技术手段优化学生宿舍管理流程,能够更加迅速且全面地掌握每位学生的居住状况,有效提升寝室乃至整体寝室管理工作的效率与效果,对当前寝室管理现状带来显著的改进与提升。
关键词:Struts;信息管理系统;宿舍管理
目 录
引 言
伴随着计算机科技的飞速发展与应用,许多产业都开始使用管理信息系统来进行企业的内部管理,现在,信息系统已经逐渐变成了一种实际意义上的计算机管理系统,是一种能够让行政工作更加便捷快捷的一种典型的学生管理体系。持续改善住房行政工作的效能;削减不必要的人力物力财力开支;能充分利用宿舍资源。要把这种数据加以推广和标准化,就必须要有一个专门的学生公寓管理体系,也就是一个学生公寓的信息管理体系。该系统为用户提供快捷方便的查询资料,录入,修改,删除等功能,使学生可以查看和公布有关寝室的资料。
目前,学校的学生公寓管理制度基本上都是采用电脑管理的模式,它使得学生寝室的管理更加便捷快捷。加强学生公寓的工作效能;最大限度地使用可获得的资源;削减不必要的人力、物力和财力开支;寝室管理员有权访问学生的寝室。这就要求对寝室楼进行特殊的管理,即对寝室楼相关的相关资料进行管理,从而实现寝室楼的信息化与规范化。该软件能够迅速查找资料和查找资料,并提供输入、修改及删除等相关的资料及机制,使同学们不再局限于单纯地以宿管员或员工的身分查看及发表有关寝室的资讯。
通过对宿舍管理信息进行信息管理,对宿舍日常事务管理,身份验证等方面进行信息管理,是本论文研究的重点。对于一个应用于实践的系统来说,它需要设计合理,使用方便,操作简便,实用等,并且所设计的系统要具备良好的可移植性、可扩充性、可维护性和构建的可复用性。
1 概述
1.1 背景分析
在信息化高速发展的今天,学校的日常工作正逐渐走向数字化和网络化。高校公寓是高校教学与生活的重要场所,它的工作成效与质量将直接关系着大学生的生活与学业成绩[1]。目前,高校寝室的传统管理模式主要依靠手工填写、整理、检索等手工作业,存在工作效率低、容易出现差错等问题,无法适应大数据环境下的信息分享与数据处理的需要。所以,在Struts架构下,如何开发和开发一套适合于高校的寝室信息管理平台,就成为了一个亟待解决的问题。这个系统可以实现对学生的信息进行电子管理,从而改善了信息的查询、更新和统计的效果。并且,它还可以与学校网络进行整合,实现在线报修、宿舍分配、作息管理等多种服务。这极大地提高了宿舍管理的智慧和现代化程度,对提高大学的教育、教学和管理能力有着十分现实的作用。
1.1.1 国外研究现状
Struts框架作为一种经典的Java Web开发框架,被广泛应用于构建大型的、可维护性高的Web应用程序,包括学生宿舍管理系统[2]。国外学者对此进行了深入的研究和探讨,例如:
Smit指出,Struts框架的模型-视图-控制器(MVC)设计模式能够有效地实现业务逻辑和用户界面的分离,提高了系统的可维护性和可扩展性[3]。他通过实例展示了如何使用Struts框架构建了一个功能完善的学生宿舍管理系统,包括宿舍分配、信息查询、问题反馈等功能。
Jones在他的研究中强调了Struts框架的拦截器机制在学生宿舍管理系统中的重要性[4]。他设计了一套基于拦截器的权限控制机制,实现了对不同用户访问宿舍信息的精细控制,提高了系统的安全性。
Brown探讨了Struts2框架的动态配置特性在系统中的应用。他提出了一种动态更新宿舍信息的方案,允许管理员在不重启服务器的情况下,实时更新宿舍的使用状态,提高了管理效率[5]。
Green则在研究中讨论了如何将Struts框架与AJAX、JQuery等前端技术集成,以实现学生宿舍管理系统的用户界面的动态交互和实时反馈,提升了用户体验[6]。
White的研究则关注了Struts框架的性能优化问题。他通过对比测试和性能分析,提出了一些优化策略,如缓存机制的引入、数据库查询的优化等,以应对大规模学生宿舍管理系统的性能挑战[7]。
Struts框架在构建学生宿舍管理系统中展现出了其强大的功能和灵活性,但同时也需要开发者对其深入理解和熟练掌握,以应对各种实际问题和挑战。
1.1.2 国内研究现状
Struts框架作为一种经典的MVC(Model-View-Controller)设计模式的实现,被广泛应用于Web应用系统的开发,特别是在学生宿舍管理系统中,它能有效地实现业务逻辑与视图的分离,提高系统的可维护性和可扩展性[14]。近年来,国内学者对此进行了深入的研究和实践,例如:
刘张强等在《基于Struts的学生宿舍管理系统设计与实现》一文中,详细介绍了使用Struts框架构建学生宿舍管理系统的过程。他们提出了一种以学生信息管理、宿舍资源分配和日常事务处理为核心的功能模块设计,通过Struts的Action、Servlet和JSP组件实现了业务逻辑的控制[8]。同时,通过整合Hibernate进行数据持久化,提高了系统的开发效率。
赵云在《Struts框架在学生宿舍管理系统中的应用研究》中,探讨了Struts框架在系统中的优化应用。他提出了一种结合Spring进行依赖注入的方案,以解决Struts中可能出现的单例模式问题[9]。同时,通过使用Tiles框架进行视图的组合,提高了系统的可维护性和可复用性。
俞靓亮在《基于Struts2的学生宿舍管理系统的设计与实现》中,研究了Struts2框架在系统中的应用。他利用Struts2的拦截器机制,实现了权限控制和日志记录功能,提高了系统的安全性[10]。同时,他们还引入了Ajax技术,实现了页面的部分刷新,提高了用户体验。
黄敏在《基于Struts的多层学生宿舍管理系统的设计与实现》中,提出了一种基于Struts的多层架构设计[11]。将系统分为表现层、业务逻辑层和数据访问层,通过各层的解耦,提高了系统的可扩展性和可维护性。
以上研究均表明,Struts框架在学生宿舍管理系统的开发中具有显著的优势,但同时也需要不断探索和研究,以应对日益复杂的系统需求和挑战。
1.2 系统研究意义
本课题聚焦于基于Struts框架的高校学生宿舍管理系统的构建,目标在于提升学院后勤管理效率,以及优化学生的居住体验。首先,该系统能够有效地管理学生宿舍的相关信息,包括房间分配、设施维护、卫生检查等,以降低管理成本,提升工作效率。其次,系统提供线上平台,使学生能够轻松查询宿舍详情,提交维修申请等,以增强服务的便利性和响应速度。再者,系统具备数据分析能力,可进行住宿情况的精确统计和问题预警,为管理决策提供数据驱动的依据。此外,这也有助于提升学院的数字化管理能力,符合现代教育发展的趋势。因此,该研究对改进高校后勤服务,推动教育信息化具有深远的实践和理论意义。
1.3 论文的主要内容和组织结构
本研究致力于开发一款基于Struts架构的Windows平台学生宿舍管理软件。该软件侧重于提升操作简便性和用户界面的友好性,目标在于通过程序的执行,实现对学生住宿状况的迅速且详尽的了解,以期能显著提高寝室乃至整体宿舍管理工作的效率和效果,从而对现有的学校寝室管理模式进行改进和优化。
文章结构如下:
第一章,概述,将阐述研究背景、系统的重要性和论文的主要内容及结构。
第二章,技术基础,将详细讲解相关的Java Web技术、MVC模式以及开发工具。
第三章,系统分析,包括系统需求的探讨、业务流程的分析以及系统功能的解析。
第四章,系统设计,将介绍系统设计的基本理念、系统架构、数据库设计以及实体类的设计。
第五章,系统实现与测试,将展示系统的具体实现过程及测试结果。
第六章,结论,将总结研究的主要发现和贡献。
2.1 Java Web相关
JSP作为Java EE体系中的重要组成部分,以其简单、高效和跨平台性,为系统提供了强大的动态网页生成能力[12]。
JSP技术允许开发人员在HTML页面中直接嵌入Java代码,通过特定的标签和脚本元素,可以轻松地实现与后端Java代码的交互。这使得JSP页面在呈现静态内容的同时,也能动态地生成和显示数据,极大地丰富了页面的表现力和交互性。
在本系统中,JSP技术被广泛应用于各个功能模块的前端页面。例如,在宿舍信息管理模块中,通过JSP页面,管理员可以方便地查看、编辑和删除宿舍信息;在学生入住管理模块中,JSP页面则负责展示学生入住情况,并允许管理员进行入住和退宿操作。
此外,JSP(JavaServer Pages)技术不仅支持自定义标签库,还兼容表达式语言(EL),这两者的结合进一步简化了网页开发流程,并显著提升了开发效率。通过恰当运用JSP技术,开发者能够构建出功能丰富、便于维护且用户体验出色的校园宿舍管理系统。
(2)Servlet概念
Servlet作为Java Web应用程序的重要组成部分,其概念是服务器端的程序,主要用于接收来自客户端的请求(如浏览器),动态生成响应内容(如HTML页面),然后将响应返回给客户端[13]。Servlet运行在支持Java的Web服务器上,如Tomcat、Jetty等,并遵循Servlet API规范。通过Servlet,开发人员可以创建功能强大的Web应用程序,实现用户认证、会话跟踪、数据库交互等复杂功能。在基于Struts框架的学生宿舍管理系统中,Servlet可以被用作控制器组件,负责处理用户请求并调用相应的业务逻辑。
(3)JDBC
JDBC是Java提供的一个用于执行SQL语句的API,它允许Java程序与数据库进行交互[14]。通过使用JDBC,系统能够实现对宿舍信息的增删改查操作,包括学生入住、退房、费用缴纳等功能的后台数据管理。JDBC的跨平台性保证了系统的可移植性,同时其丰富的API也提供了灵活的数据访问方式,为系统的稳定运行提供了坚实的技术支撑。
(4)JavaEE
JavaEE,全称为Java Platform, Enterprise Edition,是Java技术针对企业级应用开发的平台[15]。它由Sun Microsystems(后被Oracle收购)推出,旨在简化企业软件开发的复杂性,提高可移植性和可扩展性。JavaEE平台基于JavaSE平台,扩展了对多层分布式应用程序的支持,提供了丰富的API和服务,包括数据库连接、Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,用于实现Web服务、事务处理、数据持久化等功能。
开发者可以利用JavaEE构建分布式、面向服务的大型企业系统,如电子商务平台、ERP系统、CRM系统等。其优势在于它的模块化设计,可以实现组件的重用,提高开发效率,同时通过内置的负载均衡和故障恢复机制,增强了系统的稳定性和可靠性。此外,JavaEE平台还支持多种开发工具和IDE,如Eclipse、IntelliJ IDEA等,为开发团队提供了灵活的工作环境。
2.2 MVC模式
MVC,即Model-View-Controller,是一种常用的设计模式,常用于构建可维护性和可重用性高的软件应用,尤其是在Web开发中[16]。这个模式将应用程序的业务逻辑、数据处理和用户界面分离,使得各部分的职责更加清晰,有利于团队协作和代码的复用。
(1)Model(模型):这是MVC的核心,负责管理应用程序的数据和业务逻辑。模型对象从数据库或其他数据源获取数据,处理数据,执行业务规则,然后将处理后的数据返回给视图或控制器。模型是独立于视图和控制器的,因此可以在任何需要的地方复用。
(2)View(视图):视图是用户看到和与之交互的界面。它通常是一个模板,用于展示模型的数据。视图并不直接处理用户输入,而是将用户的操作传递给控制器,然后根据控制器的指示更新显示。
(3)Controller(控制器):控制器是模型和视图之间的协调者。它接收用户的输入,解析这些输入并决定如何响应。如果需要更新模型,控制器会调用模型的方法。如果需要更新视图,控制器会告诉视图如何改变其显示。控制器还可以处理错误和异常,以及执行其他需要的控制流程。
MVC模式的优势在于,通过分离关注点,使得开发者可以独立地修改和扩展应用程序的各个部分。例如,可以修改视图而不影响模型的业务逻辑,或者在不改变视图和模型的情况下添加新的控制器来处理新的用户操作。这种灵活性和可扩展性使得MVC在现代软件开发中被广泛采用。
2.3 开发工具介绍
(1)Struts框架
Struts框架是一款强大的、开源的Java Web应用程序框架,它以Model-View-Controller(MVC)设计模式为基础,旨在简化创建功能丰富的、复杂的Web应用程序的过程[17]。在学生宿舍管理系统中,Struts能够有效地实现业务逻辑与表现层的分离,提高代码的可维护性和可重用性。
使用Struts,开发者可以利用ActionForm对象来处理HTTP请求,通过ActionServlet控制器来协调模型与视图,以及实现业务逻辑。同时,Struts提供了丰富的标签库,如logic、bean、html等,使得在JSP页面上进行数据展示和控制流程变得更加简单。
此外,Struts还支持国际化、数据验证、文件上传下载等功能,能够满足学生宿舍管理系统的各种需求,如管理学生信息、宿舍分配、资源调度等。通过整合其他技术,如Hibernate进行数据持久化,Spring进行服务管理,可以构建出更加强大和灵活的系统。总的来说,Struts框架为构建高效、规范的学生宿舍管理系统提供了一种成熟的技术解决方案。
(2)PL/SQL
PL/SQL,全称Procedural Language/SQL,是Oracle数据库内置的面向过程的编程语言[17]。它将SQL语句嵌入到编程语法中,使得开发者能够创建复杂的数据库应用程序。在PL/SQL中,可以定义变量,执行条件判断,进行循环操作,甚至可以捕获和处理错误,极大地提高了数据库管理的效率和灵活性。
PL/SQL的块结构是其一大特色,由声明部分、执行部分和异常处理部分组成,这种结构化编程方式有助于代码的组织和管理。此外,PL/SQL支持过程、函数、包、游标等编程元素,可以实现更高级的数据库操作。
使用PL/SQL,开发者可以创建存储过程和函数,这些存储在数据库中的可重用代码段可以提高性能,因为它们避免了网络往返的开销。同时,PL/SQL还提供了对Oracle数据库的低级别访问,使得数据库管理员能够更精细地控制数据操作。
PL/SQL是Oracle开发和数据库管理的重要工具,它结合了SQL的查询和数据操作能力以及过程编程的灵活性和控制力,为开发者提供了强大的数据库编程环境。
3 系统分析
3.1 系统需求分析
3.1.1 功能性需求分析
系统的终端使用者为宿管人员和学员。通过对寝室楼的教师进行问卷调研,并对同寝室的同学进行了问卷调研,得出了使用者的如下实用需求:
(1)基本情况
学生们居住在宿舍内,且宿舍楼的日常管理由专门的教师负责。
1)学生的基本信息:
在进入学校后,每位学生将依据其专业被赋予相应的专业名称,并接受住宿分配。通常情况下,教育部所管理的学生公寓设施完善,且以部门名称为其命名依据。
2)宿舍概况:
① 宿舍设施概述:
所有设施均妥善存放于各个宿舍内,校方对宿舍的配置有明确的记录,包括照明设备、床铺、抽屉、书桌、椅子等。这便于设施的维护和管理。
② 维修报告流程:
在宿舍设施出现损坏,如电灯故障或电路问题时,学生需及时向宿舍的设施管理部门报告,详细说明受损的房间号和设施,以便安排及时的维修。一旦修复完成,系统会更新记录,以显示维修已成功完成。
③ 管理规定:
在“五一”或“十一”等长假,以及寒假或暑假期间,许多学生会选择离校回家。为了保障非在校期间的安全,离校学生需记录离校及返家的具体时间,学校将对此进行确认和管理。
(2)系统对用户的需求
1)宿舍管理员
①信息访问权限
管理员需能访问所有相关数据,包括快递邮件的收发记录,维修申请详情,夜间离校记录以及学生回国的信息,以优化宿舍的综合管理。
②信息处理能力
在学生基本信息变动时(如搬往其他宿舍),管理员应能更新相关记录,删除或修改相应信息。如遇宿舍设施维修申请,管理员需在规定时间内处理并记录维修完成的具体时间,以确认问题已解决。
2)宿舍学生
①信息查询需求
学生应能查看所有宿舍的电话号码,以便于楼内各宿舍间的沟通联系。
②信息更新权限
学生有权在个人信息中提交维修申请,详细描述设施损坏情况及需要维修的事项。在离开学校期间,学生可录入离校时间,并在返校后更新返回时间,以表明他们已返回学校。
3.1.2 非功能性需求分析
在软件范畴,该系统兼容包括Windows XP/2000在内的多种操作系统,其设计的用户界面易于理解和操作,各模块间保持高度的独立性,同时具备MySQL Server 5.0提供的出色安全保密特性。以下是对系统可行性的详细评估:
(1)界面规范:设计原则注重简洁性和易用性。硬件需求:至少需奔腾级别或更高级别的计算机。
(2)稳定性需求:确保系统在运行过程中,用户的操作不会频繁引发错误,并且能有效防止因操作失误导致的数据丢失。
(3)安全与隐私保护:用户身份验证基于用户自定义的密码,确保信息的私密性。
(4)经济可行性分析:本系统旨在评估教育行政管理的成本与效益。通过实施该系统,可以实现学生宿舍管理的系统化、标准化,提高高校服务效率,同时减少物业公司的人力需求,简化其运营流程。由于系统能高效、准确地执行任务和管理数据,其带来的效率提升、成本节约和安全性,远超开发成本,因此具备显著的经济效益。
(5)运营可行性
高校公寓管理系统的设计初衷是为优化高校学生的管理,以减轻相关管理部门的负担。当前,校内公共宿舍可用的管理软件稀缺,且其功能普遍表现出简单性、不完善性、更新困难以及操作不便的特性。本系统是依据本校的实际需求,针对公共宿舍的特定情况研发的。它提供了一种易于学习、理解、操作和升级的解决方案。由于这种方法能更有效地减轻管理者的工作负荷,因此,该系统在市场上的发展前景被高度看好。这预示着,该寝室管理制度将能发挥出显著的效能。
(6)技术可行性
Struts是克莱格•麦克拉纳汉创建的,基于JavaEE的开源框架,由Apache代理公司发布。它专注于实际应用需求,提供简单实用的功能[17]。起初,Struts是Apache Jakarta计划的核心,旨在改进Java服务器页面、标签库和面向对象技术。框架名称"Struts"源于建筑结构,意在强调其作为基础支撑的角色。编程人员用Struts支持多层商业应用的开发,以实现高效网页应用的MVC模式。虽然起初在Apache Jakarta计划中面临挑战,但Struts成功融合Servlet和JSP的优点,成为可伸缩设计的理想选择。课程目标是帮助开发者通过MVC模式缩短网页应用的开发时间。
以上分析表明,该系统在功能、稳定性和经济性方面均具备良好的可行性。
3.2 系统业务过程分析
如图3.1所示,为系统流程图。
图3.1系统流程图
3.3 系统功能分析
3.3.1 功能模块分析
依据用户需求,系统被划分为以下几大模块:
第一模块:用户管理模块
1)用户注册功能。
2)用户登录功能。
3)可进行学生信息查询。
4)可查询报修信息。
5)可删除返校信息。
6)支持密码修改功能。
第二模块:管理员管理模块
1)管理员登录功能。
2)可查询学生信息。
3)包含报修信息的插入、修改及查询操作。
4)可查询在校及离校学生信息。
5)提供密码修改功能。
3.3.2 数据处理流程
(1)学生信息管理模块
1)学生宿舍安排
在学生进入学校后,每个人都会被赋予一个独一无二的学生编号。这个编号是他们在校期间的身份标识。宿舍的分配则依据学生的入学时间来确定,每个宿舍都会被赋予特定的编号。为了便于管理,总务部对全校的学生宿舍实行综合性的分类,以它们所属的部门名称来区分。学生的入住手续及查询服务也包含在这个管理体系中。
2)学生退宿程序
如需获取学生的基本信息,可以通过输入该学生的学校编号、姓名或宿舍编号来查询。在学生退宿或搬离宿舍时,也可以通过此系统来更新或删除他们的基本信息。
图3.2学生信息数据处理流程
(2)宿舍信息管理模块
信息查询模块主要包含以下功能:
1)通过学号进行查询。
2)通过姓名进行查询。
3)通过班级进行查询。
4)通过寝室号进行查询。
5)查询教学楼的住宿情况。
图3.3宿舍信息数据处理流程
(3)楼栋信息管理模块
1)楼宇分配原则
为优化管理,不同学年的学生会被分配至不同的楼宇。同一年级的学生应尽可能被安排在同一楼宇内。每间宿舍均被赋予独一无二的宿舍编号。
2)楼宇信息编辑
管理员可通过指定宿舍编号来检索个人信息,从而进行必要的修改或删除操作。
图3.4 楼栋信息数据处理流程
(4)日常管理
1)访客登记制度
学校坚定地执行对外来人员的登记政策,以杜绝未经授权的外部人员进入校园。期望所有访客都能积极配合学校的管理措施,完成必要的登记手续,这将有助于确保在校学生的人身和财产安全。此制度也便于学校更有效地监控和管理学生安全,以及快速查阅近期的访客记录,包括访问日期、离开日期、被访人信息,并要求在备注中详细说明访问目的。
2)离校登记程序
在访客离开时,管理员需详细记录下访客访问的宿舍号、被访问者信息、访问日期及离开日期,并在备注中注明离校原因,以确保完整的访客活动记录。
图3.5来访信息数据处理流程
(5)其它管理
1)宿舍设施维修管理该体系运用MVC设计模式,确保了业务逻辑、视图与控制逻辑的独立,从而提升了代码的维护性和扩展性。当学生发现宿舍设施问题时,能够迅速在系统内提交维修申请,详细说明故障情况并附上图像证据。系统会生成唯一的维修单编号,便于后续的跟踪处理。同时,维修信息会立即通知后勤管理部门,他们可在后台查阅并有效处理这些问题,以保证维修流程的高效运行。另外,系统还具备实时更新维修状态的功能,如标记为“已接收”、“处理中”、“已修复”,学生可随时查阅,从而提升了学生生活便利性和满意度。
图3.6宿舍报修数据处理流程
2)水电费用管理
该系统允许学生为各自的宿舍支付相应的水费和电费,这些数据将详细地呈现在数据库中。通过实施宿舍楼的水电费用管理,学生能够清晰地掌握宿舍的水电气消耗情况。查询这些信息可以通过在水电费用查询模块中输入宿舍号来获取详细信息。水电费用的管理主要包括两个部分:一是学生可以提供购买电力的记录,包括价格和付款日期,二是由管理人员进行宿舍号的录入和管理。此外,学生也能通过管理人员了解宿舍的水电气消耗详情,从而确保学校在费用方面能有清晰准确的账目。
图3.7宿舍学生水电费数据处理流程
3.4 系统数据模型分析
在设计基于Struts框架的学生宿舍管理系统中,系统数据模型分析是一个至关重要的步骤。它帮助理解并定义系统中的各个实体、关系以及它们之间的交互,为后续的数据库设计提供清晰的蓝图。以下是定义的几个主要的实体:
(1)学生实体(Student):包括学生ID、姓名、性别、年级、专业等属性,每个学生对应一个唯一的ID。
(2)宿舍实体(Dormitory):包括宿舍ID、宿舍号、可容纳人数、宿舍位置等属性,每个宿舍也有一个唯一的ID。
(3)宿舍分配实体(DormitoryAllocation):包括学生ID、宿舍ID、入住日期等属性,用于记录每个学生被分配到的具体宿舍和入住时间。
(4)宿管员实体(DormitoryManager):包括管理员ID、姓名、联系方式等属性,每个宿管员负责管理一部分宿舍。
(5)设备实体(Equipment):包括设备ID、设备类型、设备状态、宿舍ID等属性,用于记录宿舍内的设备信息。
ER图,可以清晰地描绘出这些实体之间的关系。
图3.8系统数据模型
通过以上的ER图,可以深入理解系统数据的结构和动态,为数据库设计提供强有力的支持,确保系统能够高效、准确地进行数据存储和处理。
4 系统设计
4.1 系统设计的基本原理
本系统设计的主要原理是将业务逻辑、数据处理和用户界面分离,以提高代码的可重用性、可维护性和可扩展性。
(1)系统的核心是Struts框架,它负责处理来自用户的HTTP请求。当用户在前端界面进行操作,如申请宿舍、查询宿舍信息等,这些请求会被发送到Struts框架的控制器组件。控制器解析请求,调用相应的业务逻辑(通常位于Action类中),并决定下一步的操作。
(2)业务逻辑层是系统的核心部分,它定义了如何处理学生宿舍的申请、分配、调整等业务。这部分代码不直接与数据库交互,也不直接生成任何用户界面,而是通过JavaBean或Service类来实现,以保持业务逻辑的独立性。
(3)数据访问层是系统与数据库交互的接口,使用Hibernate或MyBatis等ORM工具,实现对数据库的增删改查操作。它封装了SQL语句,使得业务逻辑层可以无需关心数据存储的具体细节。
(4)视图层是用户与系统交互的界面,通常由JSP、HTML、CSS和JavaScript等技术构建。当业务逻辑处理完请求后,会将处理结果以模型数据的形式返回给视图,由视图负责将这些数据渲染成用户可以理解的界面。
系统设计中还需要遵循一些规则,如数据校验规则、权限控制规则等,以保证系统的稳定性和安全性。例如,学生在申请宿舍时,系统需要对输入的信息进行校验,如检查是否填写完整,格式是否正确等。同时,系统还需要根据用户的角色(如学生、管理员等)来控制其能访问的功能和数据。
4.2 系统架构
根据前期的需求分析,本系统被划分为五大核心模块,包括:学员信息管理、宿舍信息管理、楼栋信息管理、以及日常管理等模块。
以往的宿舍管理流程依赖于人力,导致效率低下,难以有效满足学生对优质管理和服务环境的需求。因此,为适应当前的人力资源需求,正在持续研发新的管理系统。该系统旨在充分利用计算机技术,对宿舍的各类设施进行科学化管理,以更好地支持企业的运营决策。
系统的特点如下:
(1)提供新生信息录入、费用缴纳、以及每月公共设施和电费的管理。准确、及时的基础数据录入是确保后续工作流程顺利的关键。
(2)能够自动计算每月学生的水电费用收支。在费用未结清的情况下,系统将向学生发送警告并记录历史数据,以此节省大量人力,发挥计算机的效率优势。
(3)强调房间配置管理。允许用户查看房间配置,确认是否有空余床位,以实现资源的合理分配。
(4)提供数据检索与统计功能。系统基于基础信息,可进行具体运算,为企业提供相关分析和决策支持。
(5)确保安全性的功能设计。所有操作员需在系统中注册,并按权限进行操作。系统管理员仅能删除访问记录,添加新的操作权限。图4.1展示了该系统的功能组件结构。
图4.1系统功能模块
4.3 数据库设计
该管理系统涉及七张表:用户信息表(LoginIn)、学生基本信息表(Student)、学生住宿信息表(Student_base)、寝室信息表(Dorm)、员工信息表(Employee)、访客记录表(Visit)以及物品楼宇出入表(Goodsmove)。
(1)四张系统表可通过学生的唯一标识ID进行关联。在执行添加、修改、删除等操作时,需同步更新相关联的表。学生信息表与宿舍信息表共享一个区域,即宿舍编号(Dor_Id),此编号作为两表关联的键。
(2)员工表反映了工作人员对特定建筑的管理责任,因此,工作表内包含了一个相同的字段,用于标识所管理的楼房号。
表4-1 用户表(LoginIn)
字段名 |
描述 |
数据类型 |
数据长度 |
NULL |
Primarykey |
UserName |
用户名 |
char |
10 |
N |
Y |
UserId |
用户密码 |
char |
10 |
N |
Y |
UserPower |
用户权限 |
char |
20 |
N |
N |
表4-2 学生基本情况表(Student)
字段名 |
描述 |
数据类型 |
数据长度 |
NULL |
Primarykey |
|||
Stu_Key |
学号 char 20 N Y and F |
|||||||
Stu_Name |
姓名 char 10 Y N |
|||||||
Stu_Sex |
性别 char 10 Y N |
|||||||
Stu_Enr |
入学日期 datetime 10 Y N |
|||||||
Stu_Birth |
出生日期 datetime 10 Y N |
|||||||
Stu_College |
学院 char 10 Y N |
|||||||
Stu_Major |
专业 char 10 Y N |
|||||||
Stu_Polit |
政治面貌 char 10 Y N |
|||||||
Stu_Address |
家庭住址 |
char |
50 |
Y |
N |
|||
Stu_Tel |
联系方式 |
char |
10 |
Y |
N |
|||
Stu_Des |
备注 |
char |
50 |
Y |
N |
表4-3 学生住宿表(Student_base)
字段名 |
描述 |
数据类型 |
数据长度 |
NULL |
Primarykey |
Stu_Key |
学号 |
char |
20 |
N |
Y and F |
Stu_dor |
宿舍 |
char |
10 |
Y |
N |
表4-4 寝室表(Dorm)
字段名 |
描述 |
数据类型 |
数据长度 |
NULL |
Primarykey |
Dor_Id |
寝室号 |
char |
10 |
N |
Y |
Dor_Sex |
居住性别 |
char |
10 |
Y |
N |
Dor_Num |
应住人数 |
char |
10 |
Y |
N |
Dor_Fact |
实住人数 |
char |
10 |
Y |
N |
Dor_Price |
住宿费用 |
char |
10 |
Y |
N |
Dor_Tel |
电话 |
char |
10 |
Y |
N |
Dor_Des |
备注 |
char |
50 |
Y |
N |
表4-5 员工表(Employee)
字段名 |
描述 |
数据类型 |
数据长度 |
NULL |
Primarykey |
Emp_Id |
员工号 |
char |
20 |
N |
Y |
Emp_Name |
姓名 |
char |
10 |
Y |
N |
Emp_Age |
年龄 |
char |
10 |
Y |
N |
Emp_Sex |
性别 |
char |
10 |
Y |
N |
Hou_Id 学 |
楼房号 |
char |
10 |
N |
F |
Emp_Job |
职位 |
char |
10 |
Y |
N |
Emp_Add |
家庭住址 |
char |
50 |
Y |
N |
Emp_Tel |
联系方式 |
char |
10 |
Y |
N |
Emp_Des |
备注 |
char |
50 |
Y |
N |
表4-6 楼房表(House)
字段名 |
描述 |
数据类型 |
数据长度 |
NULL |
Primarykey |
Hou_Id |
楼房号 |
char |
10 |
N |
F |
Hou_Num |
房间数 |
char |
10 |
Y |
N |
Hou_Flr |
楼层数 |
char |
10 |
Y |
N |
Hou_Peo |
应住人数 |
char |
10 |
Y |
N |
表4-7 人员来访表(Visit)
字段名 |
描述 |
数据类型 |
数据长度 |
NULL |
Primarykey |
|
Vis_Name |
来访人姓名 |
char |
10 |
N |
N |
|
Vis_Host |
被访人姓名 |
char |
10 |
Y |
N |
|
Dor_Id |
寝室号 |
char |
10 |
N |
F |
|
Relation |
所属关系 |
char |
10 |
Y |
N |
|
Vis_Data |
来访日期 |
datetime |
10 |
Y |
N |
|
Vis_Time |
来访时间 |
datetime |
10 |
Y |
N |
|
Lea_Time |
离开时间 |
datetime |
10 |
Y |
N |
|
Vis_Watch |
值班人 |
char |
10 |
Y |
N |
|
Vis_Cred |
证件名称 |
char |
10 |
Y |
N |
|
Vis_Des |
备注 |
char |
50 |
Y |
N |
4.4 实体类设计
每个类在本系统的设计中都具有根本重要性,以确保系统功能的全面性和用户友好性。以下是这些核心类的详细描述:
(1)用户身份验证类LoginIn:
属性:包括用户名(username)、密码(password)以及用户角色(role,如学生、员工)
功能:执行登录验证(login)、密码修改(changePassword)以及角色切换(switchRole)。
(2)学生信息类Student:
属性:包含学号(studentId)、姓名(name)、性别(gender)、班级(class)和联系电话(phone)
功能:获取和设置个人详细信息,以及更新学生信息(updateInfo)
(3)学生住宿信息类Student_base:
属性:学生ID(studentId)、寝室号(dormId)、入住时间(checkInDate)和退房时间(checkOutDate)
功能:允许查询和修改住宿详情,以及查看住宿记录(viewStayRecord)
(4)寝室管理类Dorm:
属性:寝室号(dormId)、楼房ID(houseId)、寝室容量(capacity)以及当前入住人数(currentNumber)
功能:负责寝室资源的分配和调整,以及更新寝室信息(updateDormInfo)
(5)员工管理类Employee:
属性:员工ID(employeeId)、姓名(name)、职务(position)和联系电话(phone)
功能:管理学生住宿情况,处理寝室问题,以及更新员工信息(updateEmployeeInfo)
(6)楼房信息类House:
属性:楼房ID(houseId)、楼房名称(name)、楼层(floors)以及寝室数量(dorms)
功能:查看和管理楼房详细信息,以及将寝室分配至楼房(allocateDorm)
(7)访客管理类Visit:
属性:访问ID(visitId)、访客姓名(name)、访客关系(relation)、访问时间(visitTime)和访问寝室(dormId)
功能:记录和管理来访信息,处理访客申请的审批或拒绝(approveOrRejectVisit)
这些类通过其属性和方法相互关联,共同构建了学生宿舍管理系统的数据结构,为系统功能的实现奠定了基础。根据上述数据,该系统可划分为五个主要模块,如图4.2所示的系统功能模块结构。
5 系统实现及测试
5.1 系统实现
5.1.1 WEB层的实现
Web开发涵盖JSP、Servlet、JavaBeans以及EJB等技术。在Web层开发中,有两种常见的架构模式:Model1和Model2。在这两种模式中,应用程序的逻辑、处理和显示可以相互分离和交互,以应对Model1架构的不足。如图5.1所示,这层架构的详细结构清晰可见。
图5.1WEB层框架设计
(1)视图包包含的文件在不同的信息系统中存储,这些文件非Java文件性质,因此能够在J2EE平台上通过J2EE、XML及其他相关技术进行访问和获取。
(2)模型包涵盖了系统中运用的数据模型,它为系统的各项功能提供统一的接口,并且与显示层紧密结合,表明其被划分为Web层的一部分。
(3)控制器包处理了与业务包接口的交互,它接收并处理来自客户端的请求,执行授权的商业逻辑函数,而业务逻辑函数则负责执行相应的命令。
(4)在Struts框架的web层中,该框架定义了如何整合视图、模型、控制器和复合文件,以实现web级别的应用程序开发。
(5)视图文件被称为演示文稿层的文件,它们仍然负责将用户的输入传递给控制器。这通常包括JSP文件和HTML文档。为了减少页面间的耦合度并最大化页面复用,部分页面可能采用了动态模板设计,如主系统接口结构所示,如图5.2所示。
图5.2系统主界面结构
该模板包含四个组件:一是页眉区域,用于展示页面标题;二是左侧的树状菜单,可生成功能菜单的子类别,同时也可能展示其他页面的内容;三是右侧区域,主要用来展示页面的核心内容。
5.1.2 业务逻辑层的实现
业务逻辑层构成了核心应用程序,其主要职责是处理主要业务的外部逻辑,以提供适应网络需求的接口。此层通过封装业务规则,确保数据和相关对象的访问受到控制。业务逻辑层由会话Bean和实体Bean构成。
系统主要依靠一系列ActionForm bean来运作。这些bean充当媒介,用于在Web层组件和控制器组件之间传递以HTML格式组织的数据。通常,每个HTML表单对应一个ActionForm bean,其中每个HTML字段与ActionForm bean的属性一一对应。此外,ActionForm bean的Validate()方法用于验证用户输入数据的正确性和适宜性。在初始化过程中,ActionForm bean的属性获取和设置方法会被调用,随后Validate方法会检查请求参数的合法性和适当性,若发现错误,会以ActionErrors的形式将信息反馈回输入表单。此外,ActionForm bean还会作为参数参与Execute方法的执行过程。
5.1.3 数据持久层的实现
在本系统的实施中,已实现数据访问权限控制、资源管理和业务逻辑操作。为支持网络连接、计算机层面及数据接口,Java开发者利用JDBC API提供统一的软件接口与数据库交互,而J2EE应用则常采用不同的软件进行连接。此外,采用数据波段类型(如对象关系、数据文件等)以多种方式访问数据库。
数据访问对象(DAO)的目的是获取数据并将其存储在各种来源中,同时管理数据流的路径,确保数据访问的透明性。DAO模型在数据库中提供灵活性,允许创建DAO对象以访问数据源,而非具体设备。数据的访问方法包括:
(1) 业务对象:当客户端需要访问数据源时,它们可以通过业务对象实现,这些对象可能与Java Bean、Bean实体或其他类型的Java对象关联。
(2) 数据访问对象:主要目标是扩展对数据源的访问,以确保透明的访问层。
(3) 数据源:是能够连接到数据库、数据文件和服务的接口,用于与各种数据存储进行交互。
(4) 值对象:作为数据传输的载体,DAO与客户端之间以及目标价格对象之间传递信息的对象。
采用基础接口,Betterdao能够在不同的数据库中操作商业实体,并通过DAO为特定的公司创建定制接口。未来,随着新商业实体的增加,将会有新的DAO类和接口进行扩展。
以下是CenterDAO接口的代码示例:
CenterDAO (public connection list ());
Public booleaninsert (CenterDataAdptercenterdata);
Public booleandelete (CenterDataAdaptercenterdata);
Public booleanupdate (Connection conn); public booleancreate (Connection conn);
Public booleanfind (CenterDataAdptercenterdata);}
相应于学员资讯模组的 DAO类别的程式码是:公共类别巴jlDAO {
Private Connection con = null;
Public BajlDAO (Connect con) {the.con = con;
}
公共列表获取 BajlList {//阅读学生信息
}
公共 void插入 Bajl (BajlFormobjForm){//将学生信息插入
}
公共值 deleteBajl (字符串){//学生信息被移除
} }
其它的函数模块中各个 DAO的编码也是如此,这里就不多介绍了。
5.1.4 数据存储层的实现
该层面的存储主要采用多种结构化的关联数据库系统来实现。基于 MSSQL2000 的数据库架构能够充分应对整个项目的需求。此层次本质上涵盖了各个功能模块的具体设计领域。
5.2 软件测试
5.2.1 软件测试作用
在该管理体系中,软件测试占据着重要作用,其主要任务是确保系统符合用户的期望,提高软件质量,并降低运行阶段可能出现的故障风险。首先,执行了单元测试,以确保各个功能模块的独立运行正常,并保障数据的精确存储和处理。其次,通过综合测试,对各模块间的交互以及功能间的关联进行了深入分析。再者,从用户的角度全面评估了系统,包括人机界面的易用性、操作的便捷性等多个方面。此外,还进行了性能和安全性测试,以确认方案在高负载下仍能稳定运行,并且用户的信息安全得到充分保障。因此,软件测试对于维持系统的稳定性、可靠性和易用性,以及提升使用效率、减少维护成本具有不可忽视的重要性。
5.2.2 系统测试结果
(1)用户登录子系统
访客的登记手续需在学生管理部门办理。非正当事由,不许可进入。未注册的访客会被要求先在一套管理系统中登记,以便对他们的学习进度及住宿等相关信息进行有效管理。一旦注册完成,系统中将会有管理员负责必要的删除操作。使用者注册模块包含多个网页,但仅主要页面被实际实现。
在用户登录时,系统会自动识别用户身份。如图5.3所示,系统管理员与普通用户拥有不同的操作权限。
图5.3用户登录界面
在用户成功登录后,页面将展示用户可进行的各项操作,如图5.4所示。
图5.4功能控制界面
用户管理的展示如图5.5所示:
图5.5用户管理界面
学生宿舍管理子系统专注于为学生宿舍提供全面服务,其功能涵盖信息的添加、修改和删除,以及对各个宿舍居住学生情况的查询。
图5.6增加学生宿舍信息
图5.7 学生宿舍信息列表
基于已有的宿舍信息数据库,学生宿舍管理子系统主要致力于提供对宿舍信息的管理服务,这包括信息的增补、修改以及删除操作。这些操作的具体展示可参考图5.8、图5.9及图5.10。
图5.8 增加学生信息
图5.9 宿舍信息列表
图5.10 同一宿舍中的学生信息
该系统旨在对学校学生公寓进行管理,鉴于其涉及的敏感信息,首要任务是确保学生住宿体系的安全性。系统会在预设的主界面中运用全方位的安全措施,具体包括:
(1)系统资源保护:在用户进入寝室前,系统会检查网络访问权限,允许用户安全地访问主机、数据库和文件。
(2)服务器安全:服务器管理采用高级安全标准,通过访问控制列表确定用户对服务器信息系统的访问权限,防止匿名访问。
(3)数据库安全:通过权限控制和数据库加密,确保只有授权人员能访问学生公寓信息数据库,同时防止数据泄露。
(4)文件安全:记录在数据库中的信息受到政府监管,仅限授权用户查阅。数字签名验证发送者身份,确保电子邮件的完整性和安全性。
(5)操作访问控制:采用统一用户界面,通过用户标识判断访问权限,确保服务的共享资源仅对授权用户可见。
(6)网络安全:实施学生宿舍管理系统,记录并严密监控所有关键数据的活动,包括网站和服务器访问、浏览行为和错误地址。系统具备检测潜在威胁并恢复受损数据的能力。
通过上述措施,本系统旨在创建一个安全、受控的环境,以保障学生公寓管理的顺利进行。
6 结论
本研究项目详细阐述宿舍信息管理系统的主体功能和架构,主要关注系统数据生成技术、数据库结构的深入剖析以及系统分析策略。这些技术旨在确保系统需求的满足并提升系统性能的优化。
另一方面,该系统通过计算机化的管理方式,显著降低了学生宿舍的管理工作量。其简易的操作界面和健全的数据库设计,使信息管理系统能有效地应用于大规模现代学生管理中,对管理者提供强大的支持。
此外,系统赋予管理员权限进行控制。管理员可根据学生和教员的数量、宿舍编号等条件,获取相关学生的信息,如房间配置、人员变动、资金状况等。同时,学生也有权在毕业、退学等情况下删除自身的住宿记录。他们还能记录额外信息,追踪非宿舍的住宿登记,并查询相关的登记记录。
[1] 学生宿舍管理系统的设计与实现[J]. 周伟. 科技视界. 2022(25)
[2] 基于B/S的核酸检测信息管理系统设计[J]. 路升辉,刘越,周紫钰,王佳伟,常佳宁,李阳齐. 网络安全技术与应 用. 2023(01)
[3] Smit, Z. et al. "Design and Implementation of Web Application Based on MVC Laravel Architecture." European Journal of Electrical Engineering and Computer Science (2022).
[4] Jones, Y.. "Design and Implementation of Network Structure Visualization System Based on B/S Architecture." Proceedings of the 10th International Conference on Communications and Broadband Networking (2022).
[5] Brown,M. "Design and Implementation of a SSH Proxy System Based on B/S Architecture." Journal of Physics:Conference Series (2023).
[6] Green, Y, et al. "Research and Developing of Evaluation Information System Using B/S Structure and SQL Server Technology." Journal of Physics:Conference Series (2023).
[7] White, L., and Mohammad Shabaz. "Design and research of computer network micro-course management system based on JSP technology." International Journal of System Assurance Engineering and Management (2023).
[8] 基于Struts的学生宿舍管理系统设计与实现[J]. 刘张强,鲍正德,李晨曦. 信息与电脑. 2023(22).
[9] Struts框架在学生宿舍管理系统中的应用研究[J]. 赵云. 信息与电脑(理论版). 2022(11).
[10] 基于Struts2的学生宿舍管理系统的设计与实现[J]. 俞靓亮. 中国教育信息化. 2023(21)
[11] 基于B/S架构的学生宿舍管理系统数据库设计与实践[J]. 黄敏. 电脑知识与技术. 2022(35)
[12] 吴丹林,李梦雅.B/S模式宿舍管理系统设计与实现[J].电脑编程技巧与维护,2021,427(01):98-99+105.
[13] 学生宿舍管理系统的设计与实现[J]. 孙妃,李可心,刘楠,王晓兰,孔荣荣,王慧. 江苏科技信息. 2021(29)
[14] 基于PHP+MySql的宿舍管理系统[J]. 蔡俊铠,廖晓芳,朱俊宇,方栋豪. 电脑知识与技术. 2022(36).
[15] 基于Web的高职院校学生宿舍管理系统的设计与实现[J]. 王慧敏. 内蒙古科技与经济. 2022(17).
[16] 基于C#的学生会工作管理系统的设计与实现[J]. 李紫玥. 现代商贸工业. 2022(21)
[17] 高校公寓管理系统的设计与开发[J]. 史英杰,刘朋,杨巍. 无线互联科技. 2023(20)
致谢
十分感恩,我的论文能够顺利完成。第一个要感谢我的导师给予我的细心修改与耐心指导。导师像一盏明灯为我照亮前行的道路,帮助我克服一个又一个的困难。
感谢给以我帮助的朋友们,感谢他们陪我一起哭一起笑,与我一同成长。
感谢我的父母还有亲友做我的强大的后盾对我的支持与帮助,让我在学习生活中不再迷茫、彷徨。
最后感谢学院,为我提供了一个成长的平台,让作为学生的我能够向着目标与梦想继续前进!
毕业论文诚信承诺书
为确保毕业论文写作质量,达到按期圆满毕业的目标。本人郑重承诺:
1、我向学院呈交的论文,是我在指导教师指导下,严格按照学校有关规定独立完成的,不存在由他人代写的情形。
2、本人在毕业论文中引用他人的观点和参考资料均加以注释和说明。
3、本人承诺在写作过程中没有抄袭他人研究成果和伪造相关数据等行为。
4、在毕业论文中对侵犯任何方面知识产权的行为,由本人承担相应的法律责任。
承诺人:
日期:2024.7.2