关于电梯算法的 C++实现
一.问题描述:
该实例是一个电梯载客问题,问题的描述如下:
某贸易中心共 10 层,设有载客电梯 1 部。为了处理问题的方便,有以下
的限定条件:
(1) 电梯的运行规则是:可到达每层。
(2) 每部电梯的最大乘员量均为 K 人(K 值可以根据仿真情况在 10~20
人之间确定)。
(3) 仿真开始时,电梯随机地处于其符合运行规则的任意一层,为空梯。
(4) 仿真开始后,有 N 人(>20 人)在该国际贸易中心的 1 层,开始乘梯
活动。
(5) 每个人初次所要到达的楼层是随机的,开始在底层等待电梯到来。
(6) 每个人乘坐电梯到达指定楼层后,再随机地去往另一楼层,依此类
推,当每人乘坐过 L 次(L 值可以根据仿真情况在 3~10 次之间确定)电梯后,
第 L+1 次为下至底层并结束乘梯行为。到所有人结束乘梯行为时,本次仿真结
束。
(7) 电梯运行速度为 S 秒/层(S 值可以根据仿真情况在 1~5 之间确
定),每人上下时间为 T 秒(T 值可以根据仿真情况在 2~10 之间确定)。
(8) 电梯运行的方向由先发出请求者决定,不允许后发出请求者改变电
梯的当前运行方向,除非是未被请求的空梯。
最后开发的软件要求:
(1) 设计一个易于理解的界面,动态显示各梯的载客与运行情况(上、下或
停止),动态显示各楼层的人员停留情况与要求乘梯情况;动态显示从仿真开始
到目前的时间。
(2) 可变动的参数(K、N、M、L、S、T)应在程序开始时从对话框输入
二.系统分析与设计:
采用 OOP 分析的关键就是要对问题的对象空间的分类(类的分析与设计,
这一点跟面向过程的流程图设计不太一样),也就是在整个系统中包括那几个
类,每个类包含那些属性特征和行为特征。对于上面的电梯问题,很明显有两
个类:即电梯类和乘客类(从所设计到的对象描述可以观察到,但是有的问题
评论1