电梯模拟系统
- 格式:docx
- 大小:64.01 KB
- 文档页数:12
电梯系统模拟器需求说明书概述此项目希望通过软件模拟电梯系统的运行过程,来测试电梯控制程序的正确性、电梯系统效率等。
用户使用场景1、用户打开模拟器程序。
2、模拟器显示电梯系统初始状态(包括所有电梯的位置)3、用户点击电梯的楼的向上按钮。
4、模拟器显示对应的按钮灯亮起。
5、模拟器显示电梯的门打开。
(假设电梯已经在楼)6、模拟器显示电梯的楼按钮灯熄灭。
7、模拟器显示电梯的门关闭。
8、用户点击电梯内部按键的楼按钮。
9、模拟器显示电梯内部按键的楼按钮灯,亮起。
10、模拟器显示电梯向上运行。
11、模拟器显示电梯在楼停止。
12、模拟器显示:电梯内部按键的楼按钮灯,熄灭。
13、模拟器显示:电梯开门。
14、模拟器显示:电梯关门。
功能简介此应用包含模拟器、电梯控制程序两部分。
模拟器的主要功能是:1)通过图形化的界面直观的显示电梯系统的状态,如电梯的位置、各种按键灯的亮灭。
2)提供用户与电梯系统交互的途径,如用户可以点击电梯里的楼键。
3)按照电梯控制程序的指令,执行动作,并在图形界面上反应出来。
电梯控制程序的功能主要是:根据电梯系统的运行状态、用户的输入,向模拟器发送控制指令,来控制电梯的上下、开关门等。
电梯控制程序是可替换的,通过替换电梯控制程序,可以模拟和测试各种不同的算法。
详细功能要求模拟器部分可以模拟一座具有层楼的大厦内部电梯的同时运行的过程。
模拟的内容包括:电梯的上下运动、电梯的开关门。
要求支持的楼层数() 和电梯数() 都可以设置。
支持的用户操作:1、某个楼层的每个电梯有上、下两个按键。
用户可以点击这两个按键2、每个电梯内部有一个键盘,键盘上有个按键对应每个楼层,并且有开、关门键。
应用提供操作方法模拟点击每个按键。
3、模拟器按照电梯控制程序的指令,可以显示每个按键灯的亮起和熄灭状态。
4、用户应该可以在任何时候,点击任何按键。
5、用户点击任一按键后,模拟器将此事件发送给电梯控制程序。
为控制程序提供的功能:1、接受来自控制程序的开关某个按键灯指令,并修改界面上显示的按键灯的状态。
目录1.课程设计简介 (1)1.1简介 (1)1.2设计总电路图 (2)1.3实物图 (4)2.设计题目 (4)3.总体设计 (6)3.1电梯运行模拟控制器的总体运作流程 (6)3.2电梯运行模拟控制器各模块关系 (6)4.详细设计 (7)6.1基本的IO配置(输入/输出模式) (7)输出模式配置 (7)输入模式配置 (7)6.2外部中断配置 (8)定时器中断 (8)外部按键输入中断 (8)6.3电梯运行逻辑设计(软件编码) (9)数据结构设计 (9)功能接口设计 (9)5.体会与总结 (10)6.附录 (11)源代码 (11)参考文献 (26)1.课程设计简介1.1简介本设计使用STM8S系列作为主控芯片,使用矩阵键盘、若干个LED和两位数码管作为外设。
其中矩阵键盘用来模拟电梯按键,若干个LED灯用来模拟电梯的运动方向、楼层的指示灯(电梯内部楼层对应的按钮),两位的数码管用于显示电梯目前所处楼层。
1.2设计总电路图(基于AD这个平台生成的PCB图与原理图)原理图原理图PCB图PCB图1.3实物图实物图2.设计题目设计一个电梯运行模拟控制器,其系统框图如下图所示:电梯运行模拟控制器框图功能要求:能够模拟控制一个8层楼梯的电梯的运行。
具体要求如下: 1.电梯平时没有接到命令时候或者执行完命令后停在1楼,门关闭.。
2.电梯运行速度2秒一层楼3.电梯门在开启的情况下没有收到命令10秒中后自动关闭。
在运动中门必须关闭,(最后3秒可以设置音响警告信号)4.一句话,电梯控制器满足实际电梯的运行要求,电梯在运行的时候可以最多记住8个命令。
并且综合考虑公平性(先按键先执行)和有效性(完成任务的总的行走路径最短)来执行。
要求完成的内容:1.完成硬件电路的设计与安装调试(可借助单片机实验电路板),并用CAD 软件画出原理电路图。
2.画出流程图,编写并调试驱动程序。
3.撰写设计报告。
MCU1位七段数码管,3个LED 灯(显示当前电梯所处楼层与运行方向以及键盘以及对应的LED 灯(1-8,开门,关门)每个数字按键对应一个LED 灯,按下按键灯亮,8个LE D灯显示电梯所2个灯显示当前电梯8×2-2=14个按键表示每层楼入口的电梯按键3.1 电梯运行模拟控制器的总体运作流程等待外部信号整体配置初始化收到中断信号?执行电梯处理逻辑是否电梯运行模拟控制器整体运作流程3.2 电梯运行模拟控制器各模块关系电梯运行模拟控制器各模块关系图6.1基本的IO配置(输入/输出模式)输出模式配置对于输出模式IO的配置,用到的外设(LED灯,数码管,矩阵键盘),在代码中都有对它们进行对应的配置。
电梯调度模拟系统测试方案—080607A小组学号:******姓名:***学号:*********测试方案制作小组:080607班A小组编写目的:在软件测试过程中,人们通常感兴趣于测试的结论部分,而忽略了对测试的过程做一个设计,这样会导致很多意想不到不可避免的失误,所以在进行软件测试之前做一个测试的概要分析非常重要。
测试概要是对软件测试制作一个详细可行的操作过程,以便在软件测试过程中做到有的放矢,避免因乱枪大鸟而引起的各种失误情况。
具体对测试的方法,测试的工具,测试的操作流程,测试过程等做规划。
项目背景:该项目以申老师的课程设计为前提,选择了对升降式电梯进行系统性研究的测试算法。
测试环境与配置(测试的工具):操作系统:Microsoft Windows XP Professional Service Pack 3应用软件:Microsoft Visual C++ 6.0测试操作员:岳蕾测试时间:2010-11-30测试方法:主测:黑盒法优化:白盒法测试操作流程:1 对项目背景做一个简单的了解2 熟悉升降式电梯系统的编译方法,并能实际掌握该电梯的操作3 了解测试环境4 依照测试概要中对测试过程的基本实设计规划流程进行测试操作5 测试完后鉴别软件性能进行总结说明测试过程:1黑盒测试法A.数据;B.字母;C.负数;D.特殊字符;E.字母与特殊字符;F.字母和数字;G.空格和其他字符组合;H.其他非法输入2 业务逻辑测试A.运行测试;B.优先级测试(向上运行);C.优先级测试(向下运行);D.优先级测试(不分运行方向);E.压力测试3 测试注意事项测试过程中要先对测试结果进行一个预期猜想,然后测试后记录实际结果,对两者结果作比较分析,从而发现其中的出入,做记录。
该软件两种版本:v1.0,v2.0。
在测试中分别用两个版本进行测试,发现优劣,记录个软件相关测试后信息。
设计员:080607114 任哲瑶2010-11-28。
c语言模拟电梯程序我们需要定义电梯的状态。
电梯可以处于静止、上升或下降三种状态中的一种。
我们可以使用一个整型变量来表示电梯的状态,0表示静止,1表示上升,-1表示下降。
接下来,我们需要定义电梯的位置。
电梯可以停在不同的楼层,我们可以使用一个整型变量来表示电梯当前所在的楼层。
我们需要定义一个数组来记录每一层楼的乘客请求。
数组的每一个元素表示该楼层的请求状态,0表示无请求,1表示有上升请求,-1表示有下降请求。
在主程序中,我们可以使用一个循环来模拟电梯的运行过程。
在每一次循环中,我们首先检查电梯当前所在的楼层是否有乘客请求。
如果有请求,我们根据电梯的状态和乘客的请求来确定电梯下一步的动作。
如果电梯处于静止状态,我们可以根据乘客的请求来确定电梯的状态。
如果有上升请求,我们将电梯的状态设为上升;如果有下降请求,我们将电梯的状态设为下降。
如果电梯处于上升状态,我们需要找到最接近电梯当前位置且有上升请求的楼层,然后将电梯移动到该楼层。
如果没有找到符合条件的楼层,则将电梯状态设为静止。
如果电梯处于下降状态,我们需要找到最接近电梯当前位置且有下降请求的楼层,然后将电梯移动到该楼层。
如果没有找到符合条件的楼层,则将电梯状态设为静止。
在每一次循环结束时,我们将输出电梯的状态和位置,以及每一层楼的乘客请求状态。
这样可以让用户清楚地了解电梯的运行过程。
通过以上的步骤,我们可以完成一个简单的电梯模拟程序。
当然,实际的电梯系统要复杂得多,包括更多的功能和安全性考虑。
但是通过这个简单的模拟程序,我们可以初步了解电梯的运行原理和编程实现。
总结一下,本文介绍了如何使用C语言编写一个简单的电梯模拟程序。
通过定义电梯的状态和位置,以及乘客的请求状态,我们可以模拟电梯的运行过程。
通过循环判断电梯的状态和乘客的请求,我们可以确定电梯下一步的动作。
最后,我们输出电梯的状态和位置,以及每一层楼的乘客请求状态,以展示电梯的运行过程。
希望本文对读者理解电梯的工作原理和使用C语言实现电梯模拟程序有所帮助。
电梯调度模拟系统测试报告—080607A小组学号:080607姓名:岳蕾学号:080607120测试报告1.引言(1)编写目的测试分析报告是在测试分析的基础上,对测试结果以及测试的数据等加以记录和分析总结。
它也是测试过程中的一个重要环节,同时,它也是对软件性能的一个总的分析和认可及对不足之处的说明。
因此,测试分析报告对今后软件功能的加强,不足之处的弥补等起着十分重要的提纲作用。
测试是“为了发现程序中的错误而执行程序的过程”。
测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。
目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明,设计和编码的最后复审,也是不可缺少的关键步骤。
(2)项目背景此项目是由算法申老师依照学校教学计划提出,要求对升降式电梯进行合理调度设计相关的算法。
由080607班A小组负责对此项目开发。
(3)定义软件原始版本:V1.0;软件修正版本:V2.0;总体设计:构造模块,设计业务逻辑,设计数据结构等;接口设计:定义输入输出接口;定义数据的传送方式;数据结构设计:定义数据的组织方式和信息的传递形式;用户界面设计:提供用户输入和显示输出信息的用户和程序的接口;出错设计:定义异常类型及相应的出错处理;(4)参考资料1.王长元,李晋惠等。
软件工程西安:西安地图出版社,20032. 任务概述(1)目标测试是“为了发现程序中的错误而执行程序的过程”,测试的目的就是在软件正式投入生产性运行之前尽可能多的发现软件中的错误。
(2)测试环境操作系统:Microsoft Windows XP Professional Service Pack 3编译环境:Microsoft Visual C++ 6.0(3)条件与限制对于输入数据,合法输入只能是由0-9数字组合而成的数据;不合法的数据包括:纯字母﹑负数﹑特殊字符﹑字母和特殊字符的组合﹑字母和数字的组合﹑空格和其他字符的组合以及其他无意义的输入。
基于MCGS的电梯仿真模拟控制系统作者:栾荣华郭志礼崔守娟来源:《农业科技与装备》2020年第04期摘要:为及时排除电梯运行故障,采用MCGS组态应用软件设计三层电梯的模拟系统,通过模拟电梯运行过程来监控处理系统的运行情况。
模拟运行结果显示,模拟仿真系统实时性强,机械和电气故障显示更为直观,具有良好的并行处理性能。
关键词:MCGS;电梯;设计;模拟运行;控制系统中图分类号:TU85 文献标识码:A 文章编号:1674-1161(2020)04-0036-03电梯在日常生活中的应用十分广泛,可以让人们快速到达目标楼层,在高层建筑中应用最多。
虽然电梯能给人们带来便捷,但也存在不少问题,例如运行时突然停止、电梯门未关便开始运行等。
为此,采用MCGS组态应用软件设计三层电梯的模拟系统,较为直观地模拟电梯运行过程,通过组态软件的模拟运行图像监控处理系统的运行情况,为排除电梯运行故障提供便利。
1 电梯结构电梯的结构分为四大空间与八大系统。
四大空间包括机房、井道及底坑、轿厢和层站;八大系统包括曳引系统、导向系统、轿厢、门系统等。
1.1 四大空间四大空间指机房部分、井道及底坑部分、轿厢部分、层站部分,具体结构见图1。
1.2 八大系统電梯的八大系统分为曳引系统、导向系统、轿厢、门系统、重量平衡系统、电力拖动系统、电气控制系统和安全保护系统,详见图2。
曳引系统的基本功能是输入和传递驱动力,使电梯得以运行。
导向系统的主要功能是限制轿厢及对重的活动自由度,促使轿厢及对重只能顺着导轨作上升或下降运动。
轿厢是运送旅客及货物的电梯器件,由轿厢架和轿厢体构成。
门系统的主要功能是封闭和开启层站和轿厢入口。
重量平衡系统的主要功能是平衡轿厢重量,使电梯传动正常。
电力拖动系统可以控制电梯运行速度。
电气控制系统对电梯的运行进行操纵与控制。
安全保护系统对电梯的安全进行保障,防止危及乘客的事故发生。
2 基于MCGS的电梯仿真模拟控制系统上位机选用MCGS(嵌入版,6.801.0002)嵌入式组态软件,实现窗口之间的逻辑控制,以及窗口内的基本功能,其中按键应用程序、文本框等图像对象的基本功能由MCGS的脚本程序完成。
摘要本文介绍了基于单片机的电梯控制系统,硬件部分主要由单片机最小系统模块、电梯内外电路按键模拟检测模块、电梯外请求发光管显示模块、楼层显示数码管模块、电梯上下行模块及模拟传感器模块等5部分组成。
该系统采用单片机(AT89C51)作为控制核心,内外均使用按键按下与否引起的单片机相应端口电平变化的原理,作为用户请求信息发送到单片机,单片机根据判断的结果最终驱动步进电机做相应的运动,在运动的过程中,单片机依照请求信息通过模拟的传感器使步进电机停止运动,并利用彩灯作为上升和下降的状况显示,七段数码管实时显示当前楼层,完成整个请求和响应的过程。
软件部分使用汇编语言实现,利用查询方式来检测用户请求的按键信息。
根据电梯运行到相应楼层时,模拟按键引起的电平变化,进行判断和执行实现电梯的控制,并且将程序模块化,方便了修改和调用。
硬件设计简单可靠,结合软件,基本实现了四层电梯的模拟运行。
关键词:单片机,AT89C51,电梯控制,步进电机目录摘要 (I)目录 (II)第1章绪论 (1)1.1电梯的研究背景及意义 (1)1.2 电梯的国内外发展状况 (1)第2章电梯设计任务与要求 (2)2.1设计任务 (2)2.2设计要求 (2)第3章总体设计方案 (3)3.1设计思路 (3)3.2总体设计框图 (3)第4章电梯控制系统 (4)4.1电梯控制系统 (4)4.2主要硬件设计器件介绍 (5)4.3 软件设计 (9)第5章个人心得体会 (12)参考文献 (14)致谢 (15)附录I: (16)附录II: (18)第1章绪论1.1电梯的研究背景及意义电梯是高层宾馆、商城、住宅、多层厂房和仓库等高层建筑不可缺少的垂直方向的交通工具。
随着社会的发展,建筑物规模越来越大,楼层越来越多,对电梯的可靠性、舒适感和美学等方面的要求也有了更高的要求。
电梯是集机电一体的复杂系统,涉及机械传动、电气控制和土建等工程领域,而对现代电梯而言,应具有高度的安全性。
电梯模拟系统Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT目录一:问题描述—————————————————————————第2页二:问题分析—————————————————————————第2页三:数据结构—————————————————————————第2页四:算法设计—————————————————————————第4页五设计与调试分析———————————————————————第6页六:体会及建议————————————————————————第7页七:参考文献—————————————————————————第7页八:原代码——————————————————————————第7页一:问题描述设计一个电梯模拟系统。
这是一个离散的模拟程序,因为电梯系统是乘客和电梯等“活动体”够成的集合,虽然他们彼此交互作用,但是他们的行为是基本独立的。
在离散的模拟中,一模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。
二:问题分析(1)、模拟某校五层教学楼的电梯系统。
该楼有一个自动电梯,能在每层停留。
五个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来该层候命。
五个楼层从下到上的编号为:0、1、2、3、4。
除了地下层外,每一层都有一个要求向下的按钮除了第四层外,每一层都有一个要求向上的按钮。
对应的变量为:CallUp[0..3]和CallDown[1..4]。
电梯内的五个目标层按钮对应的变量为:CallCar[0..4]。
(2)、电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。
(3)、乘客可随机地进出于任何层。
对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
对于在楼层内等待电梯的乘客,将插入在等候队列里,每一层有两个等候队列,一队要求向上,一队要求向下,用链队列来实现。
对于在电梯内的乘客,用五个乘客栈来实现,该乘客要去哪一层,就把他放在相应编号的栈中,对应变量为EleStack[0…4]。
(4)、模拟时钟从0开始,时间单位为秒。
人和电梯的各种动作均要耗费一定的时间单位(简记为t):有人进出时,电梯每隔40t测试一次,若无人进出,则关门关门和开门各需要20t每个人进出电梯均需要25t电梯加速需要15t如果电梯在某层静止时间超过300t,则驶回1层候命。
(5)、按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列。
三:数据结构1、乘客类型反映乘客的所有属性。
ADT Client数据对象:D={a i∈乘客信息,I=1,2,…,n,n≥0}数据关系:R={<a i-1,a i>|a i-1,a i∈D,i=2,…,n}基本操作:PrintClientInfo(Client const &e,ClientStatus)操作结果:输出乘客信息。
CreatClient(Client *&p)操作结果:生成新的乘客。
DestoryClient(Client *&p)操作结果:该乘客离开系统。
GoAbove(Client const &e)操作结果:判断该乘客是否去往高层。
CInfloor(Client const &e)操作结果:返回乘客进入的楼层。
CInTime(Client const &e)操作结果:返回乘客进入时间。
COutfloor(Client const &e)操作结果:返回乘客进入时间。
}2、乘客栈类型电梯内的乘客用乘客栈表示,去不同楼层的乘客放在不同的栈中。
ADT Estack数据对象:D={a i∈乘客信息,I=1,2,…,n,n≥0}数据关系:R={<a i-1,a i>|a i-1,a i∈D,i=2,…,n}基本操作:略。
}3、等候队列类型在电梯外等待的乘客用等待队列表示。
每层各有两个等待队列,分别为上楼队列和下楼队列。
与一般队列不同的是在基本操作中加入了放弃操作CGiveUp(WQueue &Q,int floor)。
4、电梯类型表示电梯的各个属性和所有动作。
ADT Elevator数据对象:D={a i∈电梯信息,I=1,2,…,n,n≥0}基本操作:InitEle(Elevator &E)操作结果:初始化电梯类型。
DestoryEle(Elevator &E)操作结果:销毁电梯类型。
EleDecide(Elevator &E,WQueue w[Maxfloor+1][2])操作结果:电梯动作决策。
ElevatorRun(Elevator &E,WQueue w[Maxfloor+1][2]){操作结果:电梯状态转换。
CountOver(Elevator &E)操作结果:判断电梯计时是否完成。
EleFloor(Elevator const &E)操作结果:返回电梯所在的层。
EleStatus(Elevator const &E)操作结果:返回电梯状态。
RequireAbove(Elevator const &E)操作结果:判断是否有高层请求。
RequireBelow(Elevator const &E)操作结果:判断是否有低层请求。
EleAchieved(Elevator &E)操作结果:判断电梯是否要停于当前层。
EleOpenDoor(Elevator &E)操作结果:判断电梯是否要开门。
}5、高楼模块实现电梯和乘客之间的互交功能。
包括:InOut(Elevator &E,WQueue w[Maxfloor+1][2])操作结果:进行乘客的进出电梯活动。
NewClient(Elevator &E,WQueue w[5][2])操作结果:进入新乘客。
PrintStatus(Elevator &E,WQueue w[5][2])操作结果:输出当前状态。
Print(Elevator &E,Action a)操作结果:输出电梯动作信息。
四:算法设计1:本程序包含6个模块:(1)主程序模块(2)乘客模块(3)乘客栈模块(4)电梯模块(5)等待队列模块(6)高楼模块:实现电梯和乘客之间的互交。
各模块之间的调用关系如下:2:主程序主程序主要处理两类事件:乘客事件和电梯事件。
除此之外,主程序还处理各个模块的初始化和销毁工作,以及电梯状态的输出。
乘客事件包括新乘客到达事件,乘客放弃等待事件,乘客进出电梯事件。
电梯事件包括电梯运行事件。
3:详细设计#define NULL 0 若有高层请求:上升;2.若无高层请求:转下降期,下降。
2)若电梯在下降期:1. 若有低层请求:下降;2. 若无有低层请求:转上升期,上升。
判断电梯是否要停于当前层函数EleAchieved的算法:1.该层的CallCar为1;2.该层在上升(下降)期有上升(下降)请求(判断CallUp或CallDown);3.上升(下降)期高(低)层没有请求而该层由下降(上升)请求,要转换运行时期。
判断电梯动作函数ElevatorRun的算法:1.若电梯在Opening状态,则转至Opened状态。
2.若电梯在Opened状态,若无人进出,则转至Closing状态。
3.若电梯在Closed状态,则根据电梯请求情况转至相应状态。
4.若电梯在Closing状态,则转至Closed状态。
5.若电梯在Moving状态,若达到目标层,则转至Decelerate状态。
否则,继续移动。
6.若电梯在Decelerate状态,则设定电梯时期,并转至Opening状态。
7.若电梯在Waiting状态,在判断是否等待超时,若超时则向第一层移动。
否则,判断电梯请求情况并转至相应状态。
五:设计与调试分析在本程序中如何判断电梯的动作最为关键。
此外,合理划分各个模块和处理各个模块之间的联系也非常重要。
在电梯调度方面不能按照预定的想法实现,所以和现实中的电梯有出入。
没有显示电梯的运行到哪里,而是用有乘客进入电梯时显示乘客进入到哪层楼来告知电梯运行到几楼。
开门,关门时需要精心思考,此处记时及判断是否要开门也是难点,所以这些看似很平常的动作却是最难也是最容易错的地方。
此外在指针的使用方面也是难点,很多地方比如乘客进队出队以及放弃乘坐电梯时均涉及指针的使用,也经常在这些地方通不过编译。
为了便于控制循环,设计了电梯运行时间,则在时间到达时即可退出系统。
由于开始为了简化程序而定义了很多变量,结果发现并不实际,有的变量仅是在某些函数中赋予其值罢了,于是就将这些变量删除,比如开始按照提示设置了D1—表示人们正在进出电梯等等。
六:体会及建议我们应重视编程思想的培养,语言很重要,但究竟只是工具,思想才是精髓。
通过阅读书中的各种数据结构及相应算法的代码来吸收书中的思想。
我们可以利用各种途径来学习认识一种功能的实现,但是最终的串联编写还是应该靠自己的思路去不断完善,在这段时间中我们有充分的时间去了解我们完成任务所需的知识内容,而我们也应该去认真完成。
在这阶段的设计过程中,编写时总是出现原来未曾遇到过的各种错误,很难解决,常常受到很长时间的困扰,虽然这属于纯粹的个人能力体现,属于自学运用,但老师并不能在有问题时及时给与有效建议。
而我们的所学有限,考虑问题不是很全面,解决问题也总是难以有高效的解决方案只能通过不断的实践去比较结果。
七:参考文献1:严蔚敏等数据机构(C语言版)清华大学出版社2:谭浩强C语言程序设计清华大学出版社八:原代码#include <>#include <>#include <>#include <>#include <>#include <>#include <>n",,;break;case GiveUp: printf("\t%d号乘客放弃等待.\n",;break;case Out: printf("\t%d号乘客走出电梯.\n",;break;case In:printf("\t%d号乘客走进电梯,要去第%d层.\n",,;break;default:break;};}Status CreatClient(Client *&p){int d;p=new Client;if(!p) return OVERFLOW;p->ClinetID=++ID;printf("%d所能容忍的等待时间:",ID);scanf("%d",&d);p->GivepuTime=d;p->InTime=Time;printf("下一乘客要到达的时间:");scanf("%d",&d);InterTime=d;printf("所要到达的楼层:");scanf("%d",&d);p->Outfloor=d;while((p->Infloor=rand()%(Maxfloor+1))==p->Outfloor);PrintClientInfo(*p,New);return OK;}Status DestoryClient(Client *&p){delete p;p=NULL;return OK;}Status GoAbove(Client const &e){if> return TRUE;else return FALSE;}Status CInfloor(Client const &e){return ;}Status CInTime(Client const &e){return ;}Status COutfloor(Client const &e){return ;}#define STACK_INIT_SIZE 10 n");break;case DoorClosed:printf("%\t电梯门已关闭.\n");break;case Achieved:printf("%\t电梯已到达第%d层。