重点:
1 一个班级或多个班级 在一个机房 或是多个机房 上课 2 多名教师可以自行选课,选课后管理员生成 选课数据. 会给教师建议的选课位置, 教师自己确定是否选取 该位置, 未确认下次 生成选课数据, 会重新分配~ 3 程序会根据 教师授课的班级固定课表情况, 和机房的空闲情况 和教师 授课情况 排课, N个教师选择一个节点, 会把该节点 给 N个教师中 空闲位置最少的, 会建议其他教师 去 其他空闲位置
固定课表 班级 对应周 占用的节点,
教师 授课 可以同时 教 N个班
选择机房的时候 判断 N个机房的容量 是否可以 容纳 对应多个班级的总人数
教师 可以 选课 选择对应 周 的 对应 星期的 对应节, 状态为预选
N个 教师选择 一个节点 生成课表时候, 该节点 给 空位最少的教师 其他教师 会建议 一个新节点, 教师登录 确认后 建议节点 生效, 未确认 或是删除 下次编排时候 继续进入 编排处理
优先 给空位少的教师选课成功, 其他同节点教师会建议 其他位置, 判断 对应班级 固定课程 和已选 是否 冲突 判断 机房是否空闲 教师的固定课表 不去考虑, 因为教师选课时候 可以 主管判断!
|
ASP.NET 实验室预约编排
结构 尽量 按照我之前的系统 结构来,
预约周 预约周 (1-10)
固定课表 节 (1-6 ) 周 (1-7) 班级编号 课程描述
需要excel 导入
导入 对应班级的 固定 课表
授课管理 配置的只是 机房课程 和 机房教师的 关系, 其他的不管
一节课 可以 指定多个班级 合班的情况
预约, 罗列 授课班级的 空闲位置参看 有点复杂这个位置 显示已经预约的 教师课程
处理合班 分组的情况
选址 周 节 预约周 选取 授课 列出 空闲 机房 , 指定 一个或是N个机房的 上课学生明细
学生 登录查看课表
授课管理 配置教师 课程 和一个班级 或是多个班级关联
预约 时候 判断 班级的固定课表 是否 冲突 , 教师是否冲突 机房是否冲突
判断授课人数上限 和 选取的机房容量上限规则
依次 将 学生分配到对应的机房
授课 可以同时 教N个班级 在N个机房上课 具体 请查看演示
主要内容以及目标 (毕业设计应完成的主要内容,设计任务达到的目标)
毕设要求实现一个实验室的管理系统,其中要把课程选课人数、教室容量、教师、学生、上课时间等各种因素都考虑在内,并将教师提出的课程安排要求作为安排实验的条件之一,能够自动的进行合理的排课,优先安排授课课程,其次是课程实验,最后能将实验室空闲时间提供出来给学生自由上机,按照一定的优化准则进行最优处理。如条件发生冲突则制定冲突解决策略,并通知相关人员,待反馈信息后确定最终安排。该系统可以提供给实验室管理人员、老师、学生及相关人员使用。
成果形式 (毕业设计完成具体工作量;成果形式;验收方式)
能够实现要求的各项功能,设计开发阶段要有需求分析及设计文档,在编码阶段要对代码有适当的注释,对系统调试要完整,能够处理各种合法及非法输入。最终要求提交软件系统源代码和论文。
基本要求 (对完成设计任务方面的具体要求:对理工专业应提出设计技术参数、数据及来源、调试所用仪器设备等)
使用C++,C#或java(如需要学生也可自选其他开发平台及语言)实现软件程序,要求源程序结构清晰、功能完善,有适当的注释及开发设计文档。系统界面要简洁易懂,操作方便;功能服务能够准确无误的完成。相关测试数据由学生自行设计。使用设备为pc机和相关软件开发环境。
数据表结构
管理员工号密码 姓名
教师工号 密码 姓名 所属学院 所在系 教授课程教授班级
学生学号 密码 姓名 所属学院 所在系 班级
班级 班级ID 班级名称 所属学院 所在系 人数
课程课程ID 课程名
实验室 实验室ID 实验室名称 座位数 是否空闲
教师课表 周 星期 课程开始节数 课程结束节数 是否空闲
班级课表 周 星期 课程开始节数 课程结束节数 是否空闲
实验室课表 周 星期 课程开始节数 课程结束节数 机房 是否空闲 教师 课程 班级
预约表 周 星期 课程开始节数 课程结束节数 班级
____________________________________________________________________________
管理员登录
密码修改
用户管理
课程管理
实验室管理
班级管理
手工修改排课
查看实验室课表
教师登录
密码修改
查看实验安排
预约实验
学生登录
密码修改
查看实验安排
查看实验室空闲时间














表数量22
班级 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
班级编号 |
nvarchar(50) |
|
|
|
班级名称 |
nvarchar(50) |
|
|
|
专业 |
nvarchar(50) |
|
是 |
|
表:1
固定课表 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
周 |
integer |
|
|
|
节 |
integer |
|
|
|
班级编号 |
nvarchar(50) |
|
是 |
|
课程描述 |
nvarchar(50) |
|
是 |
|
预约周 |
nvarchar(50) |
|
是 |
|
表:2
管理员 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
账号 |
nvarchar(50) |
|
|
|
密码 |
nvarchar(50) |
|
|
|
表:3
机房房间 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
机房编号 |
nvarchar(50) |
|
|
|
机房名称 |
nvarchar(50) |
|
|
|
所属教学楼 |
nvarchar(50) |
|
|
|
容量 |
integer |
|
是 |
|
表:4
教师 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
工号 |
nvarchar(50) |
|
|
|
密码 |
nvarchar(50) |
|
|
|
教师姓名 |
nvarchar(50) |
|
|
|
联系方式 |
nvarchar(50) |
|
是 |
|
所属院系 |
nvarchar(50) |
|
是 |
|
表:5
教学楼 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
教学楼 |
nvarchar(50) |
|
|
|
表:6
科目 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
科目编码 |
nvarchar(50) |
|
|
|
科目名称 |
nvarchar(50) |
|
|
|
表:7
授课 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
教师工号 |
nvarchar(50) |
|
|
|
科目编码 |
nvarchar(50) |
|
|
|
班级编号 |
nvarchar(200) |
|
|
|
表:8
学生 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
学号 |
nvarchar(50) |
|
|
|
密码 |
nvarchar(50) |
|
|
|
姓名 |
nvarchar(50) |
|
|
|
性别 |
nvarchar(50) |
|
|
|
班级编号 |
nvarchar(50) |
|
|
|
联系方式 |
nvarchar(50) |
|
是 |
|
表:9
预约排课 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
授课id |
integer |
|
|
0 |
机房ID |
integer |
|
|
0 |
周 |
integer |
|
|
|
节 |
integer |
|
|
|
预约周 |
nvarchar(50) |
|
是 |
0 |
学号集合 |
nvarchar(500) |
|
是 |
|
状态 |
nvarchar(50) |
|
是 |
N'预选' |
推荐周 |
integer |
|
是 |
|
推荐节 |
integer |
|
是 |
|
推荐预约周 |
nvarchar(50) |
|
是 |
0 |
表:10
预约周 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
预约周 |
nvarchar(50) |
|
|
|
表:11
院系 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
院系 |
nvarchar(50) |
|
|
|
表:12
专业 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
专业 |
nvarchar(50) |
|
|
|
所属院系 |
nvarchar(50) |
|
|
|
表:13
v班级 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
班级编号 |
nvarchar(50) |
|
|
|
班级名称 |
nvarchar(50) |
|
|
|
专业 |
nvarchar(50) |
|
是 |
|
班级人数 |
integer |
|
|
|
所属院系 |
nvarchar(50) |
|
是 |
|
表:14
v班级人数 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
班级编号 |
nvarchar(50) |
|
|
|
人数 |
integer |
|
是 |
|
表:15
v固定课程数 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
固定课程数 |
integer |
|
是 |
|
班级编号 |
nvarchar(50) |
|
是 |
|
表:16
v授课 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
教师工号 |
nvarchar(50) |
|
|
|
科目编码 |
nvarchar(50) |
|
|
|
教师姓名 |
nvarchar(50) |
|
是 |
|
教师联系方式 |
nvarchar(50) |
|
是 |
|
教师院系 |
nvarchar(50) |
|
是 |
|
科目名称 |
nvarchar(50) |
|
是 |
|
班级编号 |
nvarchar(200) |
|
|
|
表:17
v授课ID固定课表数量 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
教师工号 |
nvarchar(50) |
|
|
|
科目编码 |
nvarchar(50) |
|
|
|
班级编号 |
nvarchar(200) |
|
|
|
固定课程数 |
integer |
|
是 |
|
固定课程班级编号 |
nvarchar(50) |
|
是 |
|
表:18
v授课ID固定课表总数 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
授课ID |
integer |
|
|
|
固定课表总数 |
integer |
|
是 |
|
表:19
v授课ID预约成功课程数 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
预约成功课程数 |
integer |
|
是 |
|
状态 |
nvarchar(50) |
|
是 |
|
授课id |
integer |
|
|
|
表:20
v授课ID总占位数量 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
授课ID |
integer |
|
是 |
|
固定数 |
integer |
|
|
|
预约成功数 |
integer |
|
|
|
合计数 |
integer |
|
是 |
|
表:21
v预约排课 |
|
字段名称 |
数据类型 |
自增主键 |
允许为空 |
默认值 |
ID |
integer |
是 |
|
|
授课id |
integer |
|
|
|
机房ID |
integer |
|
|
|
周 |
integer |
|
|
|
节 |
integer |
|
|
|
预约周 |
nvarchar(50) |
|
是 |
|
教师工号 |
nvarchar(50) |
|
是 |
|
科目编码 |
nvarchar(50) |
|
是 |
|
班级编号 |
nvarchar(200) |
|
是 |
|
机房编号 |
nvarchar(50) |
|
是 |
|
机房名称 |
nvarchar(50) |
|
是 |
|
所属教学楼 |
nvarchar(50) |
|
是 |
|
教师姓名 |
nvarchar(50) |
|
是 |
|
教师联系方式 |
nvarchar(50) |
|
是 |
|
教师院系 |
nvarchar(50) |
|
是 |
|
科目名称 |
nvarchar(50) |
|
是 |
|
学号集合 |
nvarchar(500) |
|
是 |
|
状态 |
nvarchar(50) |
|
是 |
|
推荐周 |
integer |
|
是 |
|
推荐节 |
integer |
|
是 |
|
推荐预约周 |
nvarchar(50) |
|
是 |
|
表:22