(1)限定排课(限定某节不能安某科,如每天1、2节不安体育、美术、音乐
1、可以引入【字典管理】表,有【科目】、【优先顺序】等列名,【优先顺序】对应【科目】,把【科目】下【语文】、【数学】、【英语】的【优先顺序】分别设为【1】、【2】、【3】,就会自动安排在【早上】,把【体育】、【美术】、【音乐】分别设为【7】、【8】、【9】之类,自然变成了【下午】的课。
2、如果某课不能在指定时间上课,那就直接指定上课时间,避免对天气的要求和因资源不足造成的冲突。在【教师安排】表中增加【星期1】、【节次1】、【星期2】、【节次2】等辅助列即可完成指定科目的安排,无需在【课程安排】表中增加【限定】之类的列。
3、如果在【字典管理】表中有各【班级】的【每天节数】、【周五节数】,即可用代码自动生成初始的【课程安排】表,然后可以用代码自动将【教师安排】表中已指定上课时间的【科目】填写到【课程安排】表中。
(2)一个老师在同一节次不能出现跨班安课(如星期1第1节已上1班语文,就不能安2班任何科该老师的课)
利用二次搜索即可完成。
1、先搜索当前【班级】BJ、【星期】I(for循环)、【节次】J(for循环)、【教师姓名】为空的记录。必须找到。
2、再搜索【星期】I(for循环)、【节次】J(for循环)、【教师姓名】等于当前【教师姓名】XM的记录。必须没找到。
(3)教师在一个班的每天排课节数<=周课时/5天的最大整数
这个问题实际上在第一个问题的解答中已经解决,即通过【优先顺序】解决。
[此贴子已经被作者于2020/9/15 13:41:01编辑过]