下载此文档

电梯模拟系统样本.doc


文档分类:汽车/机械/制造 | 页数:约32页 举报非法文档有奖
1/32
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/32 下载此文档
文档列表 文档介绍
目录一:问题描述—————————————————————————第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)、按时序显示系统状态改变过程:发生全部人和电梯动作序列。三:数据结构乘客类型反应乘客全部属性。ADTClient数据对象:D={ai∈乘客信息,I=1,2,…,n,n≥0}数据关系:R={<ai-1,ai>|ai-1,ai∈D,i=2,…,n}基础操作:PrintClientInfo(Clientconst&e,ClientStatus) 操作结果:输出乘客信息。CreatClient(Client*&p) 操作结果:生成新乘客。DestoryClient(Client*&p) 操作结果:该乘客离开系统。GoAbove(Clientconst&e) 操作结果:判定该乘客是否去往高层。CInfloor(Clientconst&e) 操作结果:返回乘客进入楼层。CInTime(Clientconst&e) 操作结果:返回乘客进入时间。COutfloor(Clientconst&e) 操作结果:返回乘客进入时间。}乘客栈类型电梯内乘客用乘客栈表示,去不一样楼层乘客放在不一样栈中。ADTEstack数据对象:D={ai∈乘客信息,I=1,2,…,n,n≥0}数据关系:R={<ai-1,ai>|ai-1,ai∈D,i=2,…,n}基础操作:略。}等候队列类型在电梯外等候乘客用等候队列表示。每层各有两个等候队列,分别为上楼队列和下楼队列。和通常队列不一样是在基础操作中加入了放弃操作CGiveUp(WQueue&Q,intfloor)。电梯类型表示电梯各个属性和全部动作。ADTElevator数据对象:D={ai∈电梯信息,I=1,2,…,n,n≥0}基础操作:InitEle(Elevator&E) 操作结果:初始化电梯类型。DestoryEle(Elevator&E) 操作结果:销毁电梯类型。EleDecide(Elevator&E,WQueuew[Maxfloor+1][2]) 操作结果:电梯动作决议。ElevatorRun(Elevator&E,WQueuew[Maxfloor+1][2]){ 操作结果:电梯状态转换。CountOver(Elevator&E) 操作结果:判定电梯计时是否完成。EleFloor(Elevatorc

电梯模拟系统样本 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数32
  • 收藏数0 收藏
  • 顶次数0
  • 上传人读书之乐
  • 文件大小85 KB
  • 时间2020-10-31
最近更新