版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、oxstar数据结构实验报告(第一次)名称机场模拟程序AirportSimulation (三跑道)问题描述 设机场有三个跑道,跑道1专用于降落,跑道2专用于起飞,跑道3优先用于降落。当 等待降落队列为空时,跑道3也可用于起飞。修改并运行机场模拟程序AirportSimulation,使之能利 用所有的跑道资源。分析 教材中已经给出了非常详细的实例,由于只是跑道数量的不同,只需在它的基础上将模拟函 数、参数设置和数据成员做一些修改即可。数据结构和算法分析本例涉及的数据结构类型主要是环状队列,用于存储等待的飞机队列。由于飞机从哪一条跑道 降落或者起飞是由机场方面动态决定的,故仍只需两个队列。原例
2、中跑道大约可以提供1/2时间用于 降落,不妨设权重为1/2,那么根据题意,本例降落时间权重将达1+1/2=3/2,因而将等待队列延长至15(需开设16)。起飞等待队列同理。队列长度在 Queue.h中默认定义:const int DefaultSize = 16;Queue( int MaxQueueSize = DefaultSize );Queue结构属于数据结构基础的内容,不在此讨论,代码详见Queue.h。与上述相似的原因,单位时间期望到达飞机总数上限也相应提升至3。只可能同时安排2架飞机起飞或者降落,所以增加单起/降总数限制为2。AirportSimulation:AirportSi
3、mulation() else if( expectarrive + expectdepart 3.0 | expectarrive 2.0 | expectdepart 2.0 )cout 机场将饱和!请重新输入。 endl;ok = false;为确保供数据分析的数据全面,为每一条跑道提供了单独储存空闲时间单元数、降落 /起飞飞机 数等的变量,并在程序相应位置给出设置和显示输出。int idletime1;int idletime2;int idletime3;int nland1;int nland3;int nland;int ntakeoff2;int ntakeoff3;int n
4、takeoff;/跑道1空闲时间单元数 /跑道2空闲时间单元数 / 跑道 3空闲时间单元数 /跑道1降落的飞机数 /跑道3降落的飞机数 / 降落的飞机总数 /跑道2起飞的飞机数 /跑道3起飞的飞机数 / 起飞的飞机总数在实现安排跑道的算法方面,基于各条跑道的不同性质,可以用3条顺序执行的判断语句用以 安 排飞机起降,形如:if( !landing.IsEmpty()void AirportSimulation:RunSimulation() /跑道3降落飞机if( !landing.IsEmpty() /跑道1降落飞机p = *landing.Delete( p );Land( p, 1 );
5、)else Idle( 1 );if( !takeoff.IsEmpty() /跑道2起飞飞机p = *landing.Delete( p );Land( p, 3 );else if( !takeoff.IsEmpty() /跑道3起飞飞机p = *takeoff.Delete( p );Fly( p, 3 );p = *takeoff.Delete( p );else Idle( 3 ); / 处理空闲时间单兀Fly( p, 2 );)else Idle( 2 );由于跑道增多,起飞和降落飞机需要显示具体跑道信息,因此Fly、Land、Idle和Conclude 函数需要重新定义:void
6、 AirportSimulation:Fly( plane& p, int airstrip ) int wait = curtime - p.tm;cout 飞机, p.id ”从跑道” airstrip ”起飞,该机等待时间:”wait 。 endl;if( airstrip = 2 ) ntakeoff2+; / 跑道 2 起飞飞机总数加 1elsentakeoff3+;/跑道3起飞飞机总数加1takeoffwait += wait;/累加总起飞等待时间Land函数与之完全类似,在此省略。void AirportSimulation:Idle( int airstrip ) endl;c
7、out ,。跑道” airstrip ”空闲if( airstrip = 1 )idletime1+; / 跑道1空闲时间加1else if( airstrip = 2 )idletime2+; /跑道2空闲时间加 1 elseidletime3+; /跑道3空闲时间加1void AirportSimulation:Conclude()nland = nland1 + nland3;ntakeoff = ntakeoff2 + ntakeoff3;cout endl;cout ”总模拟时间单元数:, endtime endl;cout 时间单元内期望到达降落飞机数: expectarrive
8、endl;cout ”一个时间单元内期望到达起飞飞机数: expectdepart endl;cout endl;cout ”总共处理的飞机数: nplanes endl;cout ”跑道1降落飞机数:” nlandl endl;cout ”跑道3降落飞机数:” nland3 endl;cout ”降落飞机总数:” nland endl;cout 跑道2起飞飞机数: ntakeoff2 endl;cout 跑道3起飞飞机数: ntakeoff3 endl;cout 起飞飞机总数: ntakeoff endl;cout ”拒绝服务的飞机总数: nrefuse endl;cout 队列中剩余的准备
9、降落飞机数: landing.Size() endl;cout 队列中剩余的准备起飞飞机数: takeoff.Size() endl;cout 0 )(cout 跑道1空闲时间百分比: (double) idletime1 / endtime ) * 100.0 endl;cout 跑道 2 空闲时间百分比: (double) idletime2 / endtime ) * 100.0 endl; cout ”跑道3空闲时间百分比: (double) idletime3 / endtime ) * 100.0 0 )cout 降落平均等待时间: (double) landwait / nlan
10、d 0 )cout 起飞平均等待时间: (double) takeoffwait / ntakeoff endl;)其它相关函数与书上是一样的。书中程序中还有一些小错误需要修正如下:x = rand() / (double) RAND_MAX ;使用INT_MAX是不正确的,INT_MAX手RAND_MA。XQueue landing;/等待降落飞机队列,假设用环型队列,实际长15度为Queue takeoff;/等待起飞飞机队列,同上类定义中是不允许为变量赋值的。即不可写为Queue landing(16);测试数据和实例总模拟时间单元数:100一个时间单元内期望到达降落飞机数:1.5一个时
11、间单元内期望到达起飞飞机数:1.5运行结果分析限于篇幅,这里只安排执行结果片段以及一次执行的最终结果:说明:表示迎接新飞机表示飞机使用跑道=表示拒绝飞机请求。表示跑道空闲时间单元82:飞机263准备降落。飞机264准备降落。飞机265准备降落。飞机266准备降落。飞机267准备起飞。飞机268准备起飞。=告诉飞机268等一会儿再尝试起飞。飞机260从跑道1降落,该机等待时间:1。飞机222从跑道2起飞,该机等待时间:10。飞机261从跑道3降落,该机等待时间:1。时间单元83:飞机269准备降落。飞机270准备降落。飞机263从跑道1降落,该机等待时间:1。飞机223从跑道2起飞,该机等待时间:11。飞机264从跑道3降落,该机等待时间:1。时间单元 89:。跑道1空闲。飞机240从跑道2起飞,该机等待时间:14。飞机243从跑道3起飞,该机等待时间:13。总共处理的飞机数:303 跑道1降落飞机数:88 跑道3降落飞机数:71 降落飞机总数:159 跑道2起飞飞机数:99 跑道3起飞飞机数:26起飞平均等待时间:6.048队列中剩余的准备降落飞机数0 队列中剩余的准备起飞飞机数14 跑道1空闲时间百分比:12 跑道2空闲时间百分比:1 跑道3空闲时间百分比:3 降落平均等待时间:0.528302起飞飞机总数:125拒绝服务的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北师大七年级下册认识三角形二课件
- 玉溪师范学院《体育游戏与拓展训练》2023-2024学年第一学期期末试卷
- 玉溪师范学院《数据库原理与应用》2022-2023学年期末试卷
- 冀教版英语六下《教案》教学设计
- 几种重要的金属教案
- 交管12123学法减分考试题目及答案-知识题库
- 中学生使用手机管理规定
- 大班美术教教案教育课件
- 2024年精细药液过滤器项目评价分析报告
- 2024年营养型输液项目评估分析报告
- 2024至2030年中国发光字边底数据监测研究报告
- 2024-2030年中国热泵热水器(空气源热泵)行业运营模式及发展策略分析报告版
- DB41T 1250-2016 小麦秸秆粉碎还田技术规程
- 2024-2030年中国楼宇自控系统行业发展动态规划分析报告
- 吊装起重作业安全培训课件
- 物业管理费收费技巧培训
- 羽毛球比赛活动
- 山东省临沂市兰山区2024-2025学年部编版七年级上学期期中历史试卷(含答案)
- 行政复议法-形考作业4-国开(ZJ)-参考资料
- 特种设备锅炉日管控、周排查、月调度主要项目及内容表
- 汽车空调制冷不良故障诊断与检修毕业论文
评论
0/150
提交评论