实验报告机场模拟程序Airport

上传人:新** 文档编号:513033722 上传时间:2024-02-19 格式:DOCX 页数:7 大小:20.08KB
返回 下载 相关 举报
实验报告机场模拟程序Airport_第1页
第1页 / 共7页
实验报告机场模拟程序Airport_第2页
第2页 / 共7页
实验报告机场模拟程序Airport_第3页
第3页 / 共7页
实验报告机场模拟程序Airport_第4页
第4页 / 共7页
实验报告机场模拟程序Airport_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验报告机场模拟程序Airport》由会员分享,可在线阅读,更多相关《实验报告机场模拟程序Airport(7页珍藏版)》请在金锄头文库上搜索。

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

12、从跑道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拒绝服务的飞机总5从结:果中可以明显地看出:降落优先起飞很多,并且各条跑道都得到了充分应用。这些都是符合预先估计的。同时我还观察到在几乎所有模拟运行结果中,都满足跑道1空闲时间百分比跑道3空闲时间百 分比或跑道2空闲时间百分比。这说明跑道3的降落优先对跑道1有很强的分流作用,自然跑道2自 己的压力就要相对大一些了。结论本实验程序可以有效地处理较为理想的机场模型,与教材期望是一致的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号