软件协会第一届程序设计大赛
作品名称: 中南林业科技大学人员出入校管理系统
作 者: ***
填写日期: 2022.05.26
目 录
第二章 概要设计
第三章 详细设计
第四章 测试报告
第五章 安装及使用
第六章 项目总结
- 需求分析
- 设计背景
2019年新冠肺炎爆发以来对我们的生活造成了巨大影响。疫情下,为减少不必要的人员流通,大学校园的人员出入管理格外重要。作为在校大学生,我拟为学校设计一个人员出入校管理系统。
- 主要功能
- 校园内不同身份人员的出入校提交申请
- 审核申请
- 查看申请和状态
- 修改疫情防控等级
- 清空申请记录
每种身份相应的功能如下:
学生:出入校申请,查看我的申请,注销登录;
教师:个人出入校申请,团队出入校申请,访客入校申请,查看我的申请,注销登录;
校内居民:个人出入校申请,查看我的申请,注销登录;
物流职工:物资入校申请,查看我的申请,注销登录;
审核员:审核申请,注销登录;
系统管理员:修改疫情防控等级,修改管理员密码,清空申请记录,注销登录;
- 概要设计
校内人员种类繁多,根据实际需求将全校人员分为六个身份类(学生,教师,校内居民,物流职工,系统管理员,审核员)
身份的实际解释:
- 学生:该系统的主要用户,可在疫情防控等级为三级时提交出入校申请。
- 教师:集成个人出入校申请,团队出入校申请,以及访客出入校申请。个人申 请可在疫情等级为二级时提交出入校申请(疫情防控等级为三级时凭教 师身份证明出入校),团队和访客出入校可在疫情防控等级为三级时提交。
- 校内居民:校内居民包括校内居住的居民和食堂职工以及清洁工,可在疫情防 控等级为三级时提交出入校申请。
- 物流职工:学校运送物资的人员,考虑到当校外疫情严重,全校封控管理时, 必须保证医疗物资以及生活物资正常入校,故将其单独分离为一个身份 类,疫情防控等级为一、二、三级时均可提交物资入校申请。
- 审核员:审核四个用户类提交的出入校申请。
- 系统管理员:根据实际情况修改疫情防控等级,情况申请记录。
疫情防控等级分为4级:
一级:校外疫情严重,所有在校人员除物流职工外原地静默禁止离校。
二级:校外疫情较严重,除教师和物流职工可提交申请后出入校,其他人员禁止出 入校。
三级:校外疫情轻微,在校人员可提交申请出入校门,教师凭教师身份证明出入校 门,非必要不离校。
四级:校外暂无疫情,学校各个校门对外开放,无需提交申请,扫健康码出入校园。
系统总览:
- 详细设计
根据不同身份创建多个身份类,其中各种身份中相同的信息(姓名,ID号,密码)由身份基类保存,其他身份类继承身份基类。相同的功能(子菜单)在基类中使用纯虚函数,各个身份类的子菜单(operMeun)通过多态实现实现,所有申请记录通过txt文件保存。txt文件作为审核员和其他身份类交互接口,审核员通过读取txt文件中审核状态为待审核的申请,修改审核状态,将新的审核状态写入文件中,覆盖原来的审核状态。
项目文件
身份基类
系统文件夹目录
个人离校申请提供出校和预计返校时间,目的地,出校原因,紧急联系电话。个人返校申请应提供返校时间,来源地,紧急联系电话。团队出入校申请应增加团队人数和人员名单。物资入校申请应说明物资类型,和物资来源地。
文件读取采用while循环,按写入的顺序加入if语句判断来实现不同身份和不同数据的读取。审核员修改审核状态时,由于不同身份和种类的不同,每一条申请在文件中保存的数据也不相同,难以做到定位修改审核状态参数,故采取临时文件的方法,将修改后的数据全部写入临时文件,每一个身份类审核完成之后将临时文件中的所有数据覆盖原文件的数据,最后清空临时文件。
- 测试报告
图a
图b
图c
图d
图e
图f
图1
图2
图3
图4
图5
图6
图7
图8
图9
图10
图11
图12
图13
图14
图15
图16
图17
图18
- 安装及使用
- 打开中南林科大人员出入管理系统文件夹
- 使用VS打开中南林科大疫情期间人员出入校管理系统.sln文件
- 点击运行
注:所有登录的ID号为20212872,姓名:abc,密码:123
- 项目总结
项目总共2548行代码,31个文件,虽然项目总体来说实现比较简单,没有太大的难点,但是由于校内人员的种类复杂多样,提交申请需要保存的数据也各不相同,所以对文件的写入和读取有较大的要求。这是我第一次独自写出一个完整的项目,在这个过程中也让我学到了很多debug的方法,收获满满。
项目还有许多需要完善的地方,距离真正实用还有一段路需要走,首先应该将控制台的东西实现到可视化界面上去,其次关于登录的问题还需要链接教务处的数据库等等。