问题描述: 模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。九个楼层由下至上依次称为地下一层、第一层、第二层、„„第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。 乘客可随时地进出于任何层。对于每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。 模拟时钟从 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()来计时,当有输入时,记录下开始输入的时间和结束输入的时间,之后就可以算出动作的时间了。 a[1000] mytime *next 事件内容 时间发生的时间 下一个事件指针 b.将各个动作发生的时间进行处理,算出每个事件的发生顺序和时间。 c.将各个数据插入链表,即可实现题目要求。 设计表示法 (1)过程或函数调用的关系图 main yunxing print ListInsert LinListSort 各个动作函数(n 个) ge) ListInitiate Destroy (2)基于数据结构的操作组 主要在于 y u n x in g()函数,它将各个时间动作处理成时间事件,并将事件插入到链表中。 (3)过程与接口规格说明 无 实现注释 未实现。 详细设计 无 调试分析 用户手册 测试结果 没有成功 源程序清单 #include #include #include #include typedef struct //规定最大乘坐人数为 13 { int lc;//电梯所在楼层 int rs;//电梯中的人数 int men;//门的状态 0 关 1 开(假设关了门时除了在第一层等人时之外,都在移动) }dianti; typedef struct { int rrsj;//一...