问题描述:
模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。
九个楼层由下至上依次称为地下一层、第一层、第二层、……第八层,其中第
一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。
乘客可随时地进出于任何层。对于每个人来说,他有一个能容忍的最长等
待时间,一旦等候电梯时间过长,他将放弃。
模拟时钟从 0 开始,时间单位为 0.1 秒。人和电梯的各种动作均要消耗一定
的时间单位(简记为 t),比如:有人进出时,电梯每隔 40t 检测一次,若无人
进出,则关门;关门和开门各需要 20t;每个人进出电梯均需要 25t;如果电梯
在某层精致时间超过 300t,则驶回 1 层候命。
基本要求:
按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。
需求分析:
(1)用系统计时,每当有新的动作要输入时要暂停计时,等输入完成后即可继
续计时。
(2)输入各个动作,最后,输入完毕后,可以保存所有动作序列,并有序输出。
设计:
设计思想
(1)存储结构
根据问题描述,可采用单链表结构。
结点描述:
定义如下:
typedef struct Node
{
char a[1000];//信息
int mytime;//时间
struct Node *next;
}SLNode;
(2)基本思想
a.用 time.h 里面的 clock()来计时,当有输入时,记录下开始输入的时间和结束
输入的时间,之后就可以算出动作的时间了。
评论1