设计要求:
(1)数据库应用系统开发的需求分析,写出比较完善系统功能。
(2)数据库概念模型设计、逻辑模型设计以及物理模型设计。
(3)完成功能模块结构设计并编写代码实现。
(4)软件总体测试及修改。
(5)撰写软件设计说明书。
学生宿舍管理系统的设计背景源于对传统宿舍管理方式的改进需求。传统方式存在信息不透明、手动操作繁琐等问题,导致住宿分配不公平、报修反馈滞后等困扰。通过引入宿舍管理系统,可以提高管理效率和便捷性,简化操作流程,提供学生宿舍申请、报修、查询等功能。系统能够数字化宿舍分配,实现公平和透明,同时提供维修管理和访客功能,提升宿舍管理质量和学生满意度。数据统计和分析功能为管理员提供决策支持,帮助改进管理策略。通过系统,学生和管理员可以获得准确、实时的宿舍信息,增加管理的透明性和公正性。综上所述,学生宿舍管理系统的设计背景是为了提高管理效率、提供便捷服务、实现公平和透明的宿舍管理,提升学生生活质量和学习环境。
系统需要有一个登录页面,不同用户登录后,对不同的功能具有不同的权限。数据库用户包括学生、维修员、管理员等多个角色。
信息要求:
处理要求:
数据项:
宿舍号、宿舍人数、宿舍地址、楼栋号、楼栋地址、学生学号、姓名、班级、学生性别、床号、访客号、访客姓名、访客电话、访客日期、访客时间、访问理由、访客审批状态、离开时间、核实状态、维修单号、维修时间、维修审核状态、维修状态、报销状态、维修人员姓名、损坏描述、维修人员工号、维修人员性别、维修人员年龄、维修评分、维修具体评价、报销金额、管理员账户、维修人员账户、用户账户、密码。
数据结构:
安全性要求:
完整性要求:
实体属性如图所示:
图1 实体属性图
实体间联系见下图
图2 E-R图
利用Power Designer 设计的数据库图如下所示:
图3 Power Designer设计图
本文中,用下划线标识主码,用粗体标识外码
楼栋(楼栋号,楼栋位置)
宿舍(宿舍门牌号,宿舍人数,宿舍地址)
学生信息(学号,姓名,班级,性别,床位,居住宿舍)
维修人员(工号,姓名,年龄,性别)
访客记录表(访客号,访问学生学号,访客姓名,访客电话,访客 日期,访客时间,访问审批状态)
访客报备表(访客号,离开状态,离开时间,核实状态)
维修记录表(维修单号,维修宿舍号,维修时间,维修人员工号, 损坏原因描述,审核状态,维修状态)
评分表(维修单号,维修人员工号,评分,具体评价)
报销表(维修单号,维修人员工号,报销金额,报销状态)
账户登录表(账号,密码)
表1 楼栋表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
Bno | 楼栋号 | Char | 20 | √ | √ | |
Locate | 楼栋位置 | Char | 30 | √ |
表2 宿舍表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
Did | 宿舍号 | Char | 20 | √ | √ | |
Dcapacity | 居住人数 | Int | √ | |||
Locate | 位置 | Char | 30 | √ | √ |
表3 学生信息表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
Sno | 学号 | Char | 20 | √ | √ | |
Sname | 学生姓名 | Char | 20 | √ | ||
Ssex | 性别 | Char | 2 | √ | ||
Sclass | 班级 | Char | 20 | √ | ||
Sbedno | 床位 | Int | ||||
Did | 宿舍号 | Char | 20 | √ |
表4维修人员信息表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
Mno | 学号 | Char | 20 | √ | √ | |
Mname | 学生姓名 | Char | 20 | √ | ||
Msex | 性别 | Char | 2 | √ | ||
Mage | 班级 | int | √ |
表5 报销表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
ID | 报销号 | Char | 20 | √ | √ | |
Rid | 维修单号 | Char | 20 | √ | √ | |
Mno | 工号 | Char | 20 | √ | √ | |
Rprice | 报销金额 | int | √ | |||
Restate | 报销状态 | Char | 10 | √ |
表6 访客记录表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
RecordID | 访客号 | Char | 50 | √ | √ | |
Sno | 学生学号 | Char | 20 | √ | √ | |
Visitorname | 访客姓名 | Char | 50 | √ | ||
Visitorcontact | 访客电话 | Char | 20 | √ | ||
VisitDate | 访客日期 | date | √ | |||
VisitTime | 访客时间 | time | √ | |||
Remarks | 访问理由 | Char | 100 | √ | ||
Vstate | 审批状态 | Char | 20 | √ |
表7 评分表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
Rid | 维修单号 | Char | 20 | √ | √ | |
Mno | 维修工号 | Char | 20 | √ | √ | |
score | 评分 | Int | √ | |||
remarks | 评价 | Char | 100 | √ |
表8 登录表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
ID | 账号 | Char | 20 | √ | √ | |
psw | 密码 | Char | 20 | √ |
表9 维修表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
Rid | 维修单号 | Char | 20 | √ | √ | |
Did | 宿舍号 | Char | 20 | √ | √ | |
RepairDate | 维修日期 | date | √ | |||
Remarks | 损坏描述 | Char | 100 | √ | ||
Stuffname | 维修人员 | Char | 20 | √ | ||
Rstate | 审批状态 | Char | 20 | √ | ||
Restate | 维修状态 | Char | 20 | √ |
表10 访客离开报备表
字段名 | 语义 | 类型 | 长度 | 主键 | 必须非空 | 外键 |
RecordID | 访客号 | Char | 20 | √ | √ | |
Rstate | 离开状态 | Char | 20 | √ | ||
Rdate | 离开日期 | date | √ | |||
Restate | 核实状态 | Char | 100 | √ |
在本次设计学生宿舍管理系统中,除了最基本的增删改查功能外,还添加了俩个功能闭环:维修功能闭环,访客功能闭环。
维修功能闭环:
访客功能闭环:
图4 功能模块总体设计图
管理员功能设计
维修员功能设计
学生功能设计
系统实现的展示顺序:首先展示登陆界面,然后展示管理员界面,接着展示维修员界面,最后展示管理员界面。展示的过程中会把不同界面的功能展示出来。除此以外最后会单独展示维修功能闭环和访客功能闭环。
图5 登录界面
用户选择身份。若用户没有账号密码可以点击下方的蓝色字体注册。
图6 注册界面
若用户输入错误的账号密码,系统会报错登陆失败。
图7 登录失败界面
选择管理员,并成功登录。
图8 管理员主界面
管理员可以修改个人登录密码点击右上角的系统,再点修改密码即可。
图9 修改密码界面
点击数据库备份功能,系统会把整个数据库备份到指定磁盘位置。
图10 数据库备份
审核功能会在展示两个闭环时再具体介绍。、
图11 审核功能
图12 学生界面
增加一名学号为2023039名字为张伟且居住在201宿舍8号床的学生信息。
图13 添加学生界面
图14 添加学生结果
此处设置了触发器,当201宿舍增加一个人的时候原宿舍人数从3变为了4。
图15 添加学生结果
把202039张伟的宿舍改到101去。原宿舍人数减一,新宿舍人数加一。
图16 修改学生界面
图17 修改学生结果
删除202101刘东的信息。他原先居住的宿舍人数减一,同时访问他的访客信息中访问学生学号置为空。
图18 删除学生
图19 删除学生结果
图20 删除学生宿舍人数
图21 访客信息更改
此处采用模糊查询,输入徐查询结果如下。
图22 学生信息查询
图23 宿舍信息主界面
新建一个202宿舍初始居住最大人数为6,之后修改为9。
图24 新建和修改学生信息
删除宿舍101。住在此处的学生此时宿舍号置为空且床位号置为0,维修单此处的宿舍信息也置为空。
图25 未删除时学生信息
图26 删除后学生信息
图27 删除前维修单信息
图28 删除后维修单信息
输入102。查询住在此宿舍的学生姓名。
图29 查询宿舍信息
由于这个几个界面实现的功能就是增删查改,和前面的学生信息管理,宿舍信息管理操做极其类似,所以仅仅展示主界面,功能就不在赘述。
图30 维修主界面
图31 访客主界面
图32 维修员信息主界面
图33 维修员主界面
图34 维修处理界面
注意:维修员能看到的维修单要管理员审核通过且未维修才会被显示出来。
输入010。查询维修单。
图35 查询结果
其他功能:维修评价,报销还有查询评价和报销进度会在维修功能闭环中详细说明,这里不在赘述。
图36 学生主界面
学生界面的所有功能将在维修闭环和访客闭环中详细说明,这里不再赘述。
宿舍201玻璃损坏,学生提交维修申请。
图37 提交维修
图38 管理员审批
管理员审批通过后,维修员可在维修列表中查到此维修申请。
图39 维修员接单
图40 维修员确认维修
图41 学生查询维修进度
图42 学生评价
图43 维修员查询评价
图44 维修员选择报销单
图45 维修员填写报销单
图46 管理员审核报销
管理员选择拒绝报销。
图47 维修员查询报销
图48 学生提交访客申请
图49 管理员查询申请
图50 管理员审批
图51 用户查询审批结果
图52 用户提交离开备份
图53 管理员核实
由于未离开,所以管理员选择核实有误。
学习数据库系统原理并完成数据课设后,我获得了宝贵的经验和深刻的体会。通过学习数据库系统原理,我深入了解了数据库的核心概念、数据模型和基本操作。我学会了如何设计和规划数据库结构,以及如何使用SQL语言进行数据查询和管理。
在完成数据课设的过程中,我亲身体验了数据库设计的挑战和乐趣。我需要分析问题需求,设计数据库表结构,优化查询性能,并实现各种复杂的查询功能。通过这个过程,我提高了数据建模和规范化的能力,同时也锻炼了问题解决和调试技巧。
此外,我意识到数据库的重要性和广泛应用的范围。无论是企业的数据管理、网站的后台系统还是科学研究领域,数据库都扮演着关键的角色。良好的数据库设计和高效的数据操作可以提高数据的可靠性、安全性和性能,对于组织和业务的发展至关重要。
总的来说,学习数据库系统原理并完成数据课设是一次充实而有价值的经历。我不仅获得了理论知识,还掌握了实际应用的技能。这些经验将对我的学习和职业发展产生长远的影响,使我更好地理解和应用数据库技术。