电梯调度设计之初感想——蔡迎盈&&曹玉松

   突然拿到这个问题,蒙了好久,索性走一步,再走一步好了,希望在这天下第一庄里,会看到晴空。
   查了好多资料,终于还是整理出一个很草稿的版本,这只能算是我们初步的设计。
   四部电梯载重和乘客限制不同,根据题意1层和0层客流量最大,若这两层有外部请求可以采取提前处理的方式。分别给四部电梯标号为0,1,2,3
   内部系统中,当电梯内部按下一个楼层按钮时,如果电梯停止或者同方向行驶可以到达的时候,系统把这个楼层设置为要停靠楼层,这里可以使用bool 类型数组beth[i]进行测试(停靠则设为true)要停靠的存放楼层号。如果非同方向(可以标志direction[4]测试)任务,则将它放入“反方向数组”中。电梯设置计时器second,计算开关门时间。并且采用调用的方式,不断刷新内部电梯状态,一旦符合停靠要求,迅速作出调整(包括灯亮暗的问题:电梯到达某一层,内部与该层相符的按钮灭,同时外部与电梯运行方向相符的灯灭)。
在内部设计中,还需要设置楼层号floor[4](0<< <<20),四部电梯采用数组变量,易于区分。
   外部系统中,当电梯外部有按下上楼或者下楼的按键时,在总控制处相当于同时按下4部电梯,这个时候从4部电梯中调度一部进行相应.具体的算法是优先选择运行方向与按钮一致并且要经过这层楼的电梯(按距离最近优先),或者选择停止电梯。
   在这里打算主要通过direction 和floor 作为内层系统和外层系统交互的一个数据接口。

原文地址:https://www.cnblogs.com/caoyusongnet/p/3589591.html