高层建筑电梯仿真程序设计说明书48851.docx





《高层建筑电梯仿真程序设计说明书48851.docx》由会员分享,可在线阅读,更多相关《高层建筑电梯仿真程序设计说明书48851.docx(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、设计书明书一、问题描描述用面向对象象方法和面面向对象程程序设计语语言,实现现满足下述述要求的一一个高层建建筑电梯活活动仿真程程序。1. 问题题域概述某国际展览览中心共 40 层层,设有载载客电梯110 部(用用E0EE9 标识识)。2. 限定定条件(1) 电电梯的运行行规则是:E0、EE1:可到到达每层。E2、EE3:可到到达1、225400 层。E4、EE5:可到到达1225 层。E6、EE7:可到到达1、2240 层中的偶偶数层。E8、EE9:可到到达1339 层中中的奇数层层。(2) 每每部电梯的的最大乘员员量均为KK 人(KK 值可以以根据仿真真情况在110188 人之间间确定)。(3
2、) 仿仿真开始时时,各电梯梯随机地处处于其符合合运行规则则的任意一一层,为空空梯。(4) 仿仿真开始后后,有N 人(0N10000)在在M 分钟钟(0MM10)内内随机地到到达该国际际展览中心心的1 层层,开始乘乘梯活动。(5) 每每位乘客初初次所要到到达的楼层层是随机的的,令其在在合适的电电梯处等待待电梯到来来。(6) 每每位乘客乘乘坐合适的的电梯到达达指定楼层层后,随机机地停留1101220 秒后后,再随机机地去往另另一楼层,依依此类推,当当每人乘坐坐过L 次次(每人的的L 值不不同,在产产生乘客时时随机地在在1100 次之间间确定)电电梯后,第第L+1 次为下至至底层并结结束乘梯行行为。
3、到所所有乘客结结束乘梯行行为时,本本次仿真结结束。(7) 电电梯运行速速度为S 秒/层(SS 值可以以根据仿真真情况在115 之之间确定),每每人上下时时间为T 秒(T 值可以根根据仿真情情况在210 之之间确定)。(8) 电电梯运行的的方向由先先发出请求求者决定,不不允许后发发出请求者者改变电梯梯的当前运运行方向,除除非是未被被请求的空空梯。(9) 当当某层有乘乘客按下乘乘梯电钮时时,优先考考虑离该层层最近的、满满足条件(88)、能够够最快到达达目标层的的电梯。(10) 不允许电电梯超员。3. 开发发结果的行行为特征(1) 产产生事件的的周期为11 秒,每每次可产生生0 个或或多个事件件。(
4、2) 各各随机事件件由互不相相关的伪随随机数发生生器决定。(3) 设设计一个易易于理解的的界面,动动态显示各各梯的载客客与运行情情况,动态态显示各楼楼层的人员员停留情况况与要求乘乘梯情况;动态显示示从仿真开开始到目前前的时间。(4) 显显示时用应应表示出不不同的乘客客及其当前前所要求去去往的楼层层。例如,112-322 表示标标识为122 的乘客客要求去往往32 层层。(5) 统统计各梯的的运行与空空闲时间;统计各人人发出乘梯梯要求后的的等待时间间;仿真结结束后显示示这些时间间。(6) 参参数K、NN、M、SS、T 应应从命令行行输入。(7) (选选做)考虑虑有些乘客客(随机决决定)携带带的物
5、品体体积较大,需需占用12 人的的电梯空间间(随机决决定),且且上下梯的的时间比其其他乘客长长一倍的情情况,再进进行相应的的仿真(注注意,不是是所有的乘乘客都携带带较大体积积的物品)。这这时,显示示乘客及所所去往的楼楼层时要能能够识别出出是否携带带了较大体体积的物品品。二、分析与与设计模型型1. 分析析过程(1) 根根据问题域域中所描述述的内容,可可以生成一一张“电梯楼层层可达表”,其中“1”表示它所所在列所对对应的电梯梯可到达它它所在行对对应的楼层层,如下所所示:E0E1E2E3E4E5E6E7E8E9F11111111111F2111111F3111111F4111111F5111111F
6、6111111F7111111F8111111F9111111F10111111F11111111F12111111F13111111F14111111F15111111F16111111F17111111F18111111F19111111F20111111F21111111F22111111F23111111F24111111F2511111111F26111111F27111111F28111111F29111111F30111111F31111111F32111111F33111111F34111111F35111111F36111111F37111111F38111111F39111
7、111F40111111(2) 根根据问题域域中所描述述的内容,在系统中识别出了三种不同的事物,分别是乘客,电梯和楼层。开始仿真后,对于某一个乘客,如果他不在楼层中,那么就一定在电梯中。这样就可以将楼层和电梯都看作是包含容器和其他数据和标志的对象,在这些对象的容器中存放的就是乘客。(3) 将将楼层看作作是容器时时,发现楼楼层对象内内部的容器器可以按作作用分为两两大类,一一类是存放放在该层随随机停留的的乘客的容容器,另一一类是存放放在该层等等待电梯的的乘客的容容器。其中中,第二类类容器又可可以按照乘乘客是向上上还是向下下分为两类类,一类是是存放等待待向上乘客客的容器,另另一类是存存放等待向向下乘
8、客的的容器。总结起来,楼楼层内部的的容器共可可以分为三三类:随机机停留容器器、等待向向上容器和和等待向下下容器。根据楼层包包含这三种种容器中的的哪几种的的不同,可可以将楼层层分为三类类:a. 底层楼层。乘客在底层层楼层中只只能够随机机停留或者者乘梯向上上运动,所所以底层楼楼层只包含含两种容器器:随机停停留容器和和等待向上上容器。b. 中间楼层乘客在中间间楼层可以以随机停留留,并且乘乘客既可以以乘梯向上上运动,又又可以乘梯梯向下运动动,所以中中间楼层中中包含三种种容器:随随机停留容容器、等待待向上容器器和等待向向下容器。c. 顶层楼层乘客在顶层层楼层中只只能够随机机停留或者者乘梯向下下运动,所所
9、以顶层楼楼层只包含含两种容器器:随机停停留容器和和等待向下下容器。又因为每个个楼层的可可到达电梯梯是不同的的,所以在在楼层类型型的内部定定义一个vvectoor,初始始化的时候候该vecctor为为空,然后后通过查看看楼层电梯梯可达表再再填充该vvectoor的内容容,里面存存储了所有有可到达该该楼层的电电梯的信息息。(4) 将将电梯看作作是容器时时,所有电电梯都可以以使用一个个类型来表表示了。在在电梯类型型中,定义义一个veectorr,初始化化的时候该该vecttor为空空,然后通通过查看楼楼层电梯可可达表再填填充该veectorr的内容,里里面存储了了该电梯可可到达的所所有楼层的的信息。
10、(5) 对对于乘客来来说,乘客客当前在某某一楼层,打打算去另一一楼层。乘乘客知道当当前所在楼楼层的所有有电梯中有有哪些可以以到达自己己想要去的的楼层,并并且会对这这些所有可可以可到达达的电梯都都发出与自自己目标方方向相同的的乘梯请求求。当某一一电梯到达达乘客所在在楼层时,若若该电梯可可到达乘客客要去的楼楼层,并且且现在的运运动方向与与乘客的目目标方向相相同,并且且现在排在在该乘客前前方的乘客客没有上该该电梯,并并且该电梯梯不满时,乘乘客才会上上该电梯。如如果乘客正正在等待上上电梯,而而同时又有有另一部满满足条件的的电梯到达达,并且现现在没有人人上下,那那么乘客就就直接上另另一部电梯梯,而不是是
11、等待原来来那部电梯梯。这样就就可以保证证乘客总是是可以乘坐坐最早到达达该层的的的电梯,而而不是死等等某一固定定电梯到达达。2. 系统统中重要类类的识别根据上述分分析,在系系统中识别别出来的主主要有三个个类:电梯梯类Eleevatoor,楼层层类Flooor和乘乘客类Paassennger。其中Elevator类是对各类电梯的抽象,它封装了各类电梯的数据结构和方法。Floor类是一个虚基类,在该类中定义了各类操作的公共接口;由Floor类派生出三个子类,分别为BottomFloor类,MiddleFloor类和TopFloor类,分别为对底层楼层、中间楼层和顶层楼层的抽象,分别封装了底层楼层、中
12、间楼层和顶层楼层的数据机构和方法。Passenger类是对不同乘客的抽象,它封装了乘客的数据结构和方法。3. 系统统中的类图图4. 类间间交互过程程在系统中定定义乘客、楼楼层和电梯梯三种对象象。乘客按按下该楼层层乘梯按钮钮发出乘梯梯请求,楼楼层将该乘乘梯请求通通知相应电梯,电电梯响应请求,到到达该楼层层时通知该该楼层电梯梯到达,该该楼层通知知等待的乘乘客电梯到到达。乘客客上电梯后后电梯离开开,通知楼楼层电梯离离开,楼层层通知所有有在该层等等待的乘客客电梯离开开。乘客在在电梯内设设置目标楼楼层号,电电梯载乘客客到达目标标楼层后通通知乘客电电梯到达,乘乘客下电梯梯。5. 乘客客及电梯的的状态迁移移
13、图(1) 乘乘客的状态迁移图乘客有111种不同的的状态,分分别是“仿真开始始前”,“随机停留留”,“等待电梯梯到达”,“等待上电电梯”,“正在上电电梯”,“等待电梯梯运行”,“随电梯向向目标层运运动”,“随电梯在在非目标层层停止”,“等待下电电梯”,“正在下电电梯”和“仿真结束束”。这些状态态只有在时时钟每秒触触发的时候候才会发生生相应转换换,如果乘乘客的当前前状态没有有转为另一一个状态,则则表示乘客客维持当前前状态不变变。对某一个乘乘客仿真开开始前,乘乘客的状态态是“仿真开始始前”。当乘客客进入大楼楼,对乘客客的仿真开开始,乘客客的状态置置为“随机停留留”。当乘客的的当前状态态为“随机停留留
14、”,并且乘乘客的仿真真次数还没没有到达设设定的最大大值,那么么当乘客的的停留时间间到,如果果此时没有有符合乘客客乘梯要求求的电梯到到达,乘客客的状态转转为“等待电梯梯到达”;如果此时时有符合乘乘客乘梯要要求的电梯梯到达,并并且此时电电梯中没有有人上下,那那么乘客的的状态改为为“正在上电电梯”;如果此此时电梯中中有人正在在下电梯或或者乘客前前方的人正正在上电梯梯,那么乘乘客的状态态改为“等待上电电梯”。当乘客客的当前状状态为“等待上电电梯”,而此时时已没有人人再下电梯梯,并且前前面的乘客客也都已经经上了电梯梯,那么乘乘客的状态态转为“正在上电电梯”;而如果果乘客的当当前状态为为“等待上电电梯”,
15、而电梯梯已满并且且离开,那那么乘客的的状态转为为“等待电梯梯到达”。当乘客客的当前状状态为“正在上电电梯”,如果已已经完成上上电梯活动动,并且后后面的乘客客不再上电电梯,那么么乘客的状状态转为“随电梯向向目标层运运动”;如果后后面的乘客客仍然在上上电梯,那那么乘客的的状态转为为“等待电梯梯运动”。当乘客客的当前状状态为“等待电梯梯运动”,而所有有乘客都已已经完成上上电梯活动动,电梯开开始运动,乘乘客的状态态改为“随电梯向向目标层运运动”。当乘客客的当前状状态为“随电梯向向目标层运运动”,电梯在在某层停下下,如果该该层不是乘乘客的目标标层,那么么乘客的状状态转为“随电梯停停留”;如果该该层是乘客
16、客的目标层层,如果前前面有人下下电梯,那那么乘客的的状态转为为“等待下电电梯”;如果前前面没有人人下电梯,乘乘客的状态态转为“正在下电电梯”。如果乘客客的当前状状态为“等待下电电梯”,前面乘乘客已经下下电梯完毕毕,那么乘乘客状态转转为“正在下电电梯”。如果乘乘客的当前前状态为“正在下电电梯”,并且已已经下电梯梯结束,那那么乘客的的当前状态态转为“随机停留留”。如果乘客客的当前状状态为“随机停留留”,并且乘乘客的仿真真次数已经经到达了设设定的最大大值,那么么乘客的状状态转为“结束仿真真”。(2) 电电梯状态迁迁移图仿真开始前前,电梯的的状态为“停止”。当仿真真开始后,电梯的状态为“停止”,如果电
17、梯按照运行规则查找到的目标楼层是当前楼层上方的楼层,那么电梯的状态转为“向上运动”;如果目标楼层是下方的楼层,那么电梯的当前状态转为“向下运动”;如果目标楼层就是“当前楼层”,那么电梯的状态转为“在某层停留”。如果电梯的当前状态为“向上运动”,电梯已经到达目标层,那么电梯的状态转为“在某层停留”。如果电梯的当前状态为“向下运动”,电梯已经到达目标层,那么电梯的状态转为“在某层停留”。如果电梯的当前状态为“在某层停留”,上下乘客结束,电梯查找下一目标层,如果下一目标层为上方楼层,那么电梯的状态转为“向上运动”;如果下一目标层为下方楼层,那么电梯的状态转为“向下运动”;如果找不到目标楼层,那么说明
18、电梯现在没有乘客使用,电梯的状态转为“停止”。三、标识符符命名规则则1. 类的的命名规则则类的命名形形式为“类名的意意义单词”,类名中单单词的首字字母大写。例如:EElevaator,FFloorr,Passsengger。2. 成员员函数命名名规则类中成员函函数的命名名规则为“x_代表成成员函数的的功能的单单词组合”,其中x为为字母e时时,表示为为Elevvatorr电梯类的的成员函数数;x为字字母f时,表表示为Flloor楼楼层类的成成员函数;x为字母母p时,表表示为Paassennger乘乘客类的成成员函数。单词组合中每个单词首字母大写。比如:e_FindDestinationFloor
19、(),f_NoticeElevatorLeaveUp(),p_GetInBuilding()。3. 数据据成员命名名规则类中数据成成员的命名名规则为“x_表示其功能能与含义的的单词组合合”,其中x为字字母e时,表表示为Ellevattor电梯梯类的数据据成员;xx为字母ff时,表示示为Flooor楼层层类的数据据成员;xx为字母pp时,表示示为Passsengger乘客客类的数据据成员。单词组合合中每个单单词首字母母大写。如如e_CuurrenntPasssenggerAmmountt,f_FlloorNNumbeer,p_RanndomSStayiingTiime。4. 局部部变量命名名规则
20、局部变量用用小写单词词表示,成成员函数参参数使用“X_表示其功能能与含义的的单词组合合”,其中X为字字母E时,表表示为Ellevattor电梯梯类的成员员函数的参参数;X为为字母F时时,表示为为Flooor楼层类类的成员函函数的参数数;X为字字母P时,表表示为Paassennger乘乘客类的成成员函数的的数据成员员。单词组组合中每个个单词首字字母大写。如如E_FlloorNNumbeer,F_EllevattorNuumberr,P_EllevattorNuumberr。总之,系统统中所有标标识符都做做到了见其其名能知其其义。四、系统中中重要类及及方法的说说明1. Ellevattor类的的说
21、明它是系统中中各种电梯梯的抽象。有有如下属性性和方法:对该类的说说明如下:classs Eleevatoorprivaate:stattic iint ee_TimmeNeeedPerrFlooor;/电梯梯每上或下下一层所需需要的时间间stattic iint ee_MaxxPasssengeerAmoount;/电梯梯的最大容容客量int e_EllevattorNuumberr;/电梯梯编号int e_CuurrenntPasssenggerAmmountt;/电梯梯内当前乘乘客数目ElevvatorrStatte e_CurrrentSStatee;/电梯梯当前状态态Direectio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高层建筑 电梯 仿真 程序设计 说明书 48851

限制150内