MrSunday 发表于 2019-1-6 18:13:41

多跑道机场仿真

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

MrSunday 发表于 2019-1-7 14:05:37

说一下思路也行

爱学习的喵 发表于 2019-1-8 21:30:22

1.建立一个数据库记录每架飞机的:编码、油量、状态、和时间。状态我分为5个:一号跑道及二号跑道等待状态,滞空状态,准备起飞,停泊状态
2.筛选出滞空一号跑道及二号跑道等待状态和状态飞机,根据油量从小到大排序
3.找出最小的三个油量是否低于2
4.优先给这些飞机降落
5.分配其他名额
有个问题:机场有没有机库?现在是假设没有库存概念所运行的
页: [1]
查看完整版本: 多跑道机场仿真