结对项目开发-电梯调度

电梯调度需求分析

一、电梯调度设计背景:

在一个办公大楼,配置:大厦有21层,电梯4部,很多乘客(乘客重量:平均70公斤,最大120公斤,最小45公斤)日常使用这些电梯 。21层的大厦,从地面0,1,2,3... ...20。地板0是地下停车场水平,1楼是大堂的水平,大多数人进出这栋大厦都要经过这两层。

二、电梯调度设计要求:

2.1设计一套接口和类定义这样一种算法,提供者可以提供他/她实现“电梯调度程序”类。
2.2 避免出现 “公共汽车”最坏情况的算法。该算法把电梯作为总线,它从底部到顶部,停在每一层楼,打开门,让人们进出,然后把门关上,继续前进。之后到达顶层,它会下去。该算法能够满足所有的要求,但它显然不是最快的算法。
2.3 代码要求:它具有生成0 (零)的代码分析警告和错误。它必须是正确的。
2.4一个关于电梯调度提示:当总重量在45公斤的最大限制,或乘客的数量已经在最大,电梯不需要更多的外部请求停止。
2.5具有良好人机交互界面的电梯运行系统,实现上下楼的快捷、安全、方便。

三、电梯调度分析
首先电梯分为三个状态,向上运行状态,向下运行状态,停止状态。
1:当无任何操作时,电梯总是停止在一楼。当电梯到达某一楼层后,电梯内无乘客则返回一楼(中间不再有任何操作,否则停在所操作的楼层),若电梯停在了某一个楼层,如果之前电梯处于向上运行状态,并比之高的楼层有操作请求,则电梯继续运行直至到上层没有操作请求时再下降;如果之前电梯处于向下 运行状态,并比之低的楼层有操作请求,则电梯继续运行直至到底层,若有向上操作请求在上升,否则停止。
2:当电梯处于向上运行状态时,此时其余楼层有操作请求,那么电梯直至上层没有乘客请求时在下降。
3:当电梯处于向下运行状态时,此时其余楼层有操作请求,那么电梯直至下层没有乘客请求时在上升(此时上层有操作请求)
4:还需考虑电梯的运行速度,开门关门时间,电梯在运行时以一定的速度运行,当电梯到达指定楼层时开门,并且设置一合理时间使得乘客能全部走出。若无任何操作请求,达到这个时间之后则电梯自动关门。 

5:每部电梯设置最大载重,若超过最大载重时,则电梯门不能够关闭;当电梯达到最大载重时,将运行状态设置为“专线”——不响应任何其他操作直至有人出电梯。

其次,界面设计为显示与操作两部分,显示部分显示最大载重、所到楼层,操作部分有楼层按钮、开关门按钮。


四:开发日志
3.8 9:00-11:30 王伟光,曹锦锋在网上查阅资料,在网上参考了一些想法。
3.8 15:40-17:00 我们两个按照网上的一些想法初步确定了使用C#来编写,并且讨论了一些电梯调度过程中所出现的各种情况。
3.9 9:30-11:25 继续讨论电梯各种可能出现的情况,以及查阅一些资料,确定界面的一些细节。
3.9 20:30-21:20 撰写博客。

原文地址:https://www.cnblogs.com/caojinfeng/p/3590579.html