高层建筑电梯仿真程序设计说明书_第1页
高层建筑电梯仿真程序设计说明书_第2页
高层建筑电梯仿真程序设计说明书_第3页
高层建筑电梯仿真程序设计说明书_第4页
高层建筑电梯仿真程序设计说明书_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计书明书一、问题描述用面向对象方法和面向对象程序设计语言,实现满足下述要求的一个高层建筑电梯活动仿真程序。1.问题域概述某国际展览中心共40层,设有载客电梯10部(用E0~E9标识)。2.限定条件(1)电梯的运行规则是:E0、E1:可到达每层。E2、E3:可到达1、25~40层。E4、E5:可到达1~25层。E6、E7:可到达1、2~40层中的偶数层。E8、E9:可到达1~39层中的奇数层。(2)每部电梯的最大乘员量均为K人(K值可以根据仿真情况在10~18人之间确定)。(3)仿真开始时,各电梯随机地处于其符合运行规则的任意一层,为空梯。(4)仿真开始后,有N人(0<N<1000)在M分钟(0<M<10)内随机地到达该国际展览中心的1层,开始乘梯活动。(5)每位乘客初次所要到达的楼层是随机的,令其在合适的电梯处等待电梯到来。(6)每位乘客乘坐合适的电梯到达指定楼层后,随机地停留10-120秒后,再随机地去往另一楼层,依此类推,当每人乘坐过L次(每人的L值不同,在产生乘客时随机地在1~10次之间确定)电梯后,第L+1次为下至底层并结束乘梯行为。到所有乘客结束乘梯行为时,本次仿真结束。(7)电梯运行速度为S秒/层(S值可以根据仿真情况在1~5之间确定),每人上下时间为T秒(T值可以根据仿真情况在2~10之间确定)。元(8)电宇梯运行的方搏向由先发出烫请求者决定窜,不允许后别发出请求者邪改变电梯的挽当前运行方接向,除非是欢未被请求的得空梯。置(9)当鸭某层有乘客臣按下乘梯电肉钮时,优先架考虑离该层则最近的、满左足条件(8约)、能够最饰快到达目标远层的电梯。显(10)封不允许电梯拴超员。牵3.岁开发结果的魄行为特征匙(1)产节生事件的周旅期为1秒坚,每次可产部生0个或瘦多个事件。榆(2)各闪随机事件由澡互不相关的洋伪随机数发同生器决定。雪(3)设痛计一个易于倍理解的界面野,动态显示查各梯的载客杆与运行情况悔,动态显示居各楼层的人浙员停留情况贱与要求乘梯穴情况;动态叔显示从仿真家开始到目前愚的时间。租(4)显义示时用应表嫌示出不同的惑乘客及其当赢前所要求去烘往的楼层。拒例如,12斑-32表况示标识为1胞2的乘客屿要求去往3裤2层。览(5)统床计各梯的运菊行与空闲时勿间;统计各仙人发出乘梯冤要求后的等呀待时间;仿须真结束后显震示这些时间扁。丹(6)参厨数K、N、蝴M、S、T握应从命令听行输入。夸(7)(捏选做)考虑笔有些乘客(雁随机决定)擦携带的物品朱体积较大,临需占用1~讨2人的电鄙梯空间(随白机决定),括且上下梯的盟时间比其他稠乘客长一倍抄的情况,再微进行相应的折仿真(注意兵,不是所有疾的乘客都携姨带较大体积花的物品)。翠这时,显示怖乘客及所去夫往的楼层时芬要能够识别乞出是否携带酸了较大体积岔的物品。源二、版分析与录设计模型抽1.分析廊过程排(1)销根据问题域顿中所描述的京内容,可以贵生成一张延“愚电梯楼层可波达表钻”槽,领其中蚊“如1覆”球表示它所在董列所对应的节电梯可到达往它所在行对华应的楼层,篮如下所示:姑E0镜E1方E2老E3鹅E4馋E5夕E6趴E7秒E8鼠E9刘F1恩1借1愈1获1庆1哭1吼1快1山1评1桶F2鸽1谢1克1腊1援1够1叉F3袄1右1施1比1索1法1欢F4赏1缎1滥1则1哗1含1调F5苹1贝1香1恼1焦1摔1概F6神1们1魂1丘1敬1猫1吼F7运1腿1瞧1火1忘1相1撑F8筒1浸1盐1匹1哪1质1念F9窑1齿1轨1叛1支1历1饱F10锐1商1闷1瞒1筋1舌1霸F11澡1剥1熊1锐1娘1樱1桐F12踩1摔1犯1奸1稀1偏1亭F13爬1颗1勉1茅1洋1虽1辉F14盖1铲1统1宿1虚1鹊1郑F15舌1堂1务1鸦1际1播1港F16藏1颂1坑1短1陕1蜓1喇F17毒1仆1拌1走1忍1跳1驾F18筝1握1候1库1陪1寿1时F19蝶1径1订1醒1斥1问1喉F20坛1籍1馆1胞1握1授1饲F21证1没1叛1永1理1壤1张F22剧1医1恒1享1澡1薄1枕F23魄1蚂1兴1翁1粗1辱1太F24困1后1湾1茄1倾1攀1劫F25仍1轿1野1洞1论1贝1音1贴1用F26企1颤1抚1慢1沙1尖1亭F27耽1民1扶1厘1忘1庭1穿F28罪1止1令1钓1今1托1黄F29散1予1工1东1脆1竞1港F30献1雄1歉1堡1赴1念1叉F31饿1烂1烟1粒1宁1烧1秃F32抖1油1洪1凳1养1乌1然F33侮1册1冤1昨1岭1炉1备F34腐1戒1楼1涌1俘1授1第F35拖1卵1瓶1窜1存1阁1吨F36盾1拾1般1赛1哄1绍1姨F37海1省1厌1头1夏1口1岩F38菊1坐1枣1旧1辩1拿1盛F39者1棕1由1罢1德1恰1溜F40存1签1半1兔1逆1恭1泼(2)兽根据问题质域中所描述迫的内容,羽在系统中识添别出了待三种不同的陵事物,鸟分别是乘客斑,乐电梯和楼层筒。滋开始仿真后脖,对于某一连个乘客,如漆果他不在楼誉层中,那么浮就一定在电搏梯中亲。这样就可亩以将楼层和荐电梯都看作租是包含容器抛和其他数据辣和标志的对台象,在这些晋对象的容器域中存放的就叼是乘客。泼(3)将档楼层看作是化容器时,发俭现楼层对象莫内部的容器唐可以按作用织分为两大类皱,一类是存显放在该层随匙机停留的乘社客的容器,睬另一类是存甲放在该层等颗待电梯的乘宫客的容器。扑其中,第二绑类容器又可夸以按照你乘客是向上获还是向下分社为两类,一更类是存放等凤待向上乘客乎的容器,另葛一类是存放太等待向下乘悟客的容器。种总结起来,倡楼层内部的手容器共可以输分为三类:遍随机停留容盈器、等待向聚上容器和等愧待向下容器冰。团根据楼层包骡含这三种容堂器中的哪几摄种的不同,给可以将楼层东分为三类:底层楼层。议乘客在底层誉楼层中只能陶够辟随机停留或输者乘梯向上届运动,所以惊底层楼层只怠包含两种容副器:随机停浑留容器和等继待向上容器损。中间楼层张乘客在中间盾楼层可以随孙机停留,并第且乘客既可耽以乘梯向上斩运动,又可清以乘梯向下刑运动,所以禽中间楼层中战包含三种容勾器:随机停况留容器、等按待向上容器也和等待向下凝容器。顶层楼层码乘客在顶层箭楼层中只能溪够随机停留扑或者乘梯向沙下运动,所著以顶层楼层揪只包含两种魂容器:随机康停留容器和遇等待向下索容器。皇又因为每个惩楼层的可到包达电梯是不却同的,所以炎在楼层类型猾的内部定义罪一个乳vecto脉r,初始化喊的时候该v今ector哨为空,然后巴通过查看楼续层电梯可达漂表再填充该锯vecto千r的内容,遵里面存储了窑所有可到达家该楼层的电五梯的信息。袭(4)将指电梯看作是贯容器时,葡所有电梯都梅可以使用一画个类型来表握示了。在电购梯类型中,华定义一个挡vecto略r,初始化现的时候该v祝ector横为空,然后萍通过查看楼诞层电梯可达在表再填充该番vecto肌r的内容,石里面存储了游该电梯可到甚达的所有楼火层的信息。前(5)对弦于乘客来说亮,乘客仇当前在某一仓楼层,打算旦去另一楼层瓜。乘客知道醒当前所在楼桨层的所有电盾梯中有哪些置可以到达自挥己想要去的横楼层,并且省会对这些所感有可以可到负达的电梯都渔发出与自己永目标方向相稍同的乘梯请娇求。当某一旱电梯到达乘具客所在楼层撒时,若该电布梯可到达乘评客要去的楼惜层,并且现铃在的运动方巧向与乘客的化目标方向相炉同,并且现签在排在该乘胸客前方的乘柿客没有上该敏电梯,并且赛该电梯不满喝时,乘客才哗会上该电梯侮。如果乘客酒正在等待上购电梯,而同刺时又有另一链部满足条件予的电梯到达滋,并且现在韵没有人上下榨,那么乘客技就直接上另薄一部电梯,裕而不是等待师原来那部电喝梯。这样就窜可以保证乘锦客总是可以楼乘坐最早到腹达该层的的皆电梯,而不报是死等某一霸固定电梯到室达。暴2岗.系统中沫重要类的识负别互根据上述分航析,捐在系统中识侵别出来的主饱要有三个类沾:电梯类E心levat缸or,楼层运类Floo没r和乘客类剑Passe美nger。忍其中Ele泡vator鼻类是对各类积电梯的抽象丑,它封装了猴各类电梯的钥数据结构和礼方法。Fl仗oor类是石一个虚基类软,在该类中舌定义了各类柔操作的公共回接口功;就由Floo音r类派生出架三个子类,帐分别为Bo辅ttomF炸loor类融,去Middl喜eFloo命r类和To惧pFloo夕r越类,分别为览对底层楼层端、中间楼层鸡和顶层楼层密的抽象,分宫别封装了底姻层楼层、中惑间楼层和顶耗层楼层的数啦据机构和方腥法。Pas循senge射r类是对不砖同乘客的抽帜象,它封装联了乘客的数饥据结构和方府法。和3续.渴系统中的类赌图嗓4刮.类间佛交互过程丝在系统中定总义乘客、楼展层和电梯三截种对象。月乘客按下该县楼层乘梯按赏钮发出乘梯药请求,楼层脚将该乘梯请删求沙通知仆相应盘电梯,电梯获响应计请求,到达弹该楼层家时通知该楼喜层电梯到达比,该楼层通垄知等待的乘德客电梯到达迅。乘客上电大梯后电梯离袜开,通知楼悦层电梯离开裕,楼层通知堤所有在该层菜等待的乘客污电梯离开。库乘客在电梯岩内设置目标屡楼层号,电求梯载乘客到炉达目标楼层朋后通知乘客耀电梯到达,高乘客下电梯俩。芝5梢.旅乘客及电梯器的状态迁移矮图例(1)乘椒客的铸状剩态弄迁移图陆乘客有11少种不同的状聪态,分别是祝“抱仿真开始前拜”旺,光“般随机停留赢”疗,截“趴等待电梯到换达圆”央,棒“观等待上电梯纺”哥,敞“卡正在上电梯演”辟,暗“风等待电梯运件行挺”吸,调“漏随电梯向目联标层运动旷”昼,浊“轧随电梯在非肥目标层停止侍”申,卡“昨等待下电梯攀”深,晴“姜正在下电梯煌”猛和孩“付仿真结束绒”访。域这些状态只锁有在时钟每赛秒触发的时蛾候才会发生游相应转换讯,如果乘客枪的当前状态遭没有转为另浅一个状态,素则表示乘客普维持当前状成态不变。备对某一个乘德客仿真开始利前晓,乘客的状评态是渠“特仿真开始前教”经。当乘客进叉入大楼,对轮乘客的仿真军开始,乘客嫩的状态置为救“速随机停留丧”兼。掉当乘客的当薄前状态为安“吸随机停留各”挪,并且乘客六的仿真次数污还没有到达爬设定的最大肠值,那么当息乘客的停留离时间到,如城果此时没有亦符合乘客乘火梯要求的电掩梯到达,乘搬客的状态转沉为倡“者等待电梯到丹达换”隶;卡如果此时有植符合乘客乘钥梯要求的电呢梯到达,并态且此时电梯蓄中没有人上调下,那么乘恒客的状态改皂为撑“涛正在上电梯未”应;如果此时狮电梯中有人下正在下电梯掩或者乘客前株方的人正在恐上电梯,那递么乘客的状督态改为行“培等待上电梯鸦”蜡。当乘客的所当前状态为械“乌等待上电梯造”束,而此时已摄没有人再下汽电梯,并译且前面的乘婆客也都已经别上了电梯,雪那么乘客的网状态转为摇“互正在上电梯胳”溉;而如果乘吩客的当前状毒态为纲“礼等待上电梯岭”绑,而电梯已梁满并且离开麻,那么乘客残的状态转为美“是等待电梯到铁达轮”拘。当乘客的陪当前状态为散“竭正在上电梯厕”饲,如果已经赠完成上电梯桶活动,并且酷后面的乘客赠不再上电梯损,那么乘客斗的状态转为之“息随电梯向目犬标层运动县”竖;如果后面寿的乘客仍然户在上电梯,州那么乘客的霸状态转为寻“窜等待电梯运厘动卷”希。当乘客的握当前状态为谈“情等待电梯运炮动坛”陕,而所有乘事客都已经完驴成上电梯活佳动,电梯开冷始运动,乘缩客的状态改射为书“禾随电梯向目筝标层运动游”拴。当乘客的床当前状态为裁“勉随电梯向目胶标层运动茄”衬,电梯在某咱层停下,如壤果该层不是盗乘客的目标煌层,那么乘鞋客的状态转宴为梦“题随电梯停留偏”勇;如果该层泄是乘客的目咱标层,如果辈前面有人下测电梯,那么帖乘客的状态钉转为垄“艳等待下电梯羞”踩;如果前面垫没有人下电彩梯,乘客的残状态转为嫩“瞒正在下电梯页”家。躲如果乘客的喷当前状态为关“镇等待下电梯陵”秀,前面乘客咸已经下电梯冶完毕,那么腿乘客状态转耐为裁“群正在下电梯踪”择。如果乘客彩的当前状态谊为丘“丈正在下电梯仍”蔬,并且已经俩下电梯结束直,那么乘客龙的当前状态踏转为临“陈随机停留翅”蜂。琴如果乘客的傻当前状态为她“恳随机停留摆”倒,并且乘客元的仿真次数堵已经到达了忽设定的最大粉值,那么乘沸客的状态转姜为断“车结束仿真梅”拨。劫(2)电阔梯吸状态迁移图絮仿真开始前抱,电梯的状杜态为妙“唇停止妇”衬。当仿真开速始后,预电梯的状态骄为驾“挪停止勒”抽,掩如果电梯按李照运行规则甘查找到的目却标楼层是专当前楼层上替方的楼层,燃那么电梯的眉状态转为阁“周向上运动排”村;如果目标沉楼层是下方誉的楼层,那筹么电梯的当六前状态转为烧“餐向下运动但”份;如果目标兄楼层就是聪“膝当前楼层句”匙,那么电梯差的状态转为皱“浊在某层停留驾”竿。如果电梯生的当前状态约为粗“爹向上运动齿”纤,电梯已经脸到达目标层姿,那么电梯构的状态转为束“蛛在某层停留豪”条。如果电梯阵的当前状态券为启“盒向下运动乌”寺,电梯已经讨到达目标层户,那么电梯亭的状态转为浩“艰在某层停留播”瓦。如果电梯型的当前状态晶为液“岸在某层停留三”棒,上下乘客哪结束,电梯遇查找下一目样标层,如果央下一目标层迷为上方楼层门,那么电梯暴的状态转为上“优向上运动眼”矩;如果下一境目标层为下破方楼层,那比么电梯的状澡态转为炒“解向下运动荐”签;如果找不饿到目标楼层环,那么摘说明穷电梯现在没陷有乘客使用沉,电梯的状希态转为唐“努停止运”毁。镜三、标识符疾命名规则鉴1.类的凯命名规则斑类的命名形希式为馅“犬类名的意义虹单词俗”雷,陡类名中单词遣的首字母大薪写票。施例如:El胜evato杰r,Flo挖or,Pa担sseng娱er。冠2.成员程函数命名规盼则富类中成员函目数的命名规进则为各“裁x_觉代表成员函吐数的功能的碍单词组合员”黎,其中开x为字母e君时,表示为森Eleva惩tor电梯向类的成员函行数;x为字由母f时,表尺示为Flo俘or楼层类状的成员函数奴;x为字母盛p时,表示退为Pass午enger跑乘客类的成栗员函数。馅单词组合中算每个单词首充字母大写。澡比如:求e_Fin暮dDest京inati旺onFlo害or雁(),卖f_Not匙iceEl防evato休rLeav迫eUp站(),丘p_Get贴InBui诊lding货()禾。傲3.数据皱成员命名规圾则除类中干数据成员枯的命名规则比为娃“胶x锯_介表示其松功能与蒙含义的单词云组合骑”偏,间其中巾x为字母e冷时,表示为照Eleva尾tor电梯扎类的授数据成员畜;x为字母辫f时,表示幕为Floo临r楼层类的阔数据舱成员;x为傅字母p时,讲表示为Pa葵sseng青er乘客类减的条数据成员酱。印单词组合中盐每个单词首割字母大写徒。如冲e_Cur候rentP贞assen烫gerAm务ount炸,服f_Flo熄orNum伸ber热,俭p等_Rand愁omSta完yingT森ime切。婚4.局部蜻变量命名规浓则兆局部变量用奶小写单词表馅示李,成员函数蚀参数使用墙“栗X遇_苗表示其盈功能与若含义的单词揭组合鸭”贫,冲其中滤X为字母E吩时,表示为彻Eleva骑tor电梯写类的成员函珍数的参数;蓝X为字母F门时,表示为喇Floor丙楼层类的成州员函数的参劲数;X为字章母P时,表膨示为Pas睛senge听r乘客类的压成员函数的侧数据成员。沟单词组合中港每个单词首码字母大写。迟如抽E_Flo矛orNum融ber标,举F_Ele炼vator鸦Numbe练r橡,堆P_Ele健vator汁Numbe赠r风。刘总之,系统脉中所有标识雅符都做到了仿见其名能知佛其义。环四、系统中知重要类及方嚼法的说明荣1.恋Eleva罩tor类的顺说明古它是系统中瑞各种技电梯软的抽象。有汁如下属性和谊方法:全对该类的说闹明如下:斤class浩Elev爆ator洽{劈priva腥te:煎 朱stati绵cint阿e_Ti小meNee翁dPerF果loor;绣 碧 娃 馆//电梯每族上或下一层应所需要的时惰间银 友stati格cint疯e_Ma浩xPass韵enger胖Amoun析t;宪 悔 妄//电梯的神最大容客量炮 火inte株_Elev该atorN雁umber勺;池 锅 扭 长 制 妹//电梯编玉号泉 攀inte策_Curr瓦entPa脑sseng辰erAmo或unt;恶 亚 删 关//电梯内沙当前乘客数梢目逗 穗Eleva呜torSt疏atee寒_Curr虚entSt肉ate;绩 灯 东 命//电梯当阴前状态彼 唯Direc壳tion资e_Dir么ectio罢n;监 耳 训 光 捡 俩//电梯运森行方向啊 辣Direc铺tion铃e_Arr得ivedD父irect险ion;变 细 畏 著//电梯下寸一步的运行备方向乎 斑inte叼_Curr奇entFl授oorNu孙mber;冈 登 勒 些 细//当前楼宽层编号广 吸inte牧_Dest铺inati贩onFlo优orNum勇ber;卸 周 坝 障//目标楼阀层编号帐 行inte残_Next待Floor远Numbe喜r;傻 以 穿 奏 塘 怪//下一楼岭层编号杏 浪inte松_Time钞NeedT缠oNext斧Floor锻;酷 乏 梅 蚀 汤//到下一紫楼层所需要拆的时间愁 攀inte阵_Time灶NeedT贞oNext绪Floor刘StepC绍ounte拌r;枕 闲//从当前牢楼层出发向跌下一楼层运捕动已经经过粉的时间(计匀数器)外 秆inte叙_Stay燃FreeT生imeCo劳unter拖;永 瑞 薪 替 舟//电梯在达某层停留时勿没有人上下城的时间计数叉器娃 宿bool亿e_bBu昂sy;壤 摔 锯 名 眼 离 扩 溉//是否有蛮人上下的标鼠志薯 基bool袋e_bFu陪ll;沙 正 疮 沟 凶 微 顺 疑//电梯是假否已满的标绵志返 玩inte呆_Tota输lRunT咐ime;相 钉 宰 短 魄 奇 吼//总运行六时间债 咳inte传_Tota胜lStop怠Time;架 犯 篇 沾 伞 壳//总停止行时间妇 参inte涝_Near窄estDe普stina欢tedFl已oorNu颗mber;革 费 绩//电梯内物乘客所要到剩达的楼层中抵最近的楼层俯 崇inte嗓_Near数estRe社quest扣edFlo落orNum逝ber;帐 允 岸//查找到妙的最近的发层出乘梯请求仙的楼层译 拥inte该_Fare短stReq桶ueste简dFloo摄rNumb罚er;纹 蒙 用//查找到扁的最远的发性出乘梯请求有的楼层楼 左inte基_Elev穿atorR仆elate苏dFloo乐rSize团;别 秃 巾 维 邀 庭 绘//电梯可析到达楼层的玉数目鲜 离vecto院r<Ele铃vator怕Relat励edFlo犁or>e母_Rela暂tedFl顽oorVe灿ctor;殖 锯//电梯可局达到楼层及旋其相应的标剧志符publi状c:肠 胳Eleva魔tor(i盲ntE_价Eleva跪torNu秧mber)聪;滚 质 庸//构造函棚数脱 警~Elev乌ator(卵);怪 开 捷 列 湖 策 伙//析构函嫩数件 捞stati毁cvoi颂de_S口etTim据eNeed殖PerFl揭oor(i骨ntE_松TimeN誉eedPe装rFloo绿r);尾 标 烈 旁//设置电裕梯运行速度博(多少秒一仓层)的函数幕接口穿 链stati度cvoi日de_S谣etMax溪Passe币ngerA烛mount断(int痒E_Max挡Passe想ngerA缝mount蝴);宗 欺 晓//设置电平梯最大容客援量的函数接隔口油 茎void解e_Sim知ulati欧on();胃 但 圣 食//电梯仿取真函数接口滔 狗void顺e_Get庄Summa碰ry();时 梦 饮 广//仿真结盏束后显示电孤梯运行时间向与空闲时间拳的函数接口尊 木void申e_Pri永ntCur颠rentS谢tate(像);脸 愤 顿//打印电爷梯当前状态乳的函数接口电 现void栽e_Fin遇dDest南inati哲onFlo击or();氏 艰//按照既执定运行规则筋查找电梯下浸一目标楼层或的函数接口育 央void济e_Add奏Relat拜edFlo丈or(in疲tE_F胖loorN锡umber付,Flo凑or*E贿_Floo漆rPtr)从;颂 递 悲//添加电屿梯可到达楼舱层的函数接友口位 副void祸e_Mak应eUpRe晕quest根(int垫E_Flo堡orNum驶ber);朴 毒 动 置//响应楼倘层向上乘梯弱请求的函数竟接口炭 伶void马e_Mak兄eDown允Reque注st(in裳tE_F盯loorN彩umber锹);痒 解 辨 茫//响应楼柿层向下乘梯决请求的函数械接口北 告void喷e_Not断iceEl蜜evato窑rArri晕veUp(钢intE吐_Floo任rNumb寺er);秧 俭//通知E找_Floo剧rNumb肝er楼层此上电梯到达并畅且继续向上奋运动的函数蔑接口吨 胖void屈e_Not私iceEl事evato泳rArri凯veDow纠n(int拌E_Fl陕oorNu减mber)佳;偶 奖//通知E遣_Floo朱rNumb梦er楼层此演电梯到达并谢且继续向下该运动的函数脑接口晴 台void纸e_Not诚iceEl皇evato竿rLeav填eUp(i米ntE_款Floor沉Numbe押r);鸦 会//通知E离_Floo励rNumb葱er楼层此捆电梯离开并裁且继续向上钓运动的函数震接口蔑 慕void钓e_Not可iceEl为evato绣rLeav普eDown渔(int侍E_Flo哪orNum鸭ber);码 医//通知E委_Floo储rNumb廊er楼层此股电梯离开并时且继续向下朝运动的函数桶接口腔 炒void碰e_Add黎Passe愧nger(念intE圾_Floo旬rNumb既er,P移assen鸡ger*撕E_Pas蝇senge缠rPtr)雷;皂 贞 家//向电梯括中添加乘客凤的函数接口吼,乘客上电斩梯时调用该励函数预 经void乖e_Rem讨ovePa绢sseng龙er(in缩tE_F讲loorN炼umber斩,Pas架senge她r*E_底Passe乌ngerP艰tr);政 多//从电梯具中删除乘客马的函数接口歌,乘客下电湾梯时调用该碰函数写 诵void睡e_Set虾Desti妹natio付nFloo逼r(int唐E_De送stina攻tionF贪loorN差umber滑);仓 霉 逆 接 鲜//设置目须标楼层的函这数接口,乘巨客设置目标示楼层时调用恰该函数谈 布void赢e_Set搏Eleva识torBu安sy();周 日 绪 间//乘客上琴下电梯时调挎用该函数,遮表示电梯现畜在被占用,她其他乘客不伏能访问黑 影void察e_Set也Eleva腰torFr驻ee();衫 嘴 早 鲁//乘客上偏下电梯时调年用该函数,挡表示电梯现阀在没有被占淋用,其他乘狡客可以访问寻 页inte蜓_GetT沃otalR剥unTim绿e();吨 嚼 蒙 目//获取电睡梯总运行时踩间的函数接燥口俗 货inte玻_GetT霉otalS它topTi轮me();庸 模 诞 银//获取电涝梯总停止时屑间的函数接愿口警 纠Eleva煎torSt妖atee肺_GetC驻urren瓜tStat淹e();饰 茂//获取电夫梯当前状态嘱的函数接口冰 棋inte淘_GetC为urren蔬tFloo黄rNumb弊er();感 援 婶//获取电贷梯当前所在饶楼层的函数短接口块 毛bool咏e_IsF匙ull()贯;寸 愁 药//判断电抗梯当前是否艺已满的函数虑接口牺 偶bool派e_IsB欺usy()称;锋 辅 距//判断电窃梯当前是否况被占用的函织数接口扔 曲void坝e_Rem退oveIn系valid谨Passe既nger(培);奖 禾//由电梯茎自己调用,配删除已经下励电梯的失效卷乘客扰};喝2唉.探Floor挖类的说明决2.1F恨loor基菊类黄Floor溜类是一个虚打基类,它定惰义了楼层所恳提供的操作剂的接口,如吊下所示:熊对该类的说杂明如下:酱class建Floo鲜r排{挥publi快c:蹈 查virtu男alvo慰idf_垮Simul尘ation辫()=批0;拆 秋 招 角//楼层仿昨真函数接口疲 剂virtu书alvo矮idf_撤Print存Curre程ntSta也te()酷=0;暮 费 碍//打印楼壁层当前状态躬的函数接口救 际virtu搭alin割tf_G你etFlo艘orNum箩ber()华=0;驾 肆 锦 讽//获取楼遣层号的函数钩接口区 夜virtu生alvo足idf_佛MakeR俘eques损t(int锻F_El细evato挺rNumb垃er,D刺irect准ionF角_Requ绿estDi膨r)=输0;末 芦 挑 优 蛋//发出请局求函数接口妖,供乘客发面出乘梯请求泪时调用奥 效virtu桃alvo叛idf_传Notic禾eElev塞atorA拆rrive筑(int何F_Ele那vator否Numbe陈r,Di真recti剖onF_冤Eleva炎torDi抽r)=笔0;屿 崭 唤//通知在飞本层等待的梳乘客电梯到鲁达旱 爬virtu控alvo亚idf_蒸Notic排eElev屑atorL村eave(醋intF因_Elev善atorN优umber要,Dir坛ectio渗nF_E林levat猎orDir殿)=0扮;抓 尖 阵//通知在猜本层等待的窜乘客电梯离油开纤 慢virtu轧alvo伙idf_肾AddPa仓sseng挣erToS誉tayin都gCont难ainer屈(Pass茧enger佣*F_P执assen毁gerPt驱r)=陆0;棍 欣 出 灵 鉴//添加乘劲客到停留容羊器里,供乘赚客进入停留草容器时调用遮 森virtu险alvo灯idf_体Remov抗ePass薯enger羡FromS佣tayin姿gCont搬ainer难(Pass湖enger座*F_P贝assen鹊gerPt党r)=中0;灾 菌 影 到//从停留丢容器中移除这乘客,供乘蝶客停留时间踪到时进入等誓待容器时调灾用搁 爽virtu菌alvo顶idf_侧AddPa验sseng姨erToW驱aitin预gCont抄ainer智(Pass碌enger笛*F_P业assen胁gerPt伍r,Di载recti全onF_浑Passe先ngerD无ir)=馋0;详 奸 万 祥//添加乘知客到等待容训器,供乘客绪停留时间到处时进入等待设容器时调用职 院virtu荒alvo录idf_膨Remov扩ePass慕enger溉FromW礼aitin雾gCont幻ainer郑(Pass窄enger鸽*F_P知assen湖gerPt编r,Di泼recti型onF_匹Passe讲ngerD杠ir)=管0;浊 逐//从等待维容器中移除定乘客,供乘佳客进入电梯脸时调用究 柄virtu腥alvo袜idf_羡AddRe脆lated需Eleva圈tor(i霉ntF_汤Eleva星torNu装mber,帽Elev侍ator*惰F_El姜evato强rPtr)研=0;般 赞 沫 寺 植 补 六 假//添加可胆到达该层的推电梯信息以灾相应的标志棍};菠由Floo宾r类派生出半Botto梳mFloo微r、Mid兰dleFl术oor和T毯opFlo粱or丙这三个子类逮,接下来分劈别介绍。伪2.2B宰ottom爽Floor连底层楼层类疾Botto牌mFloo糠r类是对底垒层楼层(1恐楼)的抽象偏,它有如下慧的数据结构若和操作:抛对该类的说傅明如下:鲜class垄Bott煤omFlo穿or:侦publi目cFlo肌or黄{佣 泪intf玻_Floo承rNumb每er;啊 桥 浓 喇//楼层号袄 铺int俯f_Re童lated拌Eleva炉torSi朋ze;触 蜂 绵 获 康 购 篮 较 争 寄//可到达北该楼层的电纸梯的数目恨 径vecto恭r<Bot炎tomFl隶oorRe论lated段Eleva南tor>非f_Rel恩atedE漂levat车orVec加tor;挠 选 爱//可到达际该楼层的电禾梯列表腹 俱intf座_Stay期ingCo体ntain有erSiz泡e;喊 凤 档 规 锋 乞 半//该层中挽停留容器中铅乘客的数目沈 撒list<猾Floor避Relat览edPas接senge余r>f_耳Passe念ngerS绳tayin升gCont泰ainer书;纸 桥//该层中推停留容器(嘱停留乘客列坦表)迟 跪intf焦_Wait都ingUp奇Conta铸inerS倍ize;责 周 缝 纵 重 目//该层中挡等待向上容严器中乘客的夕数目舱 钞list<驴Floor驱Relat孤edPas披senge购r>f_规Passe讲ngerW刷aitin呀gUpCo刊ntain及er;祝 苍//该层中量等待向上容意器(等待向垫上乘客列表汁)挪pub鱼lic:肺 昏Botto鸡mFloo剩r(int诚F_Fl求oorNu骡mber)淡;嗽 难 例 砌//构造函歼数云 破~Bott扛omFlo可or();湿 爬 抓 面 以 岁 膊 恒//析构函制数燃 楼void摄f_Sim贴ulati讽on();生 比 便 尽//楼层仿螺真函数接口黎 辨void箩f_Pri锯ntCur秧rentS阔tate(阔);扒 蛙 妨//打印楼刑层当前状态施的函数接口煌 央intf帐_GetF饰loorN浅umber世();危 任 降 仰//获取楼征层号的函数催接口鸡 厅void反f_Add读Relat医edEle柏vator与(int昼F_Ele回vator诸Numbe谋r,El巨evato沾r*F_盈Eleva侵torPt测r);誉 发 盘//添加可肤到达该层的旋电梯信息以情及相应的标婚志薯 茂void柳f_Not挤iceEl无evato超rArri腰ve(in挺tF_E们levat拣orNum片ber,泊Direc中tion岔F_Ele逗vator柳Dir);森 玩 互//通知在宵本层等待的雾乘客电梯到幼达爆 死void遵f_Not斤iceEl惧evato翅rLeav田e(int双F_El奖evato候rNumb挠er,D减irect搏ionF诞_Elev已atorD竭ir);闸 疮 夫//通知在段本层等待的屑乘客电梯离压开纯 姨void笔f_Mak财eRequ涂est(i丑ntF_身Eleva宏torNu洲mber,辫Dire商ction团F_Re赞quest捞Dir);监 剖 点 盏 络//发出请柿求函数接口港,供乘客发徒出乘梯请求垄时调用显 面void伪f_Add利Passe惹ngerT误oStay知ingCo愉ntain队er(Pa字sseng睡er*F拦_Pass夺enger湿Ptr);帖 怪 检 终 掏//添加乘童客到停留容管器里,供乘省客进入停留路容器时调用立 朗void宰f_Rem晌ovePa驴sseng秩erFro朱mStay滨ingCo违ntain椒er(Pa着sseng桨er*F辫_Pass暴enger青Ptr);紫 所 稠 环//从停留藏容器中移除骨乘客,供乘君客停留时间神到时进入等石待容器时调葡用缘 久void贤f_Add匪Passe绿ngerT颂oWait纤ingCo术ntain求er(Pa盈sseng洗er*F谜_Pass鞋enger月Ptr,驾Direc远tion页F_Pas邪senge谎rDir)吸;躁 治 早 灵//添加乘惰客到等待容野器,供乘客汽停留时间到均时进入等待纤容器时调用有 碰void让f_Rem机ovePa强sseng罗erFro珠mWait盒ingCo菠ntain平er(Pa阅sseng戴er*F贱_Pass覆enger宪Ptr,伞Direc种tion宪F_Pas亦senge犬rDir)搭;忘 孙//从等待锤容器中移除泥乘客,供乘庄客进入电梯伤时调用种 式void旁f_Add悠Passe归ngerT萄oWait肢ingUp仁Conta批iner(揪Passe王nger*宰F_Pa算sseng漫erPtr私);奔 薯 渡 骆//添加乘而客到等待向撕上容器,供肝乘客停留时嫩间到时进入悔等待向上容尸器时调用越 灰void股f_Rem效ovePa饺sseng伟erFro辩mWait水ingUp诵Conta狂iner(豆Passe乖nger*惊F_Pa屿sseng抬erPtr揉);辛 苗//从等待景向上容器中灿移除乘客,汪供乘客进入宽电梯时调用缺 咱void玉f_Mak效eUpRe手quest冻(int嫂F_Ele灿vator散Numbe腊r);弓 识 斗 多 停//发出向丘上请求函数狼接口,供乘原客发出向上语乘梯请求时劝调用农 聋void驰f_Not粗iceEl声evato酱rArri畅veUp(馅intF寸_Elev红atorN嗽umber圈);到 选//通知在蜜本层等待的染乘客电梯到酒达并且接下摧来会向上运散动萌 认void触f_Not帆iceEl糠evato前rLeav群eUp(i热ntF_暗Eleva丝torNu常mber)兴;位 复 泽//通知在尚本层等待的胡乘客电梯离用开并且接下丢来会向上运火动柴 屿 絮void灭f_Not滩icePa普sseng猴erEle限vator抬Arriv赔eUp()川;价 严 挤 巩 译//通知在相本层等待的捷乘客本楼层南有哪些电梯姐停留、有哪督些电梯到达慢并且接下来焰会向上运动洲,这是留给息楼层调用的狗函数接口,询当电梯到达他某层楼,并夕且接下来将斥会向上运动厌时楼层调用厘该函数通知佳乘客菊 驱void左f_Rem界oveIn野valid端Passe沙ngerF行romSt泰aying龄Conta轧iner(抽);雨 岸//由楼层箭自己调用,菌删除已经离掉开随机停留顿容器的失效亿乘客混 饭void疑f_Rem掉oveIn基valid垦Passe卸ngerF翅romWa余iting桃Conta琴iner(择);故 运//由楼层牧自己调用,里删除已经离腐开等待容器轿的失效乘客款 坝void财f_Rem斧oveIn轿valid随Passe转ngerF售romWa饲iting亮UpCon遍taine致r();易 佳//由楼层赌自己调用,影删除已经离甩开等待向上偶容器的失效绿乘客芬};栽2.3M币iddle装Floor榨中间楼层类易Middl保eFloo嚷r类是对中用间楼层(2坚至39楼)法的抽象,它裹有如下的数辨据结构和操除作:桥对该类的说依明如下:罚class六Midd弹leFlo监or:恋publi医cFlo哄or斧{桌 栗intf驱_Floo减rNumb练er;大 唤 界 已//楼层号叼 迷intf狂_Rela公tedEl向evato轻rSize春;行 廉 焰 酿 概 季 程 敌 秧 勺 睬//可到达过该楼层的电疾梯的数目抓 解vecto另r<Mid秘dleFl棉oorRe上lated革Eleva笔tor>怀f_Rel胁atedE聚levat败orVec荷tor;默 签 惧//可到达阴该楼层的电贷梯列表包 盾intf棒_Stay要ingCo受ntain慨erSiz灰e;仇 编 钥 海 而 解 芬 禽//该层中舱停留容器中蓬乘客的数目溜 泼list<普Floor犹Relat金edPas循senge金r>f_傻Passe爸ngerS阿tayin哲gCont糕ainer慈;邮 切 日//该层中瞧停留容器(彼停留乘客列挎表)野 名intf教_Wait侵ingUp课Conta舌inerS辟ize;屋 葬 拆 猛 钟 材 笋//该层中妙等待向上容岔器中乘客的你数目页 粪list<旱Floor罩Relat月edPas院senge蚕r>f_谎Passe坑ngerW背aitin鸭gUpCo肠ntain粪er;拔 足 稳//该层中欣等待向上容蛮器(等待向羊上乘客列表殿)阀 桃intf料_Wait制ingDo娘wnCon料taine梯rSize肤;移 吗 调 练 动 锹 张//该层中误等待向下容谋器中乘客的绸数目席 刚list<翠Floor仁Relat鼓edPas佣senge厨r>f_讨Passe肾ngerW避aitin无gDown市Conta你iner;舅 稼//该层中棕等待向下容蹈器(等待向无下乘客列表板)荣publi美c:明 砌Middl辟eFloo妇r(int旦F_Fl哲oorNu搜mber)抄;架 掩 烛 筝//构造函销数僚 仍~Midd责leFlo按or();匆 禽 长 宽 敞 衡 吊 锈//析构函塞数弄 洁void古f_Sim办ulati久on();抄 减 贿 遍//楼层仿扩真函数接口畅 艰void剖f_Pri挤ntCur椒rentS熊tate(迷);怎 剧 浅//打印楼头层当前状态构的函数接口翁 疼intf茎_GetF物loorN累umber脏();罚 默 昂 膝//获取楼解层号的函数分接口量 越void顺f_Add闸Relat零edEle朗vator先(int社F_Ele垦vator繁Numbe朋r,El愚evato智r*F_鸭Eleva侄torPt沟r);炎 数 擦//添加可轰到达该层的遵电梯信息以膊及相应的标们志史 挤void壁f_Not尘iceEl否evato昼rArri跌ve(in毙tF_E绑levat给orNum获ber,惹Direc耍tion下F_Ele愉vator艇Dir);持 哲 日//通知在摊本层等待的趁乘客电梯到甜达泊 链void骑f_Not孩iceEl登evato羡rLeav献e(int芝F_El莲evato钉rNumb而er,D拘irect协ionF否_Elev面atorD晨ir);怒 林 歉//通知在螺本层等待的劈乘客电梯离白开每 拳void花f_Mak恰eRequ页est(i役ntF_汉Eleva病torNu分mber,毁Dire能ction脏F_Re轮quest棵Dir);果 华 担 酬 怠//发出请商求函数接口蹈,供乘客发泪出乘梯请求牺时调用息 棚void恨f_Add欺Passe东ngerT曲oStay愉ingCo嚷ntain桌er(Pa聪sseng荷er*F咐_Pass堆enger亩Ptr);教 组 良 沿 基//添加乘恳客到停留容子器里,供乘阻客进入停留妹容器时调用基 殃void类f_Rem蹦ovePa肾sseng请erFro肾mStay劝ingCo窑ntain胸er(Pa寻sseng宣er*F织_Pass绕enger岁Ptr);艘 决 返 拿//从停留汪容器中移除渠乘客,供乘军客停留时间筒到时进入等旱待容器时调誉用考 池void犁f_Add拆Passe哀ngerT阅oWait柄ingCo血ntain胁er(Pa艰sseng店er*F鬼_Pass及enger丑Ptr,吓Direc退tion抓F_Pas盟senge艰rDir)奶;域 站 敏 雹//添加乘岂客到等待容饰器,供乘客社停留时间到妥时进入等待盆容器时调用雨 层void水f_Rem协ovePa看sseng刺erFro圆mWait麦ingCo狠ntain洋er(Pa谜sseng琴er*F姓_Pass惨enger遭Ptr,织Direc用tion匹F_Pas暖senge茂rDir)女;医 侵//从等待转容器中移除犁乘客,供乘嘉客进入电梯肠时调用羽 惠void续f_Add错Passe犬ngerT性oWait削ingUp嚼Conta尾iner(是Passe死nger*脸F_Pa亚sseng纺erPtr移);送 笨 妈 泳 疤//添加乘剃客到等待向迁上容器,供阔乘客停留时跳间到时进入浙等待向上容稀器时调用遣 叶void妇f_Rem循ovePa芦sseng氏erFro芹mWait事ingUp郊Conta滨iner(演Passe妈nger*嚼F_Pa理sseng巡erPtr新);观 纹 桐//从等待建向上容器中膊移除乘客,将供乘客进入凝电梯时调用甩 咏void肠f_Add迈Passe公ngerT裳oWait诚ingDo贸wnCon址taine压r(Pas落senge品r*F_大Passe费ngerP震tr);币 孕 插 椒//添加乘膜客到等待向阔下容器,供气乘客停留时尊间到时进入飞等待向下容红器时调用蒙 饲void些f_Rem霜ovePa伏sseng锤erFro缠mWait隶ingDo膛wnCon侄taine角r(Pas寄senge炒r*F_欲Passe症ngerP源tr);士 艘 洒//从等待曾向下容器中蛛移除乘客,左供乘客进入石电梯时调用祸 钓void涝f_Mak橡eUpRe旧quest档(int滴F_Ele壁vator塘Numbe谜r);凳 览 深 刊 普 伏//发出向植上请求函数纯接口,供乘弓客发出向上榨乘梯请求时按调用锋 粗void均f_Mak浸eDown哀Reque蔽st(in肾tF_E技levat理orNum淹ber);侨 奶 兵 邪 促//发出向茶下请求函数轨接口,供乘察客发出向下爬乘梯请求时的调用宽 若void爷f_Not布iceEl恒evato本rArri它veUp(不intF盛_Elev日atorN申umber灵);额 项 讯//通知在倚本层等待的其乘客电梯到忘达并且接下润来会向上运宾动卖 姿void敌f_Not句iceEl偏evato瓜rArri垒veDow撇n(int减F_El建evato扑rNumb扎er);脏 羞 东//通知在妇本层等待的用乘客电梯到浆达并且接下链来会向下运萝动砌 宪void权f_Not汤iceEl王evato摇rLeav矛eUp(i甲ntF_躲Eleva骨torNu挺mber)依;忘 它 消 斤//通知在事本层等待的屯乘客电梯离墨开并且接下企来会向上运队动届 传void密f_Not唤iceEl疏evato帝rLeav鸭eDown螺(int烧F_Ele歪vator政Numbe软r);么 背 殖//通知在改本层等待的害乘客电梯离杜开并且接下撕来会向下运智动恼 式 融void驼f_Not房icePa个sseng轿erEle虽vator溪Arriv愤eUp()糕;竭 遮 乎 关 钉 升//通知在侍本层等待的脖乘客本楼层块有哪些电梯吹停留、有哪嗓些电梯到达雕并且接下来响会向上运动缠,这是留给盛楼层调用的医函数接口,赴当电梯到达粪某层楼,并谢且接下来将竭会向上运动徒时楼层调用烘该函数通知顷乘客脉 星void间f_Not芹icePa隔sseng非erEle嫩vator册Arriv竞eDown银();怜 挣 还 滨 移 杜//通知在刑本层等待的译乘客本楼层非有哪些电梯议停留、有哪谊些电梯到达凝并且接下来浊会向下运动烦,这是留给斯楼层调用的厅函数接口,墨当电梯到达柏某层楼,并鸽且接下来将铁会向下运动诊时楼层调用威该函数通知锹乘客偿 州void腰f_Rem诉oveIn过valid紫Passe全ngerF亏romSt单aying灶Conta拣iner(休);评 获 益//由楼层式自己调用,箩删除已经离殖开随机停留题容器的失效幕乘客桃 三void佳f_Rem绘oveIn丢valid剩Passe览ngerF尺romWa购iting诱Conta交iner(缺);弯 爹 膛//供楼层株自己调用,分删除等待向蚁上和等待向罩下容器中的本失效乘客朱 卖void兽f_Rem昨oveIn凝valid持Passe逮ngerF犯romWa松iting屋UpCon投taine岁r();鲜 凉 纵//由楼层过自己调用,芝删除已经离甲开等待向上钳容器的失效存乘客删 榨void齿f_Rem遗oveIn厚valid格Passe鸭ngerF腰romWa稳iting捕DownC病ontai昌ner()洪;奇 酸//由楼层插自己调用,雕删除已经离掠开等待向下击容器的失效马乘客势};蛾2.4T翅opFlo汉or顶层楼笨层类念Top轿Floor潜类是对踢顶庸层楼层(陷40乞楼)的抽象票,它有如下嫁的数据结构钟和操作:演对该类的说糖明如下:坐class抚TopF脂loor胁:pub贩licF桶loor改{裳 去intf珠_Floo疏rNumb区er;储 验 道 牙//楼层号袭 拥intf羡_Rela古tedEl猾evato扫rSize次;赠 创 顺 拼 徐 浙 狠 损 永 熟 抚//可到达畅该楼层的电闪梯的数目劲 啦vecto攀r<Top救Floor宫Relat哀edEle冈vator爪>f_R慈elate惧dElev镇atorV叛ector俘;仅 涝 结//可到达软该楼层的电诉梯列表舰 物intf时_Stay卫ingCo蝴ntain警erSiz姥e;浙 订 再 喜 琴 与 旋 填//该层中执停留容器中址乘客的数目如 笔list<维Floor丝Relat再edPas响senge驼r>f_涂Passe研ngerS单tayin脚gCont溪ainer除;月 氧 蜻//该层中绑停留容器(喊停留乘客列宿表)吊 阵intf骡_Wait榨ingDo因wnCon辉taine不rSize滴;敢 法 盟 挑 誓 锣 喷//该层中厕等待向下容绑器中乘客的隔数目泡 打list<音Floor币Relat券edPas异senge暗r>f_届Passe兆ngerW健aitin趴gDown鸡Conta呢iner;况 溉//该层中尾等待向下容平器(等待向唉下乘客列表念)绢publi亏c:腐 恢TopFl哀oor(i剑ntF_谅Floor佩Numbe厦r);早 同 各 向//构造函勺数激 悬~TopF释loor(帮);损 绍 巧 假 祝 地 凡 质//析构函燕数凭 览void尽f_Sim洽ulati魂on();拿 悼 舱 添//楼层仿锡真函数接口塞 缸void胳f_Pri穴ntCur劈rentS病tate(霜);看 菊 先//打印楼滔层当前状态项的函数接口自 战intf雨_GetF损loorN汇umber盏();矿 厕 蹄 歌//获取楼狐层号的函数焦接口锹 篮void秒f_Add轧Relat敏edEle耍vator旗(int挪F_Ele捡vator友Numbe饰r,El声evato盐r*F_才Eleva皇torPt望r);寸 读 嗓//添加可磁到达该层的惧电梯信息以介及相应的标位志街 筋void炒f_Not惊iceEl拿evato城rArri白ve(in悠tF_E束levat指orNum驾ber,糟Direc细tion册F_Ele蜓vator钓Dir);颂 论 胆//通知在酒本层等待的港乘客电梯到杨达辉 哑void羽f_Not匠iceEl司evato程rLeav乓e(int花F_El四evato将rNumb寺er,D沙irect展ionF饲_Elev舱atorD必ir);杀 式 趁//通知在武本层等待的真乘客电梯离萍开劣 拔void毛f_Mak是eRequ菊est(i阶ntF_胖Eleva弦torNu设mber,节Dire划ction怪F_Re讯quest损Dir);剪 挪 冻 侦 折//发出请拒求函数接口臣,供乘客发晓出乘梯请求炊时调用市 及void圈f_Add膀Passe慧ngerT斩oStay廊ingCo横ntain辟er(Pa脊sseng犁er*F刘_Pass滥enger态Ptr);积 谷 唐 筋 闲//添加乘概客到停留容狸器里,供乘偶客进入停留垃容器时调用厨 虾void腹f_Rem歼ovePa甘sseng便erFro妨mStay主ingCo留ntain警er(Pa脉sseng校er*F香_Pass铺enger柄Ptr);叼 谋 士 勉//从停留熄容器中移除晕乘客,供乘胀客停留时间德到时进入等乒待容器时调播用饼 泄void阔f_Add纹Passe果ngerT把oWait败ingCo怖ntain焰er(Pa兵sseng乎er*F曲_Pass码enger汁Ptr,茂Direc升tion姓F_Pas担senge啄rDir)掀;倚 玩 组 肥//添加乘乎客到等待容圾器,供乘客蝶停留时间到男时进入等待哭容器时调用宅 暴void坟f_Rem景ovePa瓜sseng悉erFro饰mWait器ingCo劝ntain纤er(Pa娱sseng喉er*F滚_Pass暗enger牲Ptr,木Direc梯tion家F_Pas蛾senge眉rDir)著;魔 晓//从等待贱容器中移除彻乘客,供乘略客进入电梯切时调用礼 捧void居f_Add厘Passe津ngerT卧oWait村ingDo底wnCon罚taine耍r(Pas眉senge站r*F_什Passe阔ngerP渣tr);政 赠 格 跑//添加乘木客到等待向结下容器,供棒乘客停留时堤间到时进入毫等待向下容键器时调用茄 王void佩f_Rem窗ovePa鸣sseng算erFro忧mWait菊ingDo三wnCon列taine嗓r(Pas记senge储r*F_锄Passe短ngerP阅tr);近 皆 笔//从等待鸡向下容器中托移除乘客,练供乘客进入越电梯时调用杜 并void匪f_Mak醒eDown呼Reque状st(in预tF_E顾levat辉orNum陷ber);丘 驳 诞 酒 秘//发出向穗下请求函数闹接口,供乘钻客发出向下伸乘梯请求时窝调用车 状void扒f_Not山iceEl仓evato序rArri犯veDow淘n(int凑F_El惰evato书rNumb洲er);男 烤 村//通知在伸本层等待的贿乘客电梯到昆达并且接下毫来会向下运滑动祸 至void亏f_Not誉iceEl必evato保rLeav殖eDown许(int卵F_Ele胀vator班Numbe广r);已 法 奔//通知在纪本层等待的王乘客电梯离胞开并且接下胀来会向下运乒动箩 小void当f_Not旬icePa晒sseng踏erEle觉vator耗Arriv通eDown劈();更 狼 装 暮 郑 枝//通知在块本层等待的挥乘客本楼层平有哪些电梯先停留、有哪快些电梯到达辟并且接下来肾会向下运动芦,这是留给夜楼层调用的俩函数接口,凶当电梯到达蜜某层楼,并吹且接下来将男会向下运动锯时楼层调用炎该函数通知颜乘客鸭 捕void辞f_Rem丹oveIn犁valid牛Passe避ngerF品romSt找aying椅Conta候iner(静);译 伴 喜//由楼层伯自己调用,待删除已经离寄开随机停留刊容器的失效帝乘客僵 骡void顶f_Rem仙oveIn超valid辨Passe垄ngerF叼romWa壳iting慈Conta代iner(郑);培 埋 誓//由楼层企自己调用,林删除已经离貌开等待容器却的失效乘客础 桐void够f_Rem烈oveIn辅valid法Passe逝ngerF沈romWa垦iting呈DownC追ontai荷ner()迅;弹 茧//由楼层夕自己调用,歌删除已经离值开等待向下死容器的失效艳乘客职};朱3.翅Passe另nger类驻的说明隔对该类的说系明如下:进class禁Pass只enger夕{票priva剂te:狭 辣stati斩cFlo嫂or*p满_Floo它rPtrA质rray[迁Total敏Floor拥Numbe凡r];铃 砖 大 弊 讨 饰 撑 坝//包含所信有楼层指针碎的指针数组盐 牧stati赵cEle缎vator怒*p_E贩levat营orPtr腰Array窑[Tota秘lElev辟atorN泡umber饮];咽 迎 肾 旋 岸 名//包含所库有电梯指针寨的指针数组阁 拳stati窑cboo浴lFlo格orEle片vator抖Arriv算eTabl兴e[Tot厘alFlo宰orNum呼ber][僵Total膨Eleva纵torNu春mber]碑;//包含法楼层电梯可框达信息的楼他层电梯可达熊表污 嚼stati演cint素p_In殿OutTi蠢me;卖 粒 掀 佛 躺 略 汉//乘客上奸下电梯所需池时间势 尝stati德cint珠p_Pa刚sseng助erGet氏InTot纺alNum侵ber;僻 榜 睛//已经进影行仿真的乘破客数目辰 拿stati肌cint滩p_Pa救sseng虹erGet酱OutTo敢talNu乏mber;假 基//已经结那束仿真的乘劈客数目掩 溉intp森_Pass脂enger某Numbe内r;貌 串 煎 屠 咏//乘客编俯号折 黑intp供_Curr宜entFl扰oorNu尾mber;废 勇 献 岁//乘客当歇前所在楼层王编号掘 菜Floor近*p_C枪urren淘tFloo潜rPtr;体 皮 穷 旱//乘客当腾前所在楼层谣指针厅 什intp肆_Dest波inati刺onFlo照orNum奏ber;贝 表 告//乘客目贴标楼层编号勾 恨Direc贺tion吵p_Dir御ectio怜n;督 很 迈 债 淋//乘客的锣方向际 侨intp研_Dest闯inati谜onEle奔vator仪Numbe筛r;委 枝//乘客所淋选择乘坐的据目标电梯编明号丝 顺Eleva既tor*忠p_Des酬tinat赔ionEl贩evato饱rPtr;巨 室//乘客所惹选择乘坐的佛目标电梯指叮针萄 顷Passe墨ngerS羽tate趟p_Cur西rentS挺tate;拾 蜡 暗//乘客的砌当前状态圆 刷intp愤_Tota旱lSimu序latio戚nTime肠;梳 绪 虑 劈//乘客的举总仿真次数叔 岗intp愤_Curr寻entSi择mulat适ionTi吵me;名 伙 抓//乘客的疗当前仿真次脊数以 干intp兄_Tota榨lWait老ingTi饥me;始 茂 粘 纸 建//乘客总贡等待时间弟 邻intp仁_Curr序entWa秃iting妥Time;家 轿 训 啊//乘客当量前等待时间语 足intp袋_Rand常omSta保yingT叉ime;殃 震 煮 糊//乘客的报随机停留时向间乓 况intp险_Curr职entSt局aying章Time;筐 蔬 嘱 墨//乘客当迎前停留时间饺 曲intp夺_InOu撑tStep纵;薯 晋 舞 课 煤 毕//乘客上赶下电梯步伐牧计数器舅 毫intp荷_Rela率tedEl冠evato括rList拣Size;虚 衰 湖 孔 垦 枣 译 样//可供乘煤客选择的能润够到达目标吊楼层的电梯涨(可用电梯罗)的数目暂 拳list<配Passe迁ngerR索elate拴dElev筑ator>邪p_Re监lated歉Eleva淡torLi考st;捆 齿//可供乘捕客选择的能等够到达目标妈楼层的电梯晓(可用电梯扔)列表辩publi熟c:炒 钓Passe捏nger(妹intP死_Pass钱enger熟Numbe住r);劲 独 奥//构造函筋数营 威~Pass租enger顿();壮 门 祝 叨 茅 药 绸 拼//析构函但数姥 盗stati杜c败 押void戴p_Cre熟ateFl肤oorEl努evato须rTabl黄e(boo朝l*P_岗BoolP障tr);塔 雄 斥//创建包题含楼层电梯沟可达信息的馅楼层电梯可兵达表的函数舒接口虏 席stati挽c蚁 盼void缓p_Cre照ateFl跃oorTa城ble(F秩loor欠**P_F弄loorP投tr);赔 醋 里 绒//创建包乱含所有楼层盛指针的指针腔数组的函数嚼接口兰 筛stati祖c测 聋void哥p_Cre嫌ateEl伯evato谷rTabl蝶e(Ele芦vator困**P_系Eleva论torPt乏r);伤 落//创建包阔含所有电梯款指针的指针懒数组的函数那接口竭 窝stati帽cvoi妈dp_S务etInO润utTim签e(int隔P_In页OutTi仙me);绢 感 腾//设置乘离客上下电梯捐所需时间的切函数接口舒 车stati撕cint搁p_Ge佣tInOu潜tTime按();旬 浪 御 嘱 凳 秤 福//获取乘田客上下电梯葱所需时间的限函数接口打 相stati正cint勤p_Ge捐tPass岩enger始GetIn心Numbe踏r();咳 聚 熄//获取当地前已经进行泡仿真的乘客份的数目的函吩数接口布 鄙stati托cint克p_Ge萍tPass豆enger街GetOu透tNumb丘er();看 静//获取当厘前已经结束密仿真的乘客犹的数目的函消数接口感 看void鹅p_Sim织ulati凉on();樱 况 舱//乘客仿寨真函数接口信 铃void粱p_Get糠Summa讨ry();践 足 柴//乘客仿饺真结束后显娇示乘客等待撤时间的函数晒接口滑 针void抗p_Pri辅ntCur妙rentS晴tate(右);婶 境//打印乘盏客当前状态许的函数接口捉 飞void损p_Cre端ateRe黎lated楼Eleva傻torLi植st();裤 留 傲//创建可孕供乘客选择莫的能够到达增目标楼层的肃电梯(可用味电梯)列表并的函数接口召 奋void羞p_Des殖troyR很elate疾Eleva捞torLi许st();贩 引 惜//删除可捆供乘客选择佛的能够到达均目标楼层的步电梯(可用根电梯)列表型的函数接口欺 侮void鲁p_Mak橡eUpRe常quest陆();悠 堪 岔//对楼层负中的可到达臂目标层的所抢有电梯(可君用电梯)发多出向上乘梯伐请求的函数佳接口镰 杰void蹲p_Mak困eDown蜘Reque走st();腰 弱//对楼层棋中的可到达酸目标层的所笔有电梯(可门用电梯)发饿出向下乘梯位请求的函数减接口及 送void援p_Not楚iceEl甘evato制rArri怖veUp(具intP垫_Elev摆atorN促umber蕉);正 致//获取可抛到达乘客目卵标楼层的电裤梯(可用电怜梯)向上运耕动并且到达隔乘客所在层庭信息的函数助接口播 牛void斤p_Not柳iceEl遮evato叼rArri伶veDow汉n(int米P_El以evato欲rNumb姑er);饭 稳//获取可扑到达乘客目寸标楼层的电油梯(可用电侵梯)向下运质动并且到达茶乘客所在层保信息的函数苗接口可 陪void毕p_Not炸iceEl贡evato碍rLeav卧eUp(i水ntP_出Eleva轮torNu江mber)杜;轻 素 压//获取可齐到达乘客目勇标楼层的电喂梯(可用电洋梯)向上运芹动并且离开僚乘客所在层该信息的函数扇接口估 蒸void光p_Not淡iceEl勉evato戏rLeav睛eDown迎(int巷P_Ele屯vator湖Numbe念r);餐 咱//获取可玩到达乘客目膊标楼层的电避梯(可用电穴梯)向下运驱动并且离开爷乘客所在层贫信息的函数权接口景 软void翼p_Set锄Desti胜natio就nFloo原r();原 月 屿//在电梯逮中设置目标嚷层的函数接阔口目 将void喉p_Get估InBui擦lding别();羽 尽 茧//仿真开种始乘客进入图大楼的函数裕接口杂 贺void龄p_Get运OutBu洁ildin饲g();马 之//仿真结蹲束乘客离开巧大楼的函数核接口除};捷4.费重要的数据芝结构柏(1)表温示方向的枚绳举类型枪typed端efen影um假{引 略Direc剑tionU织p=0涉,排 窗 挨 耍//表示方浴向向上研 世Direc连tionD导own=赶1,删 缺 察//表示方眉向向下作 竿Direc察tionS寻tay=汪2箩 邪 树 怖//表示既钥不向上也不筑向下,在某监层停留或停类止苦}Dire剃ction赖;港(2)表示后乘客状态的匪枚举类型陪typed声efen敞um郊{毁 纺Befor赞eSimu霜latio监n=0晃,翅 遍 箱 妖//表示该钥乘客还未进皱入大楼,仿瘦真还未开始越 纹StayF团orRan欲domTi穿me=金1,向 篮 窜//表示乘圾客的状态为稍在某层随机眨停留类 胆WaitF记orEle解vator总Arriv剧e=2珠,燕 葬 翠//表示没归有电梯到达卡,乘客的状宋态为等电梯骆到达灾 队WaitT筝oGetI卸nElev河ator火=3,厦 缺 脆//表示电折梯到达,乘尿客的状态为抬等待上电梯恢(等待前方督乘客先上电起梯)骡 走GetIn淡Eleva万tor=戒4,浮 施 急 费 刻//表示轮恢到乘客自己冲上电梯,乘钞客的当前状进态为正在上鼓电梯稼 荣WaitE剧levat天orToR盾un=醉5,夹 用 疏 底//表示乘丈客已经进入独电梯(等待顾后面的人上巷电梯),乘茄客的当前状之态为等待电遭梯运行陪 已RunWi畅thEle马vator芒=6,潮 遮 法 拐//表示乘堡客的当前状犹态为随电梯摧运行闸 叮StopW唐ithEl稀evato缓r=7棋,耐 购 乔 备//表示电夸梯在某层停裙下(非本乘京客的目标层锦),乘客的技当前状态为仪随电梯停留辫 先WaitT都oGetO抵utEle败vator叮=8,狠 徒 剂//表示电哑梯在本乘客乎的目标层停邮下,乘客的她当前状态为缘等待下电梯怎(等待前面乏的人先下电挤梯)款 胞GetOu糊tElev矩ator拼=9,致 译 应 舅 家//表示轮垒到乘客自己利下电梯,乘锯客的当前状祸态为正在下得电梯息 均After嚼Simul泊ation母=10谣 显 似 碍//表示乘颠客仿真次数堵已足够,乘捞客的仿真结魂束腰}Pass仇enger雅State纵;均(3)表纺示抬表示可到达绩乘客目标楼花层的电梯筹(可用电梯裙)镰及其相应状奋态索的结构体催struc早tPas阴senge筹rRela付tedEl蒙evato翁r肿{蚊 部intp喇_Elev克atorN深umber孕;驾 避 益 涛//表示可粱到达乘客目盐标楼层的电啊梯号诞 让Eleva禁tor*架p_Ele姥vator盆Ptr;潮 伴 挠//表示编给号为p_E絮levat款orNum嘉ber的电串梯(可用电禽梯)所对应泛的指针卧 沈bool放p_bAr攀rived甲Up;跳 头 匪 弦 竖//表示编设号为p_E起levat轿orNum你ber的电核梯(可用电敞梯)是否向刷上运动并且浩到达乘客所罩在层的标志版 恐bool碎p_bAr梅rived拆Down;扣 仪 句 店//表示编蚊号为p_E卧levat撒orNum幸ber的电诉梯(可用电终梯)是否向餐下运动并且寒到达乘客所牛在层的标志骗};及(毙4湿)表示物电梯状态的焦枚举类型芳typed木efen已um验{世 音Stop希=0,竹 怨 像 胀//表示电松梯当前状态警为停止(在刷某层停留,评但并没有乘袋客上下)蹦 颗GoUp离=1,残 芒 投//表示电辟梯当前状态莲为向上运动倍 俊GoDow个n=2沿,旷 际 爬//表示电句梯当前状态争为向下运动震 铃Stay范=3鄙 成 利 份//表示电智梯当前状态青为在某层停角留(上下乘退客)蜜}Elev锦atorS甜tate;壳(趋5泽)艳表示迁电梯可到达作楼层及其相井应状态的结松构体畅struc稻tEle对vator财Relat晓edFlo脾or呀{迫 貌inte渗_Floo寺rNumb蔑er;健 追 豆 汇//表示电佩梯可到达楼乳层的楼层号遵 比Floor百*e_F针loorP号tr;涛 诚 伸 巡//表示e蹲_Floo贼rNumb腾er楼层的贫楼层指针饿 悦bool捆e_bDe技stina慈ted;似 侨 曲 勿//表示e究_Floo覆rNumb常er楼层是怒否为电梯内竹某一乘客的灾目的楼层的库标志迎 纲bool戚e_bRe翻quest饲edUp;善 杯 燥//表示电择梯是否被e挽_Floo捧rNumb桥er楼层请寄求向上的标护志城 哀bool歼e_bRe拨quest席edDow逮n;诚 咐 轻//表示电违梯是否被e踏_Floo夺rNumb码er楼层请吩求向下的标蹦志蠢 纳bool领e_bAr奥rived际Up;横 狗 些 退//表示电皇梯是否到达蓬e_Flo卫orNum隆ber楼层接并且下一运颤动方向向上匆的标志困 爪bool童e_bAr枝rived楚Down;舟 荐 债//表示电东梯是否到达娃e_Flo暮orNum爸ber楼层鉴并且下一运着动方向向下殊的标志皱 兼inte辟_Pass小enger淹Conta覆inerF雪loorS牲ize;怪 穷 慢 努//表示目盲标楼层为e减_Floo新rNumb显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论