我们如何准备一个改变轮班的轮换应用程序,以便所有员工能够以不同的班次工作,并且在月末,所有员工的班次数应该相同......
任何帮助?
答案 0 :(得分:0)
好的,如果我理解正确,您要解决的问题如下:
输入:您为一个月S
定义了M
个不同的班次,并且您有E
名员工。
输出:根据输入,您必须为每位员工定义一个计划,即在S
月内将M
的班次转移给他们。这样做时,您必须达到两个目标:
为实现这一目标,有许多可能的算法。在我的脑海中,这是一个C风格的伪代码(你用VB.NET编写):
CircularArray shifts = GetDefinedShifts();
foreach(day in Month){
foreach( employee in Employees ){
employee.Schedule.AssignShift( Month, day, shifts.Current() );
shifts.Next();
}
}
当CircularArray
站在最后一个元素上时,Next
会返回第一个元素。但是,如果#E == #S
,则此算法失败:每个员工总是获得相同的班次。所以这并不容易。但是这种天真的算法可以让你开始思考一个更好的算法。如果我想出更好的东西,我会发布它。