学生宿舍管理系统 1、项目来源及背景
学生宿舍管理系统,不但能够帮助宿管人员解决繁重的宿舍管理事物,提高工作效率,还便于学校对学生进行管理,能够直接对学生生活中的优秀以及不良习惯进行表扬或者批评。此学生宿舍管理系统不但操作简单,而且信息不容易丢失。由此可见,为了更加科学有效的管理宿舍,为学生提供方便快捷的服务,设计一套信息管理系统迫在眉睫。
2、系统需求分析 1、系统需要操作方便,方便管理员对整个系统的管理。 2、系统需要提供综合查询系统,方便信息的查询。 3、系统需要良好的扩展性,方便功能扩展和性能扩展。 4、系统需要较好的安全性和灾难回复机制。 5、系统需要提供足够的生活微服务 2.1 需求描述 1、宿舍管理模块:该模块可以根据学院对宿舍进行查看,也可根据楼层对其进行查看。按学院查看时,能够对相关的学生进行编辑,以学生的各项信息为主,其中包括学号、性别、民族、籍贯等方面。按楼层查看时,可以根据床位、房间等条件对各楼层方面的情况进行统计。在日常调换宿舍环节,能够对处于各状态下的业务进行审批。在该模块内,能够对寒暑假留宿情况进行展示,包括了留宿的日期范围、留宿所处的状态以及申请的截止时间,辅导员和宿管员能对其内容进行相应的处理。 2、宿舍考评模块:该模块能够对抽查的项目进行编辑,主要包括了抽查的日期范围、标题等,抽查性质和范围等在规定范围内选择。在查宿舍的过程中,能够以学院为基础,对月评分进行处理,详细内容根据宿舍等条件进行查询,结果中包括了楼栋、所属学院、寝室考核、违章数等方面。在进行考核方面的统计过程中,以学期为条件,相关的结果可以寝室和检查次数为标准进行展示。 3、登记管理模块:该模块能够进行访客登记处理,在该过程中,以受访信息为核心,指定访问的楼栋、宿舍等内容,选择相关的学生。在登记完毕后,能够通过时间范围等条件对访客登记的信息进行查看,指定数据还可导出,辅导员能够根据访客登记的情况进行统计。统计访客登记的条件包括了姓名、学号等,统计的结果包括了被访人信息、宿舍号、状态等方面。辅导员还可以对学生的晚归情况进行查看。查看过程中,首先对相关的院系进行指定,在此基础上对查询的时间范围进行设定,同时还可以对学号、姓名等进行规定,系统将根据条件对结果内容进行查看,包括了晚出的时间、学生、宿舍号等,同时给出了人员的联系方式。 学生姓名,学号,宿舍号,院系,联系方式,晚归的时间 2.2 系统用况图 在对系统的功能需求进行总结后,得到了如下所示的用例图:
图1系统用例图 2.3 系统概念模型
对系统功能进行设计,分别得出系统用户信息和交易信息的DAO类图,以及用户业务层和交易业务层类图。分别如图3、图4所示。
图3 用户信息和交易信息的DAO类图
图4 用户业务层和交易业务层类图 3、系统总体设计 3.1 系统总体功能结构
对本宿管系统的各个功能模块进行设计就是为了将一个系统的整体科学分为若干的小部分,每个部分都有各自的功能,各部分组合在一起就能实现我们所需要的各种功能,分块设计还便于我们系统的研发。本章就对各个部分的功能设计进行介绍。
3、数据描述 3.1 数据库表间关系 这一小节的主要任务是将现实生活中的一些数据的概念模型转换或设计成数据库中的某种逻辑模式。除此之外,还需要为对应的数据库通过E-R图来进行对应的逻辑展示同时设计也必须符合范式要求。“逻辑数据库”的出现就是由此而来。系统E-R图如下:
图4-1 系统E-R图
数据库中主要的表如下: 1.宿舍信息表dorms 表dorms用来保存所有用户的信息包括宿舍号、楼栋、楼层、床位号。表结构如下: 表4-1 用户信息表 字段名 数据类型 长度 允许为空 备注 dorm VARCHAR2 255 是 宿舍号 buildings VARCHAR2 255 是 楼栋 floor VARCHAR2 255 是 楼层 room VARCHAR2 255 是 床位号
2.电表electricity 表electricity用来保存学生电费信息,方便学生查看是否欠费。表结构如下: 表4-2 班级表 字段名 数据类型 长度 允许为空 备注 dorm VARCHAR2 255 是 房号
Pre_electricity VARCHAR2 255 是 上月读表数
Cur_electricity VARCHAR2 255 是 本月读表数
Elec_amount VARCHAR2 255 是 本月用电量
excess VARCHAR2 255 是 本月用电超量
Ele_money VARCHAR2 255 是 金额
3.晚归表late 表late用来保存晚归信息,包括姓名,学号,宿舍号,院系,联系方式,晚归时间。表结构如下: 表4-3 课程表 字段名 数据类型 长度 允许为空 备注 Name VARCHAR2 255 是 姓名
id VARCHAR2 255 是 学号
dorm VARCHAR2 255 是 宿舍号
faculty VARCHAR2 255 是 学院
Late_tel VARCHAR2 255 是 电话
Late_time VARCHAR2 255 是 晚归时间
4.宿舍评比表rating 表rating用来存放学生宿舍评比信息,包括宿舍号,楼栋,所属学院,宿舍考核,违章数(次),检查次数,抽查时间,抽查标题,月评分。表结构如下: 表4-4 课程表 字段名 数据类型 长度 允许为空 备注 dorm VARCHAR2 255 是 宿舍号
buildings VARCHAR2 255 是 楼栋
faculty VARCHAR2 255 是 所属学院
examine VARCHAR2 255 是 宿舍考核
violations_number VARCHAR2 255 是 违章数(次)
check_times VARCHAR2 255 是 检查次数
check_date VARCHAR2 255 是 抽查时间
item VARCHAR2 255 是 抽查标题
month_times VARCHAR2 255 是 月评分
5.保修表repair 表repair用来存放学生保修信息和维修员维修状态,包括宿舍号,报修人姓名,物品名称,保修原因,报修人电话号,申请时间,维修时间,维修姓名,维修电话,维修状态。表结构如下: 表4-5 用户角色表 字段名 数据类型 长度 允许为空 备注 name_stu VARCHAR2 255 是 报修人姓名
dorm VARCHAR2 255 是 宿舍号
goods VARCHAR2 255 是 报修物品
reason VARCHAR2 255 是 报修原因
tel_stu VARCHAR2 255 是 报修人电话
sq_time VARCHAR2 255 是 申请时间
name_man VARCHAR2 255 是 维修人姓名
tel_man VARCHAR2 255 是 维修人电话
wx_time VARCHAR2 255 是 维修时间
state VARCHAR2 255 是 维修状态
6.留校表stay 表stay用来存放留校信息,包括学院,班级,学号,姓名,留宿的日期范围,性别,学生手机号,留校原因,辅导员姓名,辅导员电话,留宿状态,申请状态。表结构如下: 表4-6 教师课程表 字段名 数据类型 长度 允许为空 备注 faculty VARCHAR2 15 是 学院
class1 VARCHAR2 15 是 班级
id VARCHAR2 15 是 学号
name
VARCHAR2 是 姓名
date_range VARCHAR2 是 留宿的日期范围
sex VARCHAR2 是 性别
stu_tel VARCHAR2 是 学生手机号
stay_reason VARCHAR2 是 留校原因
admin_name VARCHAR2 是 辅导员姓名 admin_tel VARCHAR2 是 辅导员电话 stay_status VARCHAR2 是 留宿状态
apply_status VARCHAR2 是 申请状态
7.学生表students 表students用来存放学生信息,包括 姓名,学号 ,性别,民族 ,籍贯 ,班级,宿舍号,联系电话 ,学院 ,床位 表结构如下: 表4-7请假和审批表 字段名 数据类型 长度 允许为空 备注 name VARCHAR2 255 是 姓名
id VARCHAR2 255 是 学号
sex VARCHAR2 255 是 性别
nation NUMBER 255 是 民族
place NUMBER 255 是 籍贯
bj VARCHAR2 255 是 班级
dorm VARCHAR2 255 是 宿舍号
tel VARCHAR2 255 是 联系电话
faculty VARCHAR2 255 是 学院
bed VARCHAR2 255 是 床位
8.用户表users 表users用于保存用户信息,包括用户姓名,密码,角色。表结构如下: 表4-8 学生考勤表 字段名 数据类型 长度 允许为空 备注 name VARCHAR2 255 是 用户姓名 password VARCHAR2 255 是 用户密码 identify VARCHAR2 255 是 用户角色
9.访客表visitor用于保存用户信息,包括访问的宿舍号,访客姓名,与受访者关系,访客电话号码,受访者学号,受访者姓名,访问时间,受访者状态。表结构如下: 表4-8 学生考勤表 字段名 数据类型 长度 允许为空 备注 dorm VARCHAR2 255 是 访问的宿舍号
visitor_name VARCHAR2 255 是 访客姓名
relation VARCHAR2 255 是 与受访者关系
visitor_tel VARCHAR2 255 是 访客电话号码
student_id VARCHAR2 255 是 受访者学号
student_name VARCHAR2 255 是 受访者姓名
access_time VARCHAR2 255 是 访问时间
student_state VARCHAR2 255 是 受访者状态
10.水表water用于保存用户信息,包括房号,上月读表数,本月读表数,本月用水量,本月用水超量,金额。表结构如下: 表4-8 水表 字段名 数据类型 长度 允许为空 备注 dorm VARCHAR2 255 是 房号
pre_water VARCHAR2 255 是 上月读表数
cur_water VARCHAR2 255 是 本月读表数
cur_amount VARCHAR2 255 是 本月用水量
exceed VARCHAR2 255 是 本月用水超量
money VARCHAR2 255 是 金额
系统的流程图如下:
图3-1 系统流程
4、系统详细设计 4.1 系统数据设计 本宿管系统的各个实体的联系如下:在我校有多栋宿舍楼,而不同的宿舍楼有不同的编号,而每个宿舍楼都有着许多的寝室,每个寝室都有各自的编号,每个寝室的入住人员都不同,寝室里有许多基本的公共物品,本系统的管理员可能有一个或者多个,而每个管理员都有相对的用户角色,每个人也都可以管理大量的基本用户,管理员可以对各个宿舍的信息进行编辑和管理,也可以在必要时发布一些信息 。以下为系统的E-R图
E-R图
4.2 目录和包结构设计 系统的分层设计及实现可使系统达到“分散关注、松散耦合、逻辑复用、标准定义”的目的。因此,银行账户管理系统采用四层结构进行分层,其各层组成如下所示: 1、视图层 视图层由JSP页面组成,其中主界面为trade.jsp,通过框架引入top.jsp(置 顶)、left.jsp(下左)和main.jsp(下右),结构图6:
图6 2、控制层 控制层由Action类、Action的验证类(通过Action链传值给Action)和一个拦截器类(控制登录后才可访问其他内容)共三部分构成,结构如下图:
图7 3、业务层 业务层由用户访问(UserFacede接口及实现类UserFacadeImpl)和交易(TradeFacade接口及实现类TradeFacadeImpl)两部分组成构成,结构如下图:
图8 4、持久层 持久层由持久化类和DAO类(包括接口)两部分组成构成,结构如下图:
图9 4.3 系统流程设计 以登录功能为例,文字描述、组件图描述
5、系统实现预览 下图为本宿管系统的登陆界面图。
图4.3 登录界面图
用户登陆成功后就可以访问该宿管系统。在本宿管系统内,左侧为系统各个模块的导航栏,点击即可进入相应的模块,与此同时,登陆者的身份不同,所拥有的权限也有所不同。进入后主界面如下。
图4.4 宿管模块图 4.3.2 住宿登记模块的实现 本模块主要是为了方便宿管人员记录和查询学生信息。当宿管人员需要增加学生信息时,点击添加按钮就可以按照步骤填写学生信息,点击完成即可完成添加。如果需要修改信息则点击修改并按步骤操作即可,删除亦是同理。当有学生晚归时,可以在旁边添加公示晚归学生情况。
部分功能实现如下所示。
图4.6 住宿登记模块图 4.3.3 水电管理模块的实现 在我校,每个月都会有专门的人员到寝室抄水表,然后将数据统计给宿管人员,再由宿管人员查看是否有宿舍超过了每月的用水标准,超过的寝室就按照水费标准计算出其应缴纳的水费,并将所有需缴纳费用的寝室统计到一张表内,然后发布到该模块内,学会们就可以根据自身情况确定是否需要缴纳费用,需要缴纳的就可在本界面缴纳费用。电费的相关事宜也是相似的步骤。 4.3.4 报修管理模块的实现 在该模块内,学生们需要将自己寝室的损坏物件信息填写清楚并提交,而宿管人员在看到申请后需要提醒相关的维修人员到寝室去进行物品的维修工作,在完成维修后,维修人员可以在该模块内进行申请的完成。效果见图4.8。
图4.8 报修模块图