大学宿舍管理系统Word格式.docx
《大学宿舍管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《大学宿舍管理系统Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
在一些发达国家类似的宿舍管理系统已经应用于后勤管理,而且已经相当普及[11]。
近几年,管理信息系统发展较快,特别是微型计算机的出现和普及为信息处理提了物美价廉的手段,对于推动我国管理信息处理的现代化起了重要的作用。
然而在我们国家基本上还是停留在帐本化管理,尽管已经出现了一些不错的产品,但后勤人员在使用电脑情况不佳,因此在制作出好产品的同时,我们国家也要注重人才素质的培养同样不容忽视[12]。
1.4本课题的研究方法及设计思路
本系统使用java语言编写,使用MyEclipse作为开发环境[13]。
利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate[14]。
数据库连接对动态网站来说是最为重要的部分,也是该软件设计的难点。
了使程序在具有安全性、完整性、健壮性的同时,可以方便地移植,采用Hibernate连接数据库更合适一些。
使开发人员可以用纯Java语言编写完整的数据库应用程序[15]。
本课题研究的是基于J2EE的web版大学宿舍管理系统,在设计过程中,拟采用MVC模式下的Struts2框架进行功能实现。
持久层选用Hibernate将实体Bean映射至数据库表。
在表示层中以Web页面作为主要客户端。
由于框架本身的优势,使得该系统易于维护,可扩展性强。
容器采用ApacheTomcat,解决了线程问题,使得可以在同一时间容纳多个用户[16]。
web层主要是作为用户访问系统的界面,提供Web网页服务器,同时与后台服务器连接,将客户端的请求信息传递到业务层,同时将后台反馈的信息传送到客户端[6]。
视图部分采用JSP,控制器部分交由Struts的action直接和实体bean交互以操作数据库。
后台数据库采用的Oracle,它功能比较强大,除了可以处理包含在各种平台上运行的数据库管理系统内核之外,还包括了数据复制、数据库系统管理、Internet网关支持、在线分析处理、多媒体支持和各种并行处理能力。
该系统的设计与实现应为学校管理部门提供一个全新的工作环境,为促进学校教育教学管理的科学化、规范化、信息化提供了有力的支持,提升了学校教学管理信息化的水平,从而使该系统成为学校日常管理工作中离不开的关键应用,所以应该为日后软件的维护提供良好和完备的接口[17]。
2可行性分析
2.1经济可行性
软件的经济可行性是指投入该软件使用后,软件所能带来的经济收益与开发设计所需要的投资比率,是否能够减少较之以往的费用,同时还要看此软件能否可以给用户带来好的的经济效益,我们开发的大学生宿舍管理系统不仅可以使管理人员提高工作效率,节省工作时间,方便操作与管理,更多的节省人力资源所带来的不必要的费用。
本系统的开发在经济上是完全可行的。
开发此软件不需要大量经费,而且是个人独立设计,可以节省许多费用,只需要一台电脑即可,不需要太多的花费。
2.2技术可行性
该系统的开发选取的开发工具:
Java作为编程语言
1.MyEclipse10.0.作为开发环境:
Myeclipse企业级工作平台是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能。
2.Oracle10g作为数据库开发工具:
Oracle10g数据库关键目标降低管理开销,提高性能。
Oracle10g的增强有对高可用性的增强、新的Flashback能力、支持回滚更新操作;
对安全性的增强,便于管理大量的用户;
BI方面的增强,包括改进的SQL能力、分析功能、OLAP、数据挖掘的能力等;
对非关系型数据存储的能力得到了改进;
3.ApacheTomcat6.0作为服务器开发工具:
Apache是普通服务器,本身只支持普通网页。
Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能。
由于Tomca本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。
ApacheTomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
4.MicrosoftOfficeVisio2007作为数据流程图和业务流程图绘制工具:
MicrosoftOfficeVisio便于IT和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。
使用具有专业外观的MicrosoftOfficeVisio图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。
大多数图形软件程序依赖于艺术技能。
在使用Visio时,以可视方式传递重要信息就像打开模板、将形状拖放到绘图中以及对即将完成的工作应用主题一样轻松。
5.MicrosoftWord2003作为文档编写:
是一种处理程序,可使文档的创建、共享和阅读变得更加容易。
改进后的审阅和标记功能为您提供多种跟踪更改和管理批注的方式。
Word2003还支持“可扩展标记语言”(XML)文件格式,并可作为功能完善的XML编辑器。
另外,您可以保存和打开XML文件以集成单位内的关键商业数据。
根据该系统的基本要求衡量所需的技术是否具备,可从硬软件的性能要求、环境条件、操作人员软件应用水平等方面去考虑和分析。
考虑到系统实施的可行性以及复杂性,在开发环境方面选择了如今较流行的MyEclipse工具来进行开发管理平台的设计,使用Oracle10g作为数据库来存储数据。
在硬件方面,由于用的是笔记本电脑,硬件的配置越高,系统的开发与运行流畅。
而且根据了解,如今的家用或商用电脑硬件的整体配置水平普遍比较高,所以系统在硬件方面是可行的。
在软件方面,由于MyEclipse和Oracle10g是两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,并且在校期间都应用过,因此软件方面是可行的。
2.3运行可行性
大学生宿舍管理系统操作简单易行,所以使用前的培训也比较容易,只需要简单的一些电脑操作技术即可,而且运行环境简单,界面设计简洁易懂,经过以上分析,运行方面是可行的。
3总体设计
3.1系统需求分析
3.1.1数据需求:
此系统主要完成学生入住登记及入住后的管理,因此,需要的数据信息包括:
系统管理员,楼宇管理员信息包括用户名、密码、电话等信息。
学生信息包括学生基本个人信息,住房信息,迁入迁出信息;
房屋信息包括价格和标准配置,水电费的设置和收缴情况等;
维修信息包含维修者和损坏者及赔偿等信息;
访问者信息,包括访问者身份及进入和离开登记等。
3.1.2功能需求:
功能需求分析的任务是弄清用户对目标系统数据处理功能所提出的需求。
本系统的功能需求有:
(1)允许管理员通过指定帐号和密码可以进入系统;
(2)管理员可以随时录入某个学生或房间的住宿情况;
(3)管理员可以随时查询某个学生或房间的住宿情况;
(4)管理员可以查询某个宿舍的水电费情况;
(5)管理员还可以录入每个学生的出入情况;
(6)学生可以通过姓名和学号进入系统;
(7)学生可以报修物品,查询水电费,发布留言。
3.2系统概要设计
3.2.1功能模块设计:
该系统总体分为三个大模块,即系统管理员模块,楼宇管理员和学生模块,系统赋予各模块的功能是有区别的。
除此之外,还有登录模块。
各模块的功能如下所述:
登录模块:
可以判断账号的合法性和角色,根据不同的角色跳转相应的页面。
系统管理员模块:
(1)楼宇管理员管理:
该模块主要功能是添加新的楼宇管路员,对楼宇管理员的姓名、电话等信息的修改、删除,查询;
(2)学生管理:
该模块主要是查询学生的入住信息的添加,更新等。
(3)宿舍管理:
该模块主要是查询并且显示宿舍的大小,宿舍号,位置等;
(4)楼宇管理:
该模块主要是添加楼宇,修改楼宇相关信息;
(5)修改密码:
该模块主要是修改登录人员的密码修改;
(6)退出系统:
该模块是退出系统。
楼宇管理员模块:
(1)本月水费统计:
该模块主要是显示各个宿舍的当月用水情况以及是否交费;
(2)本月电费统计:
该模块主要是显示各个宿舍的当月用电情况以及是否交费;
(3)学生入住登记:
该模块主要是登记学生入住;
(4)学生迁出登记:
该模块主要是登记学生的迁出;
(5)报修统计:
该模块主要是查看各个宿舍的设施需要维修情况;
(6)迁出记录:
该模块主要是查看学生的迁出名单;
(7)学生留言:
该模块主要是查看学生的留言建议;
(8)公告管理:
该模块主要是发布公告提示学生;
(9)修改密码:
该模块主要是修改登录密码;
(10)退出系统:
该模块主要是退出当前系统。
学生模块:
(1)本月水费查询:
该模块主要是查询该生宿舍的水费;
(2)本月电费查询:
该模块主要是查询该生宿舍的电费;
(3)在此留言:
该模块主要是给楼宇管理员留言;
(4)维修申请:
该模块主要是维修申请通知管理员维修;
(5)公告查询:
该模块主要是查看管理员的公告
(6)修改密码:
该模块主要是修改密码;
(7)退出系统:
3.3功能模块图
图3-1系统功能模块图
图3-2学生功能模块图
3.4系统分层设计
该系统采用MVC分层结构设计。
主要包括视图层、控制层、模型层。
系统中设计用到的包有bean包、action包和dao包。
action包:
主要是放置Struts2的Actionjava类,用来控制流程跳转、操纵model层、从model里面取数据呈现给表示层。
dao包:
主要放置负责与数据库打交道的java类,所有类皆继承自一个HirbernateDao。
该层封装了数据的增、删、改、查操作。
bean包:
主要是放置实体beanjava类,用来表示实体,并且映射至数据库对应的表,负责向view层提供数据。
4详细设计
4.1数据库
4.1.1数据库设计
一个好的软件,数据库设计的好坏决定了软件的开发维护、运行以及维护的容易程度。
如果把企业的数据比作高楼大厦的砖瓦,那么数据库的设计就相当于打地基一样重要。
整个软件系统的操作实际上就是对数据的操作,所以,数据库的设计直接决定这个系统的好坏。
4.1.2数据字典
本系统一共使用12张表,其中涉及到学生的有:
学生表(student)、楼宇信息表(building)、宿舍表(dormitory)、迁出表(out1)、入住表(log)、水费表(waterfee)、电费表(electricfee)、留言信息表(message)、维修表(repair)、公告表(notice)。
各表的表结构如下所示:
楼宇信息表用于记录楼宇的基本信息。
如表4-1所示。
序号
字段名
字段说明
字段类型
字段长度
1
Building_ID
编号
number
4
2
Building_Name
楼宇名称
varchar2
50
3
Building_Introduction
楼宇说明
200
表4-1 楼宇信息表
学生表用于记录学生的基本信息,如表4-2所示。
序号
Student_ID
Student_DomitoryID
宿舍编号
Student_Username
学生用户名
20
Student_Password
学生密码
5
Student_Name
姓名
6
Student_Sex
性别
10
7
Student_Class
班级
8
Student_State
状态
表4-2 学生表
宿舍表用于记录宿舍的基本信息,如表4-3所示。
Domitory_ID
Domitory_BuildingID
楼宇编号
Domitory_Name
宿舍名
Domitory_Type
宿舍类型
Domitory_Number
宿舍人数
Domitory_Tel
联系方式
表4-3 宿舍表
迁出表用于记录学生迁出的信息,如表4-4所示。
Out_ID
Out_StudentID
学生编号
Out_Date
迁出日期
Out_Remark
迁出说明
表4-4 迁出表
入住表用于记录学生迁出的信息,如表4-5所示。
Log_ID
Log_StudentID
Log_TeacherID
楼宇管理员编号
Log_Date
入住日期
Log_Remark
入住说明
表4-5 入住表
水费表用于记录相关水费信息,如表4-6所示。
Waterfee_ID
Waterfee_Domitory_Name
Waterfee_Degree
吨数
Waterfee_Start
上月读表数
Waterfee_End
本月读表数
Waterfee_Money
金额
Waterfee_Whether
是否已交费
表4-6 水费表
留言信息表用于记录留言的相关信息,如表4-7所示。
Message_ID
Message_Domitory_Name
Message_Theme
留言主题
Message_Content
留言内容
Message_Student_Name
学生姓名
表4-7 留言信息表
维修表用于记录维修的相关信息,如表4-8所示。
Repair_ID
Repair_Domitory_Name
Repair_Content
维修内容
Repair_Date
提交日期
表4-8 维修表
公告表用于记录管理员发布公告的相关信息,如表4-9所示。
Notice_ID
Notice_Theme
公告主题
Notice_Content
公告内容
Notice_Date
发布日期
Teacher_Name
楼宇管理员姓名
表4-9 公告表
4.1.3E-R图
图4-1E-R图
4.2EJB层的设计
4.2.1实体Bean的设计
实体Bean是根据数据库之中的表来建立的其中的相关属性/成员变量对应数据库表中的各种字段。
以本工程的一个实体为例,各种操作需要调用到Student实体Bean,Student实体Bean的代码如下:
packagecom.briup.sushe.bean;
publicclassStudentBean
{
privateintStudent_ID;
privateintStudent_DomitoryID;
privateStringStudent_Username;
privateStringStudent_Password;
privateStringStudent_Name;
privateStringStudent_Sex;
privateStringStudent_Class;
privateStringStudent_State;
publicintgetStudent_ID(){
returnStudent_ID;
}
publicvoidsetStudent_ID(intstudentID){
Student_ID=studentID;
publicintgetStudent_DomitoryID(){
returnStudent_DomitoryID;
publicvoidsetStudent_DomitoryID(intstudentDomitoryID){
Student_DomitoryID=studentDomitoryID;
publicStringgetStudent_Username(){
returnStudent_Username;
publicvoidsetStudent_Username(StringstudentUsername){
Student_Username=studentUsername;
publicStringgetStudent_Password(){
returnStudent_Password;
publicvoidsetStudent_Password(StringstudentPassword){
Student_Password=studentPassword;
publicStringgetStudent_Name(){
returnStudent_Name;
publicvoidsetStudent_Name(StringstudentName){
Student_Name=studentName;
publicStringgetStudent_Sex(){
returnStudent_Sex;
publicvoidsetStudent_Sex(StringstudentSex){
Student_Sex=studentSex;
publicStringgetStudent_Clas