模拟电梯系统程序设计

上传者: hc8758 | 上传时间: 2021-06-23 08:47:19 | 文件大小: 1.06MB | 文件类型: RAR
八、 实验内容和要求: 要求根据下面的功能说明描述实现模拟电梯控制软件 (一)电梯配置 1. 共有1个电梯 2. 共有maxfloor层楼层。maxfloor=9。 3. 中间层每层有上下两个按钮,最下层只有上行按钮,最上层只有上行按钮。每层都有相应的指示灯,灯亮表示该按钮已经被按下,如果该层的上行或者下行请求已经被响应,则指示灯灭 4. 电梯内共有maxfloor个目标按钮,表示有乘客在该层下电梯。有指示灯指示按钮是否被按下。乘客按按钮导致按钮指示灯亮,如果电梯已经在该层停靠则该按钮指示灯灭 5. 另有一启动按钮(GO)。当电梯停在某一楼层后,接受到GO信息就继续运行。如果得不到GO信息,等待一段时间也自动继续运行。 6. 电梯内设有方向指示灯表示当前电梯运行方向。 说明:由于本次实验不使用可视化框架,所以无法作到从图形界面上获取按钮请求。因此电梯按钮的设计,不在图形界面上体现,仅用来设计键盘的模拟输入。 (二)电梯的运行控制 1.电梯的初始状态是电梯位于第一层处,所有按钮都没有按下。 2.乘客可以在任意时刻按任何一个目标钮和呼叫钮。呼叫和目标对应的楼层可能不是电梯当前运行方向可达的楼层。 3. 如果电梯正在向I层驶来,并且位于I层与相邻层(向上运行时是I-1层或者向下运行时是I+1层)之间,则因为安全考虑不响应此时出现的I层目标或者请求。如果电梯正好经过了I楼层,运行在I楼层和下一楼层之间,则为了直接响应此时出现的I层目标或者请求,必须至少到达运行方向上的下一楼层然后才能掉头到达I楼层(假设掉头无须其它额外时间),如果I楼层不是刚刚经过的楼层则可以在任意位置掉头,此时掉头后经过的第一个楼层不可停。 4. 电梯系统依照某种预先定义好的策略对随机出现的呼叫和目标进行分析和响应。 5. 乘客数量等外界因素(可能导致停靠时间的长短变化)不予考虑。假设电梯正常运行一层的时间是5S,停靠目标楼层、上下乘客和电梯继续运行的时间是5S。 6. 当电梯停靠某层时,该层的乘客如果错误的按目标或呼叫按钮都不予响应。 7. 电梯停要某一层后,苦无目标和呼叫,则电梯处于无方向状态,方向指示灯全灭,否则电梯内某个方向的指示灯亮,表示电梯将向该方向运行。等接到“GO”信号后电梯立即继续运行。若无GO信号,则电梯在等了上下乘客和电梯继续运行时间后也将继续运行。 8. 当一个目标(呼叫)已经被服务后,应将对应的指示灯熄灭。 (三)电梯运行的控制策略 以下是几个候选策略: 1.先来先服务策略: 将所有呼叫和目标按到达时间排队,然后一一完成。这是相当简单的策略,只需要设计一个将呼叫和目标排队的数据结构。因为该策略效率也很低,所以没有实际的电梯采用这种策略。 2. 顺便服务策略: 顺便服务是一种最常见的简单策略。这种策略在运行控制中所规定的安全前提下,一次将一个方向上的所有呼叫和目标全部完成。然后掉转运行方向完成另外一个方向上的所有呼叫和目标。 可以采用设定目标楼层的办法来实现这个策略,即电梯向一个目标楼层运行,但这个楼层可以修改。具体策略如下: 1) 修改目标楼层的策略: a.如果电梯运行方向向上,那么如果新到一个介于当前电梯所处楼层和目标楼层之间,又可以安全到达的向上呼叫或者目标,将目标楼层修改为这个新的楼层。 b.如果电梯运行方向向下,那么如果新到一个介于当前电梯所处楼层和目标楼层之间,又可以安全到达的向下呼叫或者目标,将目标楼层修改为这个新的楼层。 2)确定新的目标楼层: 如果电梯向上运行,当它到达某个目标楼层后,则依照以下顺序确定下一个目标楼层: a.如果比当前层高的楼层有向上呼叫或者目标,那么以最低的高于当前楼层的有向上呼叫或者目标的楼层为目标。 b.如果无法确定目标楼层,那么以最高的向下呼叫或者目标所在楼层为电梯当前目标楼层。 c.如果无法确定目标楼层,那么以最低的向上呼叫所在楼层为电梯当前的目标楼层。 d.如果仍然不能确定目标楼层(此时实际上没有任何呼叫和目标),那么电梯无目标,运行暂停。 如果电梯向下运行,依照以下顺序确定下一目标楼层: a.如果比当前层低的楼层有向下呼叫或者目标,那么以最高的低于当前楼层的有向下呼叫或者目标的楼层为目标。 b.如果无法确定目标楼层,那么以最低的向上呼叫或者目标所在楼层为电梯当前目标楼层。 c.如果无法确定目标楼层,那么以最高的向下呼叫楼层为目标楼层。 d.如果仍然不能确定目标楼层(此时实际上没有任何呼叫和目标),那么电梯无目标,运行暂停。 3)最快响应策略: 响应所有的现在存在的所有呼叫和目标所需时间(采用不同方案电梯停靠时间相同,所以不必考虑)最短的策略。 可选方案一是电梯先向上运行响应经过各层的目标和向上呼叫,再向下运行响应所有向下呼叫以及途经各层的目标,最后再向上响应剩余的向上呼叫。二是恰好相反,

文件下载

资源详情

[{"title":"( 35 个子文件 1.06MB ) 模拟电梯系统程序设计","children":[{"title":"电梯","children":[{"title":"move.h <span style='color:#111;'> 44B </span>","children":null,"spread":false},{"title":"main.c <span style='color:#111;'> 1.13KB </span>","children":null,"spread":false},{"title":"move.c <span style='color:#111;'> 20.52KB </span>","children":null,"spread":false},{"title":"move.o <span style='color:#111;'> 9.65KB </span>","children":null,"spread":false},{"title":"egg.c <span style='color:#111;'> 2.58KB </span>","children":null,"spread":false},{"title":"电梯.ncb <span style='color:#111;'> 89.00KB </span>","children":null,"spread":false},{"title":"egg1.h <span style='color:#111;'> 65B </span>","children":null,"spread":false},{"title":"电梯.opt <span style='color:#111;'> 48.50KB </span>","children":null,"spread":false},{"title":"input.c <span style='color:#111;'> 5.37KB </span>","children":null,"spread":false},{"title":"电梯.dsw <span style='color:#111;'> 516B </span>","children":null,"spread":false},{"title":"电梯.dsp <span style='color:#111;'> 4.78KB </span>","children":null,"spread":false},{"title":"eggd.lib <span style='color:#111;'> 108.25KB </span>","children":null,"spread":false},{"title":"elevator.bmp <span style='color:#111;'> 666.62KB </span>","children":null,"spread":false},{"title":"judge.c <span style='color:#111;'> 496B </span>","children":null,"spread":false},{"title":"judge.o <span style='color:#111;'> 580B </span>","children":null,"spread":false},{"title":"电梯.plg <span style='color:#111;'> 1.46KB </span>","children":null,"spread":false},{"title":"egg.h <span style='color:#111;'> 15.07KB </span>","children":null,"spread":false},{"title":"Debug","children":[{"title":"vc60.pdb <span style='color:#111;'> 68.00KB </span>","children":null,"spread":false},{"title":"egg.obj <span style='color:#111;'> 14.62KB </span>","children":null,"spread":false},{"title":"vc60.idb <span style='color:#111;'> 57.00KB </span>","children":null,"spread":false},{"title":"电梯.pch <span style='color:#111;'> 2.68MB </span>","children":null,"spread":false},{"title":"judge.obj <span style='color:#111;'> 1.80KB </span>","children":null,"spread":false},{"title":"move.obj <span style='color:#111;'> 22.17KB </span>","children":null,"spread":false},{"title":"电梯.exe <span style='color:#111;'> 236.04KB </span>","children":null,"spread":false},{"title":"main.obj <span style='color:#111;'> 10.73KB </span>","children":null,"spread":false},{"title":"input.obj <span style='color:#111;'> 14.55KB </span>","children":null,"spread":false},{"title":"电梯.pdb <span style='color:#111;'> 649.00KB </span>","children":null,"spread":false},{"title":"det.obj <span style='color:#111;'> 1.58KB </span>","children":null,"spread":false},{"title":"电梯.ilk <span style='color:#111;'> 351.39KB </span>","children":null,"spread":false}],"spread":false},{"title":"input.h <span style='color:#111;'> 23B </span>","children":null,"spread":false},{"title":"structure.h <span style='color:#111;'> 285B </span>","children":null,"spread":false},{"title":"main.o <span style='color:#111;'> 1011B </span>","children":null,"spread":false},{"title":"input.o <span style='color:#111;'> 3.03KB </span>","children":null,"spread":false},{"title":"egg.lib <span style='color:#111;'> 38.09KB </span>","children":null,"spread":false},{"title":"judge.h <span style='color:#111;'> 22B </span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

  • a489685453 :
    不知道怎么去使用
    2019-01-27
  • qq_40594818 :
    还行,能参考
    2018-06-22
  • qq_37594030 :
    挺好的,可惜是C语言写的
    2017-11-30
  • songtao542 :
    具有一定的参考价值
    2016-12-07
  • blue_love :
    用做课程设计,足够用了,多谢分享
    2015-09-22

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明