- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计专业:计算机科学与技术班级:计算机10-3班学号名:沈宏伟题目:设计一个模拟电梯工作过程的图形演示系统。要求所设计的电梯符合市场上大多数系统的要求。思路和原理:确定电梯的类型。其中包括:电梯所在层,电梯内人数,电梯当前状态,电梯运行时期,电梯计时器,每层的Up按钮,每层的Down按钮,电梯内的目标层按钮,同时,还需要造一个乘客栈,将要去不同楼层的人放在不同的栈中。确定乘客类型。其中包括:乘客编号,乘客将要去的楼层数,该乘客进入时间,所能容忍的等待时间以及该乘客进入的楼层。通过进行乘客的进出电梯活动来将两者联系起来。首先,每层都有两个等待队列:上楼队列和下楼队列。其次,此活动包括乘客时间与电梯事件,通过相同的参数将其相连接。乘客事件包括:新乘客进入事件,乘客放弃事件放弃,乘客进出事件。电梯事件包括:判断电梯的状态。按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列。根据实验要求,定义时间:上升时间,下降时间,开门关门时间,进出电梯时间,最高层,最低层。算法设计:设定乘客栈的抽象数据类型定义ADT Stack {数据对象:数据关系:基本操作:InitStack(S);操作结果:构造一个空栈DestroyStack(S);初始条件:栈S已存在操作结果:销毁栈SClearStack(S);初始条件:栈s已存在操作结果:把S置为空StackEmpty(S);初始条件:栈s已存在。操作结果:若栈S为空,则返回TRUE,否则返回FALSEStackLength(S); 初始条件:栈s已存在。操作结果:返回栈S的长度GetTop(S, e);初始条件:栈s已存在。操作结果:返回栈顶元素Push(S, e);初始条件:栈s已存在。 操作结果:在栈S的栈顶插入新的栈顶元素e。Pop(S, e);初始条件:栈s已存在。 操作结果:删除S的栈顶元素,并以e返回其值。PrintStack(S);初始条件:栈s已存在。操作结果:输出栈乘客类型ADT Client数据对象:D={ai∈乘客信息,I=1,2,…,n,n≥0}数据关系:R={ai-1,ai|ai-1,ai∈D,i=2,…,n}基本操作:PrintClientInfo(Client const e,ClientStatus s)操作结果:输出乘客信息。CreatClient(Client *p)操作结果:生成新的乘客。DestoryClient(Client *p)操作结果:该乘客离开系统。GoAbove(Client const e)操作结果:判断该乘客是否去往高层。CInfloor(Client const e)操作结果:返回乘客进入的楼层。CInTime(Client const e)操作结果:返回乘客进入时间。COutfloor(Client const e)操作结果:返回乘客进入时间。}电梯类型表示电梯的各个属性和所有动作。ADT Elevator数据对象:D={ai∈电梯信息,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)操作结果:判断电梯是否要开门。}实现电梯和乘客之间的相互作用。包括: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)操作结果:输出电梯动作信息。具体实现:电梯类型基本操作: void InitEle(Elevator E) {int
文档评论(0)