鱼C论坛

 找回密码
 立即注册
查看: 2620|回复: 2

多跑道机场仿真

[复制链接]
发表于 2019-1-6 18:13:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用数据结构c语言模拟        多跑道机场仿真    哪位大神能帮我看看,感谢!!!
【问题描述】
某机场有三条跑道,编号为0、1、2。其中0号和1号跑道主要用于降落(即降落优先),2号跑道主要用于起飞(即起飞优先)。因此有两个着陆等待队列,到达机场上空的飞机进入任意一个等待着陆队列,两个着陆队列长度应尽量保持接近。飞机进入着陆等待队列后,要赋予一个唯一的整数(例如奇数)标识,以及一个表示飞机可以滞空的最大时间(因燃油有限),也是整数值,且假定飞机每停留一个时间单位就要消耗掉一个单位的燃油。飞机的起飞可以用三条跑道中的任意一条,但只有一个起飞等待队列,飞机进入起飞等待队列后,也赋予一个唯一的整数(例如偶数)标识。
每一时刻,着陆等待队列中的飞机数量不超过5架,起飞等待队列中的飞机数量也不超过5架。每条跑道在一个时间单位只能让一架飞机着陆或起飞。尽管0号1号主要用于着陆,但如果没有飞机滞空,跑道空闲的时候,也可以同时用于起飞,这样同一个时间单位内就可以允许至多3架飞机同时升空;同样,尽管2号跑道主要用于起飞,但是如果着陆等待队列中的某架飞机滞空时间接近0,必须提升其优先级,此时可以调度2号跑道供其降落,但如果多于一架飞机的滞空时间接近0,则应提升其优先级,令其加塞提前使用其它跑道降落。
【基本要求】
飞机的到达事件和起飞事件均由随机函数产生,频度可以由键盘输入(可参考课件中的代码)。到达机场的飞机应先进入等待队列,油量也由随机数产生,数值范围在2到10之间。预警油量为2,即当飞机油量还剩2的时候,必须立刻提升优先级,令其在下一个时间段立刻优先降落,这样在下一个时间段该飞机可以利用仅存的1个油量单位执行降落,否则,如果飞机油量仅剩1还无法在当前时间段降落,那么即使下一个时间段能够降落,它也会因为油料耗尽而坠毁!
无论是到达机场或者申请离场,一旦等待队列满,则将被拒绝服务,被拒绝服务的飞机次数需要统计求和。
【输入输出】
输入:程序运行的时间长度,飞机到达的发生频度(单位时间内到达机场的架次,可以是实数),飞机起飞的发生频度(单位时间内申请离开机场的架次,可以是实数)。
输出:每个队列的内容,平均起飞等待时间,平均降落等待时间,总降落架次,总起飞架次,尚未降落的飞机数量,尚未起飞的飞机数量,被拒绝服务的飞机数量,因燃油耗尽而坠毁的飞机数量,跑道空闲百分比。
【实现提示】
着陆等待队列由于有紧急降落的引入,需要额外操作,这些操作应该在抽象数据类型中明确定义。考察一下什么情况下会发生飞机坠毁(例如有4架着陆队列的飞机油量同时降为2,由于仅有三个跑道允许降落,此时必然会有一架飞机坠毁)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-7 14:05:37 | 显示全部楼层
说一下思路也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-8 21:30:22 | 显示全部楼层
1.建立一个数据库记录每架飞机的:编码、油量、状态、和时间。状态我分为5个:一号跑道及二号跑道等待状态,滞空状态,准备起飞,停泊状态
2.筛选出滞空一号跑道及二号跑道等待状态和状态飞机,根据油量从小到大排序
3.找出最小的三个油量是否低于2
4.优先给这些飞机降落
5.分配其他名额
有个问题:机场有没有机库?现在是假设没有库存概念所运行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-26 07:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表