基于调度优先的排班系统
项目:学校有一个值班室,需要一天四班,一班两个人,一周值五天班。一个组织的学生需要为这个值班室值班,现要求,在学生无课的情况(不同班级,无课时间不同)下一周一人最多值两天班。
调度优先算法原理讲解:收集所有学生的无课表存入数据库,一天四班 x五天,需要20个班次,根据每班的无课人数进行升序排序,先对人数最少的班次进行排班,每排一个人要先对其查重处理,如果已经排过两次了,就跳过,如果不够两次,则写入数据库中的值班表中。接着、排数据库中这个班的下一个人,直至这个班次够两个人或者数据库中这个班次的没有人了。最少人数的班次排完了,排下一个人数少的班次,直至排完。最后值班表中的人就是需要排的人。(两张表:1、无课表 2、排班表(每排一个存一个))
代码已经实现了,当初在做的时候也是查找了很多资料不知到该如何下手,希望这个原理讲解可以给在做的人一个启发吧,欢迎大家评论,有需要源码的可以私信我
3707





