教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

机场航空管制模拟实验报告

来源:网络收集 时间:2026-09-24
导读: 数据结构大型实验实验报告 机场航空管制模拟实验报告 数据结构大型实验实验报告 实验题目 假设机场有一条跑道,每架飞机需花费一定时间着陆,花费一定时间起飞,飞机的起降满足一定的概率。一般来讲,机场存在两个队列,一个等待着陆的飞机队列和一个等待起

数据结构大型实验实验报告

机场航空管制模拟实验报告

数据结构大型实验实验报告

实验题目

假设机场有一条跑道,每架飞机需花费一定时间着陆,花费一定时间起飞,飞机的起降满足一定的概率。一般来讲,机场存在两个队列,一个等待着陆的飞机队列和一个等待起飞的飞机队列,同样等待时间下,等待着陆的飞机比准备起飞的飞机具有更高的优先级。试编写程序模拟这个机场的运行。要求使用队列或优先队列实现;要求可以变换起飞和着陆频率来模拟一天中的飞行高峰期和空闲期;要求可以改变着陆和起飞时间以模拟不同的效果。

1. 实验内容分析

1.1实验目的

实验模拟了机场的航空管制,通过程序,来模拟管理飞机的起飞与着陆。它要求我们考虑起飞与着陆的优先级不同,以及根据飞机起飞/着陆时间,起飞/着陆频率模拟机场一天的运营情况。并计算出跑道的繁忙程度、着陆飞机的总的等待时间和平均等待时间、起飞飞机的总的等待时间和平均等待时间, 计算每架飞机花费在一个队列中的平均时间。

1.2内容分析

系统主要模拟了机场一天的运营。所以,需要一个计时器(以分钟计时)来计算机场的运营时间。同时,为了管理飞机的起飞与着陆,需要两个队列来存放着陆和起飞的飞机。 设计用户输入的数据为:机场开始、结束运营时间;高峰期开始、结束时间;空闲期开始、结束时间;着陆飞机最长等待时间;高峰期、空闲期以及一般时期每小时起飞、着陆的飞机数,飞机起飞、着陆需要的时间。

考虑到机场的高峰期,与空闲期,设计了Workslot类,设定不同时期的飞机起飞、着陆率。

设计Timer类,其主要方法是实现计时功能和返回当前工作时间。Plane类主要功能是记录飞机开始等待时间,开始工作时间以及起飞、着陆所需时间。

飞机起飞/着陆都需要花费一定的时间,并不是马上就完成的。所以在起飞/着陆服务函数中,不仅要调用spend(),还需要判断takeoff/landing是否结束。当t.now-startworktime<workTime时,说明飞机还在准备着陆/起飞,占用了跑道。当t.now-startworktime==workTime时,表示飞机着陆/起飞成功。调用pop方法,从队列中删除一架等待服务的飞机,并获取当前时间,减去飞机接受服务的时间,得到该飞机的等待服务时间。我们就可以计算出所有飞机的等待服务时间。

等待起飞/着陆队列总长度,等待服务总时间,以及服务起飞/着陆的飞机总数,我们就可以得出起飞/着陆飞机的平均等待时间,平均等待队列长度。同时根据当天的的工作时间,跑道的忙碌时间,可以计算得到跑道的繁忙程度。

数据结构大型实验实验报告

1.3程序基本流程

数据结构大型实验实验报告

图 1 实验基本流程

1.4基本数据结构,类设计

1.4.1类 Airport

输入:

数据结构大型实验实验报告

输出

成员

数据结构大型实验实验报告

1.4.2类Plane

成员:

1.4.3类Timer

成员:

1.4.4类Workslot

成员:

1.4.5结构 Busy

成员:

数据结构大型实验实验报告

1.5基本函数功能

1.5.1 类Simulation

setTimer():

设定计时器函数

setTakeoffTime(int t1):

设定起飞所需时间函数

setLandingTime(int t2):

设定着陆所需时间函数

setMaxlandingwaitTime(int mlwd):

设定着陆飞机最大等待时间

setStartworkTime(string s):

设定机场开始工作时间函数

setEndworkTime(string s):

设定机场结束工作时间函数

setHighslot(Workslot h):

设定高峰期机场属性

setLowslot(Workslot l):

设定空闲期机场属性

setOtherslot(Workslot o):

设定一般时段机场属性

run():

模拟飞机场运营。

数据结构大型实验实验报告

display():

该函数主要用于计算一些值,并输出在屏幕上。

跑道的繁忙程度= workTime/(endworkTime-startworkTime) 着陆飞机平均等待时间=landingwaitTime/landingNum 着陆飞机在队列中的平均等待时间=LwaitTime/landingNum 起飞飞机总的等待时间=takeoffwaitTime

起飞飞机平均等待时间=takeoffwaitTime/takeoffNum

起飞飞机在队列中的平均等待时间=TwaitTime/takeoffNum 起飞队列中剩余未起飞飞机数量=intakeoffNum-takeoffNum 再使用输出语句输出这些值。

1.5.2 类Plane

Plane()

用于初始化飞机的startwaitTime,startworkTime,workTime。

Plane(int a,int b,int c)

同上。

1.5.3 类Timer

Timer()

初始化当前时间。

Timer(int n)

同上。

void spend()

计时累加函数。

数据结构大型实验实验报告

2. 实验验证分析

2.1输入的形式和输入值的范围

2.2输出的形式

控制台下运行,结果输出形式:

时间: XX: XX X号起飞飞机进入起飞队列

时间: XX: XX X号起飞飞机开始起飞; 等待时间: XXmin ……

本日机场运营情况:

跑道的繁忙程度: XX 着陆飞机总的等待时间: XXh 着陆飞机平均等待时间: XXmin 着陆飞机在着陆队列中的平均等待时间: XXmin 起飞飞机总的等待时间: XXh 起飞飞机平均等待时间: XXmin 起飞飞机在起飞队列中的平均等待时间: XXmin 起飞队列中剩余未起飞飞机数量: XX

2.3程序所能达到的功能

程序实现了如下的功能:

数据结构大型实验实验报告

设置机场的工作时间 模拟机场的运营

模拟机场的高峰期和空闲期

计算出机场当天起飞/着陆的飞机数目

计算出等待队列(起飞/着陆)的平均长度 计算队列的平均等待时间 简单表示跑道的繁忙程度

2.4测试数据

数据结构大型实验实验报告

3. 调试分析

3.1遇到的问题及解决方法

3.1.1问题一

问题:在模拟结果中只有起飞飞机或着陆飞机。 解决方案:算法出现问题,重新写主程序。

3.1.1问题二

问题:机场的忙碌情况大于1。

解决方案:检查后发现,跑道功能工作时间的实现有问题,将代码进行改进。

3.1.1问题三

问题:产生随机数太过规则。

解决方案:发现是产生随机数的函数位置有问题,进行调整。

3.2技术难点分析

3.2.1难点一

一架飞机完成起飞/着陆花费一般超过一分钟,那么随着时间的累积,该如何来判断对当前飞机的服务结束了呢。

解决办法是给Plane类添加开始工作时间的参数,这样是要判断当前时间与开始工作时间的差值是否已到达起飞/着陆所耗时,即可判断起飞/着陆是否完成。

3.2.2难点二

单单用bool busy数据记录跑道是否忙碌会出现:当跑道忙碌时,不能判断跑道上运行的是起飞飞机还是着陆飞机这种情况。因此,我构造了Busy结构,里面不仅包括对跑道是否忙碌的的记录(bool busy)还包括对跑道上运行的是否为起飞飞机的记录(is_takeoff)。这样就可以判断跑道上忙碌时运 …… 此处隐藏:2853字,全部文档内容请下载后查看。喜欢就下载吧 ……

机场航空管制模拟实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1708552.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)