电梯仿真系统报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电梯仿真系统报告

电梯仿真系统设计 题目要求: 公司要建立一幢两层的办公大楼并装上“最新”的电梯。公司要求开发一个面向对象的软件模拟程序,仿真电梯的操作,确定这个电梯能否满足需要。 这个电梯只限乘载一人,为了省电,只在需要时才使用,电梯每天在一楼关门等待。模拟程序包括一个时钟,每天从时间0开始,每秒滴答一次。模拟程序的调度器组件随机设置每一层第一个人到来的时间。当时钟的时间等于第一个人到来的时间时,模拟程序对指定层生成一个新到的人并将人放在这一层。然后这个人按下该层的按钮,请求电梯开门。这个人的目的地楼层不能与他上电梯时所在的楼层相同。如果第1个人到达第1层,则他可以按下按钮和等待电梯开门之后立即进入电梯。如果第1个人在第2层,则电梯要升至第2层去接这个人。电梯从1层移至2层需要5秒钟。电梯到达一层时,打开该层的电梯门上的灯,并在电梯内发出铃声。该层的按钮和电梯中中表示该层的按钮复位,电梯门打开,乘客(如果有人)走出电梯,另一乘客(如果有人等待)进入电梯并按下目的地楼层的按钮,电梯门关上。如果电梯要开始移动,则要确定移动的方向(对只有两层的电梯很简单)并移到下一层,为了简单起见,假设电梯到达一层时发生所有事件1) 电梯的运行规则是:可到达每层。 (2) 仿真开始时,电梯处于第一层,为空梯。 (3) 仿真开始后,有N人(12人)在该国际贸易中心的1层,开始乘梯活动。 (4) 每个人初次所要到达的楼层是随机的,开始在底层等待电梯到来。 (5) 每个人乘坐电梯到达指定楼层后,再随机地去往另一楼层,依此类推。 (6) 电梯运行的方向由先发出请求者决定,不允许后发出请求者改变电梯的当前运行方向,除非是未被请求的空梯。 (7)电梯仿真时间是T秒。T秒后电梯模拟结束。 软件开发要求: 设计一个易于理解的界面,动态显示各梯的载客与运行情况(上、下或停止),动态 显示各楼层的人员停留情况与要求乘梯情况;动态显示从仿真开始到目前的时间。 系统分析、设计与实现: 1、系统分析 采用OOP分析的关键就是要对问题的对象空间的分类(类的分析与设计,这一点跟面向过程的流程图设计不太一样),也就是在整个系统中包括那几个类,每个类包含那些属性特征和行为特征。对于上面的电梯问题,很明显有两个类:即电梯类和乘客类(从所设计到的对象描述可以观察到,但是有的问题即使这一步也要仔细分析)。电梯类应该反映所有关于电梯状态和行为的信息,而乘客类也应该反映这些信息。 2、类的设计: 乘客类: class Cpassenger { public: Cpassenger();//构造函数 virtual ~Cpassenger(); int number;//编号 int counter,counter1;//计数器 int iLifts;//乘坐过的次数 int iToFloor;//目的楼层 int iAtFloor;//所在楼层 int iStartTime;//记录这个人第一次出现的时间 int iRestTime;//坐电梯中间休息一段时间然后发信号的那段时间 int iReachTime;//记录到达目的地的时间 bool bSignal;//判断是否发出信号 bool bInLift;//是否在电梯内部 bool bUp;//判断是否要向上 }; 电梯类: class Celevator { public: Celevator(); virtual ~Celevator(); bool bStop;//判断是否停在某层 int iPassengers;//电梯内部的乘客数 int iToFloor;//要去的楼层 int iAtFloor;//所在楼层 bool bStart;//开始仿真 bool bUp;//判断是否向上运行 }; 由于本程序应用的是基于对话框的MFC框架集,所以建立了基于CDialog类的CSimulationDlg类。现在将类的头文件代码复制如下,中间做了说明。 class CSimulationDlg : public CDialog { // Construction public: void PaintLiftLine(); int M;//楼层数 CSimulationDlg(CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(CSimulationDlg) enum { IDD = IDD_SIMULATION_DIALOG }; // NOTE: the ClassWizard will add data members here //}}AFX_DATA // ClassWizar

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档