|
|
|
@ -2,7 +2,7 @@
|
|
|
|
|
|
|
|
|
|
董函铄 胡煜男 于博 袁楷昊
|
|
|
|
|
|
|
|
|
|
**摘要**:本项目针对在机场中飞机的降落或起飞问题,实现了哪些功能。为了有效地存储和处理何种数据,采用了线性表、队列、排序、随机数等数据结构。为了解决时间单位内,飞机的降落或起飞问题,采用了什么算法,算法效率如何。针对其他特定需求做了哪些工作。项目的整体效果如何,有何亮点和创新。
|
|
|
|
|
**摘要**:本项目针对在机场中飞机的降落或起飞问题,实现了对处理的飞机总数进行统计、飞机降落或起飞请求等功能。为了有效地存储和处理飞机总数,请求降落或起飞的飞机数,接受起飞或降落的飞机数,拒绝起飞或降落的飞机数,实际起飞或降落的飞机数等数据,采用了线性表、队列、排序、随机数等数据结构。为了解决时间单位内,飞机的降落或起飞问题,采用了c++算法,算法效率中等,项目的整体效果较好。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -26,45 +26,102 @@
|
|
|
|
|
|
|
|
|
|
## 1.1 问题描述
|
|
|
|
|
|
|
|
|
|
问题描述和具体要求。
|
|
|
|
|
考虑一个繁忙的小型机场仅有一个跑道。在每个单位时间内,只有一架飞机可以降落或起飞,但不能同时进行。随时有飞机准备着降落或起飞,因此在任何给定的时刻,跑道可能是空闲的,或者一架飞机正在降落或起飞,也可能有几架飞机等待着降落或起飞。在模拟中,我们特别关注飞机在起飞或降落时需要排队等待的时间,因此,测量时间对我们的程序至关重要。我们将模拟时间划分为单位,使得在任何给定的时间单位内,只有一架飞机可以利用跑道进行起飞或降落。
|
|
|
|
|
|
|
|
|
|
## 1.2 可行性分析
|
|
|
|
|
|
|
|
|
|
明确解决问题的关键,核心数据结构,核心算法等。
|
|
|
|
|
机场只有一个跑道,准备降落的飞机和准备起飞的飞机分别组成一个队列,排队等待降落和起飞。
|
|
|
|
|
|
|
|
|
|
确定解决问题的总体思路和方案。
|
|
|
|
|
机场只有一个跑道,准备降落的飞机和准备起飞的飞机分别组成一个队列,排队等待降落和起飞。
|
|
|
|
|
|
|
|
|
|
## 1.3 需求分析
|
|
|
|
|
|
|
|
|
|
### (1)输入和输出
|
|
|
|
|
|
|
|
|
|
确定系统的主要输入和输出,如可以设定的参数,数据文件等,明确其主要作用。
|
|
|
|
|
####输入:
|
|
|
|
|
请输入飞机场运行的时间。
|
|
|
|
|
请输入降落和起飞队列最多容纳的飞机数。
|
|
|
|
|
请输入平均每个单位时间请求降落的飞机数。
|
|
|
|
|
请输入平均每个单位时间请求起飞的飞机数。
|
|
|
|
|
|
|
|
|
|
####输出:
|
|
|
|
|
x号时间x号飞机降落了,等了x个单位时间。
|
|
|
|
|
x号时间x号飞机飞走了,等了x个单位时间。
|
|
|
|
|
x号时间没有飞机降落,也没有飞机起飞,此时跑道为空。
|
|
|
|
|
x号飞机请求降落,并进入降落队伍。
|
|
|
|
|
x号飞机请求降落但被拒绝了。
|
|
|
|
|
x号飞机请求起飞,并进入起飞队伍。
|
|
|
|
|
x号飞机请求起飞但被拒绝了。
|
|
|
|
|
历经d个单位时间,机场停止接收请求。
|
|
|
|
|
一共收到了d架飞机的请求。
|
|
|
|
|
一共有d架请求降落。其中有d架被接受了,d架被拒绝了。
|
|
|
|
|
一共有d架请求起飞。其中有d架被接受了,d架被拒绝了。
|
|
|
|
|
成功降落了d架,还有d架在排队等待降落。
|
|
|
|
|
成功起飞了d架,还有d架在排队等待起飞。
|
|
|
|
|
轨道有d的时间是空闲的。
|
|
|
|
|
降落平均要等d个单位时间。
|
|
|
|
|
起飞平均要等f个单位时间。
|
|
|
|
|
这个机场平均每个单位时间收到f个降落请求。
|
|
|
|
|
这个机场平均每个单位时间收到f个起飞请求。
|
|
|
|
|
|
|
|
|
|
### (2)数据字典
|
|
|
|
|
|
|
|
|
|
描述系统中需要处理的所有数据包含的具体信息。例如:
|
|
|
|
|
|
|
|
|
|
学生 = 学号 + 姓名 + 成绩
|
|
|
|
|
飞机场运行时间;
|
|
|
|
|
降落和起飞队列最多容纳的飞机数;
|
|
|
|
|
平均每个单位时间请求降落的飞机数;
|
|
|
|
|
平均每个单位时间请求起飞的飞机数;
|
|
|
|
|
每个单位时间内,平均起飞(降落)的飞机数。
|
|
|
|
|
|
|
|
|
|
### (3)数据文件
|
|
|
|
|
|
|
|
|
|
系统中需要读取xx数据文件以获取xx数据,或者需要导出xx数据。举例说明xx数据文件的具体格式。
|
|
|
|
|
无数据文件,系统直接产生随机数
|
|
|
|
|
|
|
|
|
|
### (4)参数设定
|
|
|
|
|
|
|
|
|
|
系统开始运行时,需要设置的参数。可以用户手册的形式给出设定参数的过程,如系统提示信息和用户输入等。
|
|
|
|
|
|
|
|
|
|
### (5)XX功能
|
|
|
|
|
请输入飞机场运行的时间:24
|
|
|
|
|
请输入降落和起飞队列最多容纳的飞机数:6
|
|
|
|
|
请输入平均每个单位时间请求降落的飞机数:3
|
|
|
|
|
请输入平均每个单位时间请求起飞的飞机数:2
|
|
|
|
|
每个单位时间内,平均起飞(降落)的飞机数:系统随机产生
|
|
|
|
|
|
|
|
|
|
其他具体功能。
|
|
|
|
|
### (5)处理已经在队列里的飞机的功能
|
|
|
|
|
|
|
|
|
|
首先简要说明该功能的主要作用,可以用户手册的形式给出系统提示信息、用户输入和系统输出等。
|
|
|
|
|
```
|
|
|
|
|
输出:
|
|
|
|
|
|
|
|
|
|
##0号时间##
|
|
|
|
|
没有飞机降落,也没有飞机起飞,此时跑道为空。
|
|
|
|
|
|
|
|
|
|
##1号时间##
|
|
|
|
|
没有飞机降落,也没有飞机起飞,此时跑道为空。
|
|
|
|
|
0号飞机请求降落,并进入降落队伍。
|
|
|
|
|
1号飞机请求降落,并进入降落队伍。
|
|
|
|
|
2号飞机请求降落,并进入降落队伍。
|
|
|
|
|
3号飞机请求降落,并进入降落队伍。
|
|
|
|
|
4号飞机请求起飞,并进入起飞队伍。
|
|
|
|
|
5号飞机请求起飞,并进入起飞队伍。
|
|
|
|
|
6号飞机请求起飞,并进入起飞队伍。
|
|
|
|
|
7号飞机请求起飞,并进入起飞队伍。
|
|
|
|
|
8号飞机请求起飞,并进入起飞队伍。
|
|
|
|
|
```
|
|
|
|
|
###(6)系统汇总功能
|
|
|
|
|
|
|
|
|
|
### (6)XX功能
|
|
|
|
|
```
|
|
|
|
|
输出:
|
|
|
|
|
一共收到了106架飞机的请求。
|
|
|
|
|
一共有60架请求降落。其中有27架被接受了,33架被拒绝了。
|
|
|
|
|
一共有46架请求起飞。其中有6架被接受了,40架被拒绝了。
|
|
|
|
|
|
|
|
|
|
其他功能逐项列出。
|
|
|
|
|
成功降落了22架,还有5架在排队等待降落。
|
|
|
|
|
成功起飞了0架,还有6架在排队等待起飞
|
|
|
|
|
|
|
|
|
|
轨道有8.33%的时间是空闲的。
|
|
|
|
|
降落平均要等3.88个单位时间。
|
|
|
|
|
起飞平均要等0.00个单位时间。
|
|
|
|
|
|
|
|
|
|
这个机场平均每个单位时间收到2.50个降落请求。
|
|
|
|
|
这个机场平均每个单位时间收到1.92个起飞请求。
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# 2. 系统设计
|
|
|
|
|
|
|
|
|
|