排考系统是为了方便管理而产生的软件,往年要进行此操作就必须下发Excel形式的报名表,报名完成之后,再统计,排考。现通过系统直接录入考场,录入报名信息,之后自动生成排考结果,操作简单方便。
考场表:考场ID,考场名,所属校区,所属楼名,房间号
考试表:考试ID,考试名,报名开始时间,报名结束时间,排考开始时间,排考结束时间,考试开始时间,考试结束时间 考试-考场关联表:记录ID,考试ID,考场ID
考场/考试管理模块制作要求:
最后,提供接口: IExamService
ExamInfo数据结构:包含所有Exam的字段,增加List Rooms字段表示该场考试所用到的所有考场。
在拥有考场和考试相关信息后,用户需要通过报名模块进行报名:
报名表:报名表ID,证件类型(枚举: 教工卡,身份证,护照和港澳台通行证 ),证件编号,工作单位(枚举,值可自定义),手机号,性别,[开户银行,银行卡号(这两个字段仅限证件类型不为教工卡的填写)],监考校区(枚举:思明校区,海韵校区,翔安校区),监考教师乘车地点(枚举,自定义几个值即可,权限监考翔安校区填写),去年是否参与过监考,监考科目 ID(监考科目在考试表中选择)
报名管理模块制作要求:
TIPS:
在报名完成后,系统根据考试和报名相关内容进行排考,规则如下:
数据表如下: 考场分配表:分配记录ID,考试ID,考场ID,监考1报名ID,监考2报名ID,是否正确分配(枚举:正确分配,分配但有问题,无法分配),分配规则描述(字符串存一个JSON,表述无法分配时,是由于上述5条规则无法处理)
TIPS:
最后,考场分配完需要使用可视化的界面显示。在可视化界面中,需要显示每个考场是否正确分配,需要可以查询到所有未分配的考场和所有有问题的考场。之后,管理员就应当可以使用可视化界面修改考场分配。 管理员界面修改分配后,需要按上述5条规则检查,但无论是必须,必须不还是尽可能的条目,都视为尽可能。例如,管理员强行分配一个考场里有两个相同部门的老师,也可以通过,但界面显示时,要显示“分配但有问题”,并且列出问题原因是什么。 最后,应当可以导出考场分配的Excel[提高,Excel请自行设计]。
TIPS:
已完成:定义所有业务对象、生成所有数据库、定义部分api、实现部分增删改查
主项目添加对新建项目的引用
常用的程序包控制台指令:
业务对象,和数据库表一一对应,只需操作业务对象,即可对数据库进行操作
Repositories 里放了对所有数据库表的操作对象
使用增加数据的api时,不能传ID,ID会自动生成,传了ID会不能正确地把请求体json转为对象。
增加Registion 增加ExamRoom 增加Exam
PUT 修改排考,参数是两个老师的id 如果不满足”必须“的条件,调整失败 api定义:
手动调整排考成功后,需要前端重新查询
满足尽可能条件的;不满足尽可能条件的;不满足必须条件的;未分配监考人的
PUT 对所有数据进行自动排考,即生成或更新所有ExamRoomAllocation 已经写好了部分的规则判断(输入ExamRoomAllocation对象,输出bool) 可以有未分配的记录 (助教好像说可以动态规划之类的)演示时要说算法复杂度 最好有极端的测试数据
1人基于以上分析和已有的代码做自动分配算法 1人进行postman之类的简单测试,有问题群里提 1人实现导出Excel,帮助测试,尝试解决bug
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。