借助本课题研究开发的基于java的自动排课系统,使学校教务管理人员可以随时掌握学校的排课情况,进一步指导学校的教学。
本排课系统的主要功能大致包括:通过计算机可以进行排课管理,实现自动化排课,即无纸化排课,并且能了解、分析学校课程和教师资源的现状,能够充分的利用学校教室、教师等有限资源。考虑到在大学内课程变化较多,灵活性也较大,所以在功能设计上,我们将采取自动与手动相结合进行排课,以达到对课程的安排的相对合理性。
智能排课系统的整体结构:整个系统分为B/S结构的教师与教务管理员登录功能、排课功能、课程管理功能、教室管理功能、教师管理功能、B/S结构的学生查课表功能与选课功能。
登录模块:在C/S结构中,登入系统有对角色的分类与合法性的验证,并且根据不同的类型角色分配不同的权限;在B/S结构中,登入系统中只需要验证用户的合法性即可。
排课模块:包括手动排课、自动排课、查看全部课程信息、调整课程。
其他模块:主要是管理学生本人的信息、教师本人的信息、上课教室的信息、教学课程的信息、各个班级的信息等。大体是对这些信息进行增加、查找、修改、删除等操作。
研究目标
(1)掌握学校所有的课程和教师信息,包括教室,班级,上课老师及上课时间。
(2)提供查询功能,可以查看某个班级所有课程信息。
(3)可以对课程信息和教师信息进行查询和删除。
(4)可以对课程进行手动排课和自动排课功能。
本系统的要求
用户界面要求友好、绚丽,操作方便。
首先用户登录,登陆完毕后按权限显示功能列表,通过点击功能列表中某一功能,将相应功能页面打开,然后可以查看相应功能的详细信息,并对相关信息进行修改、删除等操作。
系统应包含以下功能模块:
(1)系统管理:对用户的信息进行添加、修改等操作;对登录的用户进行登录限制;同时可以对系统的数据进行备份。
(2)资源管理:包括课程管理、教师管理、专业管理、班级管理、教室管理等。
(3)排课管理:能够按照排课算法的限定条件进行自动排课,生成课表;同时,对需要临时调整的课程、或者发生冲突的课程,能够进行手动调整。
(4)输出管理:根据用户的权限、按照相应的需求,实现对班级、教师、教室的课表进行查询和打印。
排课系统对数据库设计的约束
常用的硬约束条件有:
(1) 所有的校方开出的课程都必须被安排;
(2) 除了可以合班上的课程以外,在同一时间内,同一个教室只能被一个班级使用;
(3) 除了选修课程以外,在同一时间内,一个班级只能安排一门课程;
(4) 在同一时间内,一个教师只能被安排在一个教室上一门课程;
(5) 同一个教师所上的所有不同的课程不能安排在同一时间上;
(6) 两个班的不同课程不能在同一个时间被安排在同一个教室;
(7) 教室的类型必须满足课程的要求;
(8) 教室的最大容纳人数必须大于安排在该教室上课的学生人数;
(9) 不同课程对时间段的不同要求,如体育课只能安排在白天上,选修课程只能安排在晚上上等[2]。
常用的软约束条件有:
(1) 同一班级的同一门课程的上课时间尽量间隔均匀些。例如,某班级的高等数学课在一周内需要安排俩次授课。两次授课时间的安排时间就需要尽量间隔一天或者一天以上;
(2) 每个班级在一周中的课程分布要均匀;
(3) 要尽量在较好的上课时间段安排课程;
(4) 对特定的课程、班级、教室、教师的单双周上课时间点尽量匹配,合理安排、节约教学资源[2];