宿舍信息管理系统.docx
《宿舍信息管理系统.docx》由会员分享,可在线阅读,更多相关《宿舍信息管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
宿舍信息管理系统
宿舍信息管理系统
《数据库系统原理》课程设计报告
题目:
宿舍信息管理系统
专业班级:
2016级软件工程
(2)班
指导教师:
王晓妍
学生姓名一:
赵欣睿
完成任务:
需求分析(页码起止:
3—8)
学生姓名二:
陈思慧
完成任务:
数据实施(页码起止:
19—23)
学生姓名三:
刘伟
完成任务:
概念设计(页码起止:
11—14)
学生姓名四:
崔子涵
完成任务:
逻辑设计(页码起止:
15—17)
数据库的建立需要MYSQL来实现,本系统实现使用的是MYSQL5.5,它适用于MYSQL5.5及以上版本。
2需求分析
2.1系统功能基本的要求
宿舍管理的主要工作是学校宿舍基本信息的录入:
为学生分、退宿舍和缴费;宿舍卫生检查;水电费的收取;宿舍、学生的查询以及对来访人员的登记。
宿舍分配的过程是:
新生入学之前,每个园区将接到安排在本园区住宿的同学名单,并根据学生基本信息按约定的分配原则给每个学生初定宿舍床位。
一般的分配原则是:
同一学院的学生应该分配在同一幢楼,同一班级的学生应该分配在房号连续的寝室。
当学生报到后,宿舍管理员根据住宿分配情况开出需支付的住宿费清单,学生到财务处缴费后方可入住。
宿舍分配结束后,宿舍管理员对学生住房情况、房产信息进行维护、查询、管理、统计。
2.2企业对系统实现的要求
系统要处理的对象包括用户系统登录信息、入住学生基本信息、宿舍基本信息、宿舍卫生检查信息、宿舍水电缴费信息、宿舍公物报修信息、来访登记信息等八个方面,各个对象包括信息如下所示(详细的数据见于数据字典):
1.用户系统登录信息:
包括添加用户,修改密码,退出系统等方面,这样
2.可以方便管理者对宿舍楼的管理,提高查询效率;
3.学生基本信息:
包括学号、学生姓名、学生性别、学生所学专业、宿舍号、入住时间等方面的信息,可以方便学生信息的查询和更新;
4.宿舍基本信息:
宿舍基本信息包括宿舍号、宿舍电话、住宿费、宿舍财产;
5.宿舍卫生检查信息:
包括宿舍号、检查情况、检查日期;
6.宿舍水电缴费信息:
包括宿舍号、缴费人、缴费量、缴费日期等四方面的信息;
7.宿舍公物报修信息:
报修信息包括宿舍号、报修人、保修日期、修理日期、报修情况等信息,具体的数据项见数据字典;
8.来访登记信息:
包括宿舍号、来访人、被访人、来访时间、离开时间、备注等信息。
2.2.1.信息要求:
信息的录入是通过系统录入学生的情况,保证了学生住宿情况的完整性,查询则是可以对有所或者个别要了解学生的情况进行分类查询,系统的查询可以一步到位,并且模糊查询减小了在不知道学生具体情况下查询的难度。
2.2.2.处理要求:
当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。
比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等。
当宿舍楼的电话号码发生变更时,宿舍楼管理员能根据有关证明做出修改。
当快件到达本宿舍楼时,宿舍楼管理员应依据到达快件的相关信息在快件信息中插入一条记录,当同学们接收快件后,管理员应登记快件的接收时间,表明该信件已成功到达收信人的手中。
2.2.3.安全性与完整性要求:
1.安全性要求
(1).系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
(2).系统实现:
数据备份、数据恢复,以防止重大失误、或是系统故障引起的损失;
2.完整性要求
(1).各种信息记录的完整性,信息记录内容不能为空;
(2).各种数据间相互的联系的正确性;
(3).相同的数据在不同记录中的一致性。
2.3系统功能的设计
通过对用户需求和系统设计思想的分析,可以得出该宿舍管理信息系统大致可以分为几大模块:
宿舍基本信息模块、学生入住模块、卫生检查模块、水电收费模块、宿舍报表维修模块、外来人员登记模块
系统业务流程图:
图2.3-1系统业务流程图
系统功能模块图:
图2.3-2系统总功能模块图
主要模块的功能:
1.宿舍基本信息模块:
添加、修改、查询和删除宿舍基本信息,如宿舍房号,财产,床位等。
2.学生入住模块:
添加、修改、查询和删除学生入住、退宿信息,包括学生一些基本信息、缴费等。
3.卫生检查模块:
对宿舍卫生检查、评比、统计等。
4.水电收费模块:
对超出规定部分的水电收费管理。
5.宿舍保修模块:
对报修情况的登记、时间安排、修理结果检查等。
6.来访人员登记模块:
来访人员的登记管理等。
2.4数据流程
数据流图
图2.4-1宿舍信息管理系统总数据流图
图2.4-2宿舍信息登记分数据流图
图2.4-3宿舍卫生检查分数据流图
图2.4-4宿舍水电收费分数据流图
图2.4-5宿舍报修分数据流图
图2.4-6来访人员登记分数据流图
2.5数据字典
部分重要表:
表2.5-1用户数据字典
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
Uname
Varchar
20
6
是
是
否
用户ID
2
Upassword
Varchar
20
4
否
用户密码
表2.5-2住宿学生数据字典
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
Sno
Varchar
20
是
是
否
Lis
学号
住宿学生学号
2
Sname
Varchar
20
姓名
住宿学生姓名
3
Ssex0
Varchar
4
性别
4
Sdept
Varchar
40
专业
学生专业
5
Dno
Varchar
6
宿舍号
住宿学生住宿号
6
Scheckin
Varchar
8
入住时间
新生搬入时间
表2.5-3学生宿舍数据字典
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
Dno
varchar
6
是
是
否
宿舍号
2
Dphone
varchar
15
是
否
否
宿舍电话
3
Pname
Varchar
20
否
宿舍财产
表2.5-4报修数据字典
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
Dno
varchar
6
是
是
否
宿舍号
报修人宿舍号
2
Pno
varchar
2
否
物品号
报修物品编号
3
Rsubmit
varchar
8
是
提交日期
报修提交日期
4
Rsolve
varchar
8
是
解决日期
问题解决日期
5
Rreason
Varchar
50
否
保修原因
物品损坏原因
表2.5-5卫生检查数据字典
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
Dno
varchar
6
否
宿舍号
检查宿舍号
2
ChTime
varchar
14
检查时间
卫生检查时间
3
ChResult
varchar
10
否
检查结果
卫生检查评定
表2.5-6水电数据字典
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
Dno
varchar
6
否
宿舍号
水电宿舍号
2
Cost
Varchar
8
否
已用费用
水电消费情况
3
LeftFee
Varchar
8
否
剩余费用
水电剩余情况
4
CtFee
varchar
8
否
续交费用
续交水电费用
表2.5-7来访人员数据字典
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
备注
1
Sno
Varchar
20
否
学号
住宿学生学号
2
Sname
varchar
20
否
姓名
住宿学生姓名
3
Ssex
Varchar
4
否
性别
4
Sdept
Varchar
40
否
专业
学生专业
5
Dno
Money
6
否
宿舍号
被访学生宿舍号
6
Scheckin
Money
8
否
进入时间
正课时间被访进入时间
7
OutTime
Money
8
否
离开时间
正课时间被访结束后外出时间
3概念设计
3.1实体联系图
由于表格过多只列举部分表格设计实体联系图如下:
图3.1-1宿舍信息表实体联系图(被参照关系)
图3.1-2学生信息表实体联系图(参照关系)
图3.1-3宿舍报修信息表实体联系图(参照关系)
图3.1-4卫生检查信息表实体联系图(参照关系)
图3.1-5水电收费信息表实体联系图(参照关系)
图3.1-6来访人员信息表实体联系图(参照关系)
3.2设计完成的总e-r图
图3.2-1总E-R图
4逻辑结构设计
4.1图向关系模式的转换
部分关系模式如下:
Dorm(dormID,phone,Dmoney,bedNum,chairNum,deskNum,DRemark)
Student(SID,Sname,Ssex,class,dormID,phone)
Checkinfo(checkID,dormID,CDate,CSate,CRemark)
Charge(chargeID,dormID,MDate,EBuy,CPerson,CMoney)
Repair(repairID,dormID,DateIn,DateRepair,Person,repair,reason,repairmoney)
Register(RegisterID,PcomeID,PcomeName,DateCome,Plook,dormID,Dateleave,Remark)
主码:
灰色背景
外码:
加粗字体
4.2关系模型的优化
有了关系模型,可以进一步优化,方法为:
a.确定数据依赖。
b.对数据依赖进行极小化处理,消除冗余联系(参看范式理论)。
c.确定范式级别,根据应用环境,对某些模式进行合并或分解。
具体操作为:
确定了各关系的主键,确定关系的联系,如外键等。
如,student(DormID)—>dorm(DormID)
repair(DormID)—>dorm(DormID)等等
另外对冗余关系进行合并或分解。
4.3用户子模式的设计
这部分主要是考虑使用方便性和效率问题,主要借助视图手段实现,包括:
a.建立视图,使用更符合用户习惯的别名。
b.对不同级别的用户定义不同的视图,以保证系统的安全性。
c.对复杂的查询操作,可以定义视图,简化用户对系统的使用。
针对一般用户查询学号,姓名,宿舍号,宿舍电话比较频繁,建立一个包括学号,姓名,宿舍号,宿舍电话的视图:
视图1(sno,sname,DormID,phone)其他视图依据需要另外设置。
5物理结构设计阶段
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖
于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合的应用要
求的物理结构的过程,就是数据库的物理设计。
数据库的物理设计通常分为两步:
1.确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
2.对物理结构进行评价,评价的重点是时间和空间的效率。
5.1关系模式存取方法的选择
确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库
中的数据。
现行的DBMS一般都提供了多种存取方法,如索引法、HASH法等。
其中,最常用的是索引法,本系统也采用的是索引法。
我们在经常需要搜索的列和主关键字上建立了唯一索引。
5.2确定数据库的存储结构
由于不同PC机所安装的数据库软件位置不一定相同,所以数据文件与日志
文件的存放位置也不一定相同。
6数据实施和维护
6.1建立数据库
Createdatabasedormitory;
6.2建表
1.建宿舍学生入住信息表
createtablestudent
(
SIDvarchar(20)primarykey,
SNamevarchar(20),
SSexvarchar(20),
classvarchar(20),
dormIDvarchar(20),
phonevarchar(11)
);
表6.2-1学生入住信息表(student)
2.建宿舍缴费表
createtablecharge
(
ChargeIDintidentity(1,1)primarykey,
dormIDvarchar(20),
MDatedatetime,
EBuyvarchar(20),
CPersonvarchar(20),
CMoneyvarchar(20)
);
表6.2-2宿舍水电缴费表(charge)
3.宿舍卫生检查表
createtablecheckinfo
(
CheckIDintidentity(1,1)primarykey,
dormIDvarchar(20),
CDatedatetime,
CSatevarchar(100),
CRemarkvarchar(100)
);
表6.2-3宿舍卫生检查表(checkinfo)
4.建宿舍基本信息表
createtabledorm
(
dormIDvarchar(20)primarykey,
phonevarchar(20),
DMoneyvarchar(20),
bedNumint,
chairNumint,
deskNumint,
DRemarkvarchar(20)
);
表6.2-4宿舍基本信息表(dorm)
5.建宿舍外来人员记录表
createtableregister
(
Registerintidentity(1,1)primarykey,
PComeNamevarchar(20),
PComeIDvarchar(18),
DateComedatetime,
PLookvarchar(20),
dormIDvarchar(20),
DateLeavedatetime,
Remarkvarchar(100)
);
表6.2-5宿舍外来人员记录表(register)
6.建宿舍报修表
createtablerepair
(
RepairIDintidentity(1,1)primarykey,
dormIDvarchar(20),
DateIndatetime,
DateRepairdatetime,
personvarchar(20),
repairvarchar(20),
reasonvarchar(20),
repairmoneyvarchar(20)
);
表6.2-6宿舍报修表(repair)
……
6.3建查询
1、查询卫生检查不合格宿舍
Select Csate
from checkinfo
where Cremark<60;
查询结果:
图6.3-1查询结果图1
2、查询各个宿舍卫生检查成绩,并按降序排列
SelectCsate,Cremark
fromcheckinfo
order by Cremark desc;
查询结果:
图6.3-2查询结果图2
3、查询软件1班所在的宿舍号
Select dormID,classfromstudentwhereclass=”软1”;
查询结果:
图6.3-3查询结果图3
4、查询宿舍检查不合格的舍员名单
SelectSNamefromstudent,checkinfowherecheckinfo.dormID=student.dormIDandGremark<60;
查询结果:
图6.3-4查询结果图4
5、查询指定日期的所有的销售单
SELECT dorm.phone
FROM dorm,checkinfo
WHERE dorm.dormID = checkinfo.dormID and checkinfo.CSate='合格';
查询结果:
图6.3-5查询结果5
6.4建存储过程
1.创建一个存储过程,查询学生表中的详细信息
delimiter$$
CREATEPROCEDUREStu()
BEGIN
SELECT*FROMstudent;
END$$
delimiter;
图6.4-1存储过程结果图1
2.创建一个存储过程,查询201宿舍的具体情况
delimiter$$
CREATEPROCEDURESdorm()
BEGIN
SELECT*FROMdormWHEREdormID=201;
END$$
delimiter;
图6.4-2存储过程结果图2
3.创建一个存储过程,用于查询检查大于60分的宿舍
程序:
delimiter$$
CREATEprocedureproc_1(Cremarkchar(100))
BEGIN
SELECTdormIDFROMcheckinfoWHERECremark>60;
END$$
delimiter;
输入参数60
图6.4-3存储过程结果图3
6.5建触发器
准备学生数目统计表:
CREATETABLEstudent_count(
Student_countINT(11)DEFAULT0
);
INSERTINTOstudent_countVALUES(0);
创建触发器,在向学生表INSERT数据时,学生数增加,DELETE学生时,学生数减少。
CREATETRIGGERtrigger_student_count_insert
AFTERINSERT
ONstudent_infoFOREACHROW
UPDATEstudent_countSETstudent_count=student_count+1;
CREATETRIGGERtrigger_student_count_delete
AFTERDELETE
ONstudent_infoFOREACHROW
UPDATEstudent_countSETstudent_count=student_count-1;
7总结
通过老师对此次课程设计的讲解、小组成员的完美配合,此次课程设计我们完成的很顺利我也收获了很多,比如说我对做一个完整的系统的流程又饿更新的掌握,也让自己学到了更多简单又基础的东西。
在这个过程中,我熟悉MYSQL5.5的操作环境,熟练了word里面的操作。
整个开发过程中我深深体会到,团队之间要多做交流,要团结合作,要严格按照软件工程开发思路,不能急于求成,以来就马上变成,应该多做分析和研究,理清思路。
前一阶段的工作的好坏将直接影响后一阶段工作的开展。
多学习多请教,更多西诺德技术不断的涌现,可以通过请教别人或者多上网学习别人的变成方法、参考编成案例,可以转变成你的知识,才能做的更好。
这些经验是相当宝贵的,为我们以后能够编出更好的程序是一个良好的启发。
限于我们的技术水平有限这次的课程设计论文和编成软件的错误和不当之处在所难免,还得请老师多多指教!
在这次的课程设计中虽然时间紧迫但我们学会了很多,也感到自身知识的贫乏,希望在日后的努力学习中把它做成更完善的系统,并能做其他完善的系统。
从各种文档的阅读到需求分析、概要设计、数据库总体设计、代码编写与调试,我们都准备了好长时间。
组内分工合作的整个过程,我亲身体验了一回系统的设计开发过程,分工合作的好处。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候菜发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。
通过这次学生宿舍信息管理系统课程设计,使我们对数据库设计的各个方面都加深了理解,了解到数据库是一环扣一环的,只有数据流程图和数字字典做好了,才能进行下面的E-R图设计,中途不能有办点马虎,也体会到把知识应用于实践是不容易的,同时也学生课本所没有的东西,一些问题也只有真正做设计的时候才会出现。
由于时间比较紧,因此我们所做的课程设计肯定还存在许多的不足之处,程序中也存在许多小错误。
这将激励我们在以后的学习当中职累更多的经验,努力减少错误的发生。
参考文献
[1]王珊萨师煊.数据库系统概论(五-版)[M].高等教育出版社,2017.3