You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
宋岱瑾 20d8132a2b
Merge branch 'master' of https://bdgit.educoder.net/pfh4wq3fa/jcqjmn
2 years ago
.gitignore Initial commit 2 years ago
LICENSE Initial commit 2 years ago
README.md Merge branch 'master' of https://bdgit.educoder.net/pfh4wq3fa/jcqjmn 2 years ago
s.cpp cpp 2 years ago

README.md

P5机场起降模拟系统

马誉航、王振宇、王意伟、宋岱瑾

摘要:本项目针对什么问题,实现了哪些功能。为了有效地存储和处理何种数据,采用了何种数据结构。为了解决什么问题,采用了什么算法,算法效率如何。针对其他特定需求做了哪些工作。项目的整体效果如何,有何亮点和创新。

任务分工及完成情况。

工作量占比。

宋岱瑾  王振宇   王意伟  马誉航
 25      25      25      25 

1. 系统分析

1.1 问题描述

考虑一个繁忙的小型机场仅有一个跑道。在每个单位时间内,只有一架飞机可以降落或起飞,但不能同时进行。随时有飞机准备着降落或起飞,因此在任何给定的时刻,跑道可能是空闲的,或者一架飞机正在降落或起飞,也可能有几架飞机等待着降落或起飞。在模拟中,我们特别关注飞机在起飞或降落时需要排队等待的时间,因此,测量时间对我们的程序至关重要。我们将模拟时间划分为单位,使得在任何给定的时间单位内,只有一架飞机可以利用跑道进行起飞或降落。

1模拟开始前用户应设定模拟时长等待起飞或降落的队列最大容量单位时间内到达的飞机数量期望值单位时间内离开的飞机数量期望值。 2每一个时间单位内随机生成准备起飞或降落的飞机并进入等待队列若等待降落队列已满则拒绝降落引导到其他机场降落若等待起飞队列已满则拒绝起飞安排其他时间起飞。 3若有飞机等待降落则优先处理飞机降落若没有飞机等待降落才允许等待的飞机起飞既没有飞机降落也没有飞机起飞时跑道空闲。 4模拟结束后给出统计数据至少包括处理的飞机总数请求降落的飞机数请求起飞的飞机数接受降落的飞机数接受起飞的飞机数拒绝降落的飞机数拒绝起飞的飞机数实际降落的飞机数实际起飞的飞机数仍在等待降落的飞机数仍在等待起飞的飞机数跑道空闲时间占比平均等待降落时间平均等待起飞时间。要求系统运行正常、功能完整数据结构使用得当算法有较高的效率代码 规范、可读性高,结构清晰;具备一定的健壮性、可靠性和可维护性。

1.2 可行性分析

机场只有一个跑道,准备降落的飞机和准备起飞的飞机分别组成一个队列,排队等待降落和起飞。本项目涉及的对象主要包括飞机、跑道,等待降落和起飞的队列。假设每个单位时间内,平均起飞(降落)的飞机数为 ,则下一个单位时间内起飞(降落)的飞机数服从参数为 的泊松分布Poisson distribution

1.3 需求分析

1输入和输出

确定系统的主要输入和输出,如可以设定的参数,数据文件等,明确其主要作用。

2数据字典

描述系统中需要处理的所有数据包含的具体信息。例如:

学生 = 学号 + 姓名 + 成绩

3数据文件

系统中需要读取xx数据文件以获取xx数据或者需要导出xx数据。举例说明xx数据文件的具体格式。

4参数设定

系统开始运行时,需要设置的参数。可以用户手册的形式给出设定参数的过程,如系统提示信息和用户输入等。

5XX功能

其他具体功能。

首先简要说明该功能的主要作用,可以用户手册的形式给出系统提示信息、用户输入和系统输出等。

6XX功能

其他功能逐项列出。

2. 系统设计

2.1 概要设计

系统划分为几个模块,可以画模块图。

逐个说明每个模块的功能(输入、输出、做什么,这里不写怎么做)。

2.2 数据结构设计

首先,分析对比几种可选的数据结构设计方案。如图可以采用邻接矩阵,也可以采用邻接表,表示集合可以用普通的查找表,还可以用不相交集。给出每一种设计方案的特点(优势、不足等)。然后,综合考虑各种因素(空间、时间、乃至团队成员的水平等),给出你的选择。

1xxx结构

给出核心数据结构的设计,包括文字描述和示意图。讲清楚数据是如何组织的。多个数据结构,逐一列出。

2xxx结构

给出核心数据结构的设计,包括文字描述和示意图。讲清楚数据是如何组织的。

2.3 算法设计

首先,分析对比几种可选的算法设计方案。如是否排序,广度优先或深度优先搜索等。给出每一种设计方案的特点(优势、不足)。然后,综合考虑各种因素(空间、时间、乃至团队成员的水平等),给出你的选择。

1XXX算法

给出核心算法的设计,包括伪代码或流程图。多个核心算法,逐一列出。只列举解决问题的核心算法,重点讲清楚是如何解决问题的。

2XXX算法

给出核心算法的设计,包括伪代码或流程图。

3. 系统实现

说明所使用的语言、开发工具等。

介绍项目的文件结构,以及主要函数的功能。

3.1 核心数据结构的实现

描述数据结构的实现方法。

可以配合程序代码加以说明。如:

struct LNode {
    E data;      // 数据元素
    LNode *next; // 指向下一个结点的指针
};

对该数据结构的特点进行分析。

3.2 核心算法的实现

描述算法的实现方法。

可以配合程序代码加以说明。如:

// 冒泡排序
void bubble_sort(T a[], int n)
{
    ......
}

对该算法的时间和空间复杂度进行分析。

4. 系统测试

描述测试的思路和方法。比如,先用小数据量进行测试,再用真实数据进行测试。

测试应考虑到输入数据的特殊情况。

给出若干测试用例,包括输入、预期结果、运行结果或是否通过测试。运行结果和预期结果一致,为通过测试。

5. 总结

概况项目和完成情况。

遇到的问题和解决方法。

个人小结:

成员1

成员2

成员3

成员4

成员5

参考文献

列出参考的文献资料,根据情况自行添加。

[1] 严蔚敏, 吴伟民. 数据结构C语言版. 北京: 清华大学出版社, 2007.