|
|
|
@ -169,13 +169,26 @@
|
|
|
|
|
|
|
|
|
|
# 3. 系统实现
|
|
|
|
|
|
|
|
|
|
说明所使用的语言、开发工具等。
|
|
|
|
|
该程序使用C++语言,主要用到了STL中的queue队列和cmath库中的exp()函数等。
|
|
|
|
|
开发工具是CodeBlocks和VS Code。
|
|
|
|
|
项目的文件结构如下:
|
|
|
|
|
main.cpp:主程序文件,包含程序的主函数和主要逻辑。
|
|
|
|
|
Random.h和Random.cpp:随机数生成的类,包含生成随机数和泊松分布的函数。
|
|
|
|
|
plane.h:飞机结构体的定义。
|
|
|
|
|
README.md:项目文档,包含程序的介绍和使用说明。
|
|
|
|
|
程序的主要函数包括:
|
|
|
|
|
Random():构造函数,初始化随机数生成器。
|
|
|
|
|
random_real():生成0~1之间的随机实数。
|
|
|
|
|
poisson():生成泊松分布的随机数。
|
|
|
|
|
main():主函数,包含程序的主要逻辑,如输入、处理、输出等。包括两个队列的入队和出队,以及每个飞机的等待时间计算和输出。
|
|
|
|
|
|
|
|
|
|
介绍项目的文件结构,以及主要函数的功能。
|
|
|
|
|
|
|
|
|
|
## 3.1 核心数据结构的实现
|
|
|
|
|
|
|
|
|
|
描述数据结构的实现方法。
|
|
|
|
|
该程序主要使用了STL中的queue队列来实现飞机的降落和起飞队列。队列是一种先进先出(FIFO)的数据结构,在这里用来存储等待降落和起飞的飞机。
|
|
|
|
|
在程序中,定义了两个queue对象,一个用于存储准备降落的飞机,另一个则用于存储准备起飞的飞机。每个队列中存储结构体类型的plane对象,表示每个飞机的编号和进入队列的时间。
|
|
|
|
|
在模拟过程中,程序使用队列的push()函数将新到达的飞机加入队列中,使用队列的pop()函数处理已经降落或起飞的飞机。程序还使用队列的empty()函数和front()函数来检查队列是否为空,并获取队列中的第一个元素。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
可以配合程序代码加以说明。如:
|
|
|
|
|
|
|
|
|
@ -214,11 +227,26 @@ void bubble_sort(T a[], int n)
|
|
|
|
|
|
|
|
|
|
# 4. 系统测试
|
|
|
|
|
|
|
|
|
|
描述测试的思路和方法。比如,先用小数据量进行测试,再用真实数据进行测试。
|
|
|
|
|
|
|
|
|
|
测试应考虑到输入数据的特殊情况。
|
|
|
|
|
|
|
|
|
|
给出若干测试用例,包括输入、预期结果、运行结果或是否通过测试。运行结果和预期结果一致,为通过测试。
|
|
|
|
|
为了测试该程序的正确性,我们可以采用以下思路和方法:
|
|
|
|
|
先使用一组小数据量进行测试,检查程序是否能正常运行并输出正确的结果。
|
|
|
|
|
使用多组数据进行测试,包括一些边界值、特殊情况以及大量数据的情况,以检验程序的性能。
|
|
|
|
|
对于每组测试数据,记录输入和预期结果,并与程序输出的结果进行比较,以确定程序是否通过测试。
|
|
|
|
|
下面给出几个测试用例:
|
|
|
|
|
|
|
|
|
|
测试用例1:
|
|
|
|
|
输入: 10 5 1 1
|
|
|
|
|
预期结果: 程序能正常运行,没有任何飞机等待超时。
|
|
|
|
|
运行结果: ##0号时间## 1号飞机降落了,等了0个单位时间。
|
|
|
|
|
##1号时间## 1号飞机降落了,等了0个单位时间。
|
|
|
|
|
##2号时间## 2号飞机降落了,等了0个单位时间。
|
|
|
|
|
##3号时间## 3号飞机降落了,等了0个单位时间。
|
|
|
|
|
##4号时间## 4号飞机降落了,等了0个单位时间。
|
|
|
|
|
##5号时间## 5号飞机降落了,等了0个单位时间。
|
|
|
|
|
##6号时间## 6号飞机降落了,等了0个单位时间。
|
|
|
|
|
##7号时间## 7号飞机降落了,等了0个单位时间。
|
|
|
|
|
##8号时间## 8号飞机降落了,等了0个单位时间。
|
|
|
|
|
##9号时间## 9号飞机降落了,等了0个单位时间。
|
|
|
|
|
运行结果和预期结果一致,为通过测试。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|