Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 用于开发rota应用程序的查询_Vb.net_Algorithm - Fatal编程技术网

Vb.net 用于开发rota应用程序的查询

Vb.net 用于开发rota应用程序的查询,vb.net,algorithm,Vb.net,Algorithm,我们如何准备一份轮班表申请,更改轮班,以便所有员工在不同的轮班中工作,并且在月末,所有员工的轮班次数应相同 有什么帮助吗?好的,如果我理解正确,您要解决的问题如下: 输入::您为一个月的M定义了S个不同的班次,并且您有E个员工 输出::根据输入,您必须为每位员工定义一个时间表,即在M月从S向他们分配班次。这样做时,您必须满足两个目标: 所有员工都有不同的轮班 分配给每位员工的总轮班数必须相同 要实现这一点,有很多可能的算法。在我脑海中,这里有一个你在VB.NET中编写的C风格伪代码: Circu

我们如何准备一份轮班表申请,更改轮班,以便所有员工在不同的轮班中工作,并且在月末,所有员工的轮班次数应相同


有什么帮助吗?

好的,如果我理解正确,您要解决的问题如下:

输入::您为一个月的M定义了S个不同的班次,并且您有E个员工

输出::根据输入,您必须为每位员工定义一个时间表,即在M月从S向他们分配班次。这样做时,您必须满足两个目标:

所有员工都有不同的轮班 分配给每位员工的总轮班数必须相同 要实现这一点,有很多可能的算法。在我脑海中,这里有一个你在VB.NET中编写的C风格伪代码:

CircularArray shifts = GetDefinedShifts();
foreach(day in Month){
    foreach( employee in Employees ){
       employee.Schedule.AssignShift( Month, day, shifts.Current() );
       shifts.Next();
    }
}
当你调用最后一个元素上的下一个站时,循环光线返回到第一个元素。但是,如果E==S,则此算法将失败:每个员工的班次始终相同。所以这并不容易。但这种幼稚的算法可以让你开始思考更好的算法。如果我能想出更好的办法,我会把它贴出来


另一方面,为什么要重新发明轮子?有可用的开源解决方案,例如。还有一个类似软件的列表。

欢迎使用。这个问题太宽泛了。你应该问更具体的问题。例如,你可以问什么样的设计模式适合你的问题,或者是否有一个开源的rota应用程序,我的意思是问我们可以使用哪种算法来实现这一点?我想用时差作为一个参数来实现。非常具体地说,今天轮班结束和第二天轮班开始的时差。希望这能缩短我的问题。我们需要更多地了解数据的结构方式,即表,只是与此问题相关的表。请编辑您的问题,添加信息我计划几乎有一个表,仅用于参数,其他表将有与员工相关的详细信息。这似乎是我试图找到的,我将尝试此,并尽快让您知道这对我是如何起作用的。非常感谢你在这方面的帮助和时间,我真的很感谢你帮我提出这样的申请。我将尝试检查提供的链接,看看它如何帮助我解决我的问题。再次感谢您的帮助和时间。但是有人能帮我用SQL Server做同样的事情吗?这样我就可以理解逻辑,从而更好地创建SQL Server。您应该在单独的问题中提出这个问题。与此同时,google实体框架