diff --git a/.vscode/settings.json b/.vscode/settings.json index 65c81b6..402df16 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,10 @@ { + "C_Cpp_Runner.msvcBatchPath": "", "C_Cpp_Runner.cCompilerPath": "gcc", "C_Cpp_Runner.cppCompilerPath": "g++", "C_Cpp_Runner.debuggerPath": "gdb", "C_Cpp_Runner.cStandard": "", "C_Cpp_Runner.cppStandard": "", - "C_Cpp_Runner.msvcBatchPath": "", "C_Cpp_Runner.useMsvc": false, "C_Cpp_Runner.warnings": [ "-Wall", diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..73b1c4f --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,48 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++.exe 生成活动文件", + "command": "C:\\mingw64\\bin\\g++.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + }, + { + "type": "cppbuild", + "label": "C/C++: cpp.exe 生成活动文件", + "command": "C:\\mingw64\\bin\\cpp.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": "build", + "detail": "调试器生成的任务。" + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/README.md b/README.md index 8058389..466639d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ 马誉航、王振宇、王意伟、宋岱瑾 -**摘要**:本项目针对什么问题,实现了哪些功能。为了有效地存储和处理何种数据,采用了何种数据结构。为了解决什么问题,采用了什么算法,算法效率如何。针对其他特定需求做了哪些工作。项目的整体效果如何,有何亮点和创新。 +**摘要**:随着航空运输和长途旅游业的迅速发展,飞机的需求量在日常生活中逐渐增多,机场航班的起降协调工作也变得越来越重要。而随着时代发展,充满着主观性,不确定性的传统塔楼式人工调度已经无法满足机场的现代化需求,并且在机场规模逐渐增大,飞机班次逐渐增多的今天,使用传统的调度方式也容易出现调度冲突和信息延误等问题。针对这些问题,我们设计了这个模拟机场调度的代码,有效模拟了单位时间内飞机起降的各类数据。同时,为了进一步提高模拟数据的真实性,我们通过生成随机数,使用泊松分布等方法使得模拟结果更具有参考价值。 + @@ -39,31 +40,42 @@ ### (1)输入和输出 -确定系统的主要输入和输出,如可以设定的参数,数据文件等,明确其主要作用。 - -### (2)数据字典 - -描述系统中需要处理的所有数据包含的具体信息。例如: - -学生 = 学号 + 姓名 + 成绩 - -### (3)数据文件 - -系统中需要读取xx数据文件以获取xx数据,或者需要导出xx数据。举例说明xx数据文件的具体格式。 - -### (4)参数设定 - -系统开始运行时,需要设置的参数。可以用户手册的形式给出设定参数的过程,如系统提示信息和用户输入等。 - -### (5)XX功能 - -其他具体功能。 - -首先简要说明该功能的主要作用,可以用户手册的形式给出系统提示信息、用户输入和系统输出等。 - -### (6)XX功能 - -其他功能逐项列出。 +用户首先输入自主设定的数据,如飞机场运行时间,起飞和降落队列最多容纳的飞机数目,和单位时间内请求起飞和降落的飞机的频数,为程序设定计算的条件和初始值。程序在经过运行后输出根据输入数据所得的,本次运行的统计数据和具体情况,分析各类不同情况下的飞机的数目,跑道空闲时间占比,平均落地时间等用户所需求数据。 + +### (2)参数设定 + +1.飞机运行的时间。 +2.降落和起飞队列最多容纳的飞机数。 +3.平均每个单位时间请求降落的飞机数。 +4.平均每个单位时间请求起飞的飞机数。 + +### (3)生成随机数功能 + +rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。 +——————————————————————————— +| # include | +| | +| using namespace std; | +| int main() | +| { | +| for(int i=0;i<10;i++) | +| { | +| cout<limit){ + count++; + product*=random_real(); + } + return count; +} @@ -71,9 +83,9 @@ ## 2.1 概要设计 -系统划分为几个模块,可以画模块图。 - -逐个说明每个模块的功能(输入、输出、做什么,这里不写怎么做)。 +模块一:随机数的生成以及泊松分布的实现; +模块二:将起飞和降落的飞机分为两个队列并且分别处理请求; +模块三:使用printf函数输出过程。 @@ -151,13 +163,54 @@ void bubble_sort(T a[], int n) # 4. 系统测试 - -描述测试的思路和方法。比如,先用小数据量进行测试,再用真实数据进行测试。 - -测试应考虑到输入数据的特殊情况。 - -给出若干测试用例,包括输入、预期结果、运行结果或是否通过测试。运行结果和预期结果一致,为通过测试。 - +—————————————————————————————————————————————— +|请输入飞机场运行的时间。 +|3 +|请输入降落和起飞队列最多容纳的飞机数。 +|3 +|请输入平均每个单位时间请求降落的飞机数。 +|3 +|请输入平均每个单位时间请求起飞的飞机数。 +|3 +—————————————————————————————————————————————— +—————————————————————————————————————————————— +|##0号时间## +|没有飞机降落,也没有飞机起飞,此时跑道为空。 +| +| +|##1号时间## +|没有飞机降落,也没有飞机起飞,此时跑道为空。 +|0号飞机请求降落,并进入降落队伍。 +|1号飞机请求降落,并进入降落队伍。 +|2号飞机请求降落,并进入降落队伍。 +|3号飞机请求降落但被拒绝了。 +|4号飞机请求起飞,并进入起飞队伍。 +|5号飞机请求起飞,并进入起飞队伍。 +|6号飞机请求起飞,并进入起飞队伍。 +|7号飞机请求起飞但被拒绝了。 +|8号飞机请求起飞但被拒绝了。 +|9号飞机请求起飞但被拒绝了。 +| +| +|##2号时间## +|0号飞机降落了,等了0个单位时间。 +|历经3个单位时间,机场停止接收请求。 +| +| +|一共收到了10架飞机的请求。 +|一共有4架请求降落。其中有3架被接受了,1架被拒绝了。 +|一共有6架请求起飞。其中有3架被接受了,3架被拒绝了。 +| +|成功降落了1架,还有2架在排队等待降落。 +|成功起飞了0架,还有3架在排队等待起飞 +| +|轨道有66.67%的时间是空闲的。 +|降落平均要等0.00个单位时间。 +|起飞平均要等0.00个单位时间。 +| +|这个机场平均每个单位时间收到1.33个降落请求。 +|这个机场平均每个单位时间收到2.00个起飞请求。 +———————————————————————————————————————————————————————— # 5. 总结 @@ -170,19 +223,17 @@ void bubble_sort(T a[], int n) 成员1: -成员2: - +王振宇:通过本次实践作业,我不但粗浅的了解了泊松分布的含义和使用,对于离散型分布等知识也有了一定的个了解。也更加深入的了解了课堂上的知识,比如结构体和队列的构建与使用。同时经过这次实践作业,我也初步认识了合作的重要性,和程序设计的实践作业不同,本次数据结构的实践作业明显专业性更强,目的性更加的突出,难度也随之增大,对小组中每个人都有一定的挑战,需要小组成员团结合作,各自发挥自己的长处,从代码,排版,数据的搜集和使用等方面发挥不同的作用。总的来说,本次实践作业让我学到了很多。 成员3: 成员4: -成员5: # 参考文献 -列出参考的文献资料,根据情况自行添加。 - -[1] 严蔚敏, 吴伟民. 数据结构(C语言版). 北京: 清华大学出版社, 2007. +[1] CSDN C语言生成符合泊松分布(离散型)的随机数(手写)—— 10生万物 +[2] CSDN 《数据结构与程序设计》队列 case study ——— airport 模拟机场调度 ——超超超超超级菜 +[3] CSDN 【数据结构笔记】 队列的应用——飞机场模拟 ——勇敢琪琪 diff --git a/s.cpp b/c.cpp similarity index 100% rename from s.cpp rename to c.cpp