实验四 队列综合应用 实验报告文档格式.docx
- 文档编号:15783876
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:50
- 大小:201.63KB
实验四 队列综合应用 实验报告文档格式.docx
《实验四 队列综合应用 实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《实验四 队列综合应用 实验报告文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
4.2选择手动输入飞机数据(除了输入飞机信息以外,还需要输入模拟程序的起始时间)
4.3选择随机生成数据
4.4模拟程序开始
界面从左到右,分别是进场队列,机场的机库以及出场队列。
航班名前面方括号中的为飞机的状态。
进场队列中的“等待”表示飞机正处于申请立场的状态,出场队列中的“等待”表示飞机正处于申请离场的状态。
4.5使用pinfo参数启动程序,重新输入飞机数据(旧的数据文件会被覆盖)
4.6使用apinfo参数启动程序,重新生成飞机数据(旧的数据文件被覆盖)
4.7模拟程序结束,输出提示信息
五、操作说明
1.在第一次启动程序或者程序找不到飞机数据文件时,程序会进入到编辑飞机信息的界面。
(图4.1)。
然后选择由程序随机产生数据或者手动输入数据。
在输入数据过程中,除了飞机信息以外,还需要输入一些额外的信息。
例如,模拟程序的起始时间,飞机的数量。
2.程序顺利把飞机数据从数据文件读入内存以后,程序会自动进入模拟的过程。
如果数据文件是由程序自动生成的,并不能保证生成的每台飞机的降落时间是均匀分布的,有可能会出现在相当长的一段时间都没有飞机信息的出现。
3.当模拟结束时,并不会立即输出模拟结束的提示信息,在此过程中,跑道状态处会提示模拟程序已经结束。
模拟程序结束的10秒才输出模拟程序结束的信息。
六、附录:
代码
#include<
stdio.h>
stdlib.h>
string.h>
windows.h>
time.h>
#defineTRUE1
#defineFALSE0
#defineROAD_STATUS_IDLE0//表明跑道正处于空闲状态
#defineROAD_STATUS_UP1//表明跑道上正有飞机在起飞
#defineROAD_STATUS_DOWN2//表明跑道上正有飞机在降落
#definePLANE_STATUS_IDLE0//飞机正处于空闲状态
#definePLANE_STATUS_TAKE_OFF1//表示飞机称出于起飞状态
#definePLANE_STATUS_LANDING2//表示飞机正处于降落状态
#definePLANE_STATUS_WAIT_FOR_IN3//表示飞机正处于申请进场状态
#definePLANE_STATUS_WAIT_FOR_OUT4//表示飞机正处于申请离场状态
#defineQUEUE_OK1//表示队列操作成功
#defineQUEUE_MALLOC_FAIL-1//表示进行队列操作时分配空间发生错误
#defineQUEUE_EMPTY-2//表示对空队进行操作(插入除外)的错误信息
#defineQUEUE_TRAVERSE_FAIL-3//表示遍历过程中由遍历函数引起的函数终止
#defineQUEUE_INDEX_OUT_OF_RANGE-4//表示进行队列操作的索引超出有效范围
#defineQUEUE_NULL_POINTER-5//表示使用空指针接收内容的错误
#defineLIST_OK0//表示链表操作成功
#defineLIST_MALLOC_FAIL-1//表示链表操作时分配空间发生错误
#defineLIST_EMPTY_LIST-2//表示对空链表进行操作(插入除外)的错误信息
#defineLIST_INDEX_OUT_OF_RANGE-3//表示指定的删除和插入位置无效
#defineLIST_TRAVERSE_FAIL-4//表示遍历过程中由遍历函数引起的函数终止
#defineFILE_OK0//表示进行文件操作成功
#defineFILE_OPEN_FAIL-1//表示打开文件时发生错误
#defineFILE_NOT_ACCEPT-2//表示信息文件为无效信息文件
#defineFILE_EMPTY_FILE-3//表示尝试从没有数据的文件中读取数据
#defineFILE_TYPE_INPUT1//表示数据文件是用户手动输入的
#defineFILE_TYPE_RANDOM2//表示数据文件是由程序随机生成的
#defineTIME_STOP30//表示飞机在机库中停留的最短时间
#defineTIME_UP20//表示起飞时间为20分钟
#defineTIME_DOWN20//表示降落时间为20分钟
/*-----------结构体声明部分----------------*/
//储存每台飞机信息的结构体
structPlane
{
charname[31];
//航班名
intstatus;
//飞机状态
inttime;
//飞机状态持续的时间
intland_time;
//表示飞机降落的时间
intland_year;
//表示飞机降落的年份
intland_month;
//表示飞机降落的月份
intland_day;
//表示飞机降落的天
};
//链队结构体
structLinkQueue
structQueueNode*front;
//链队的队头
structQueueNode*rear;
//链队的队尾
intcount;
//链队中结点的数量
//表示队列中每个元素的节点
structQueueNode
structQueueNode*next;
//指向链队的下一个结点
structPlanedata;
//储存飞机信息
//链表结点,用于储存在机场中停留的飞机信息
structLinkListNode
//储存飞机信息
structLinkListNode*next;
//指向链表的下一个结点
//链式线性表结构
structLinkList
structLinkListNode*head;
//链表头
//链表中结点的数量
//该结构体表示机场
structAirport
structLinkQueue*in;
//表示等待降落的飞机队列
structLinkQueue*out;
//表示等待升空的飞机队列
structLinkList*garage;
//表示已经在机场降落的飞机
//文件头结构,储存模拟程序的起始时间和飞机数量等信息
//文件头标记用于判断文件是否为有效文件
structFile_Header
chartag[4];
//文件头标记
intfileType;
//表示数据文件的产生方式
//飞机数量
inttime_startup;
//程序起始时间
inttime_year;
//模拟程序起始年份
inttime_month;
//模拟程序起始月份
inttime_day;
//模拟程序起始天
typedefstructPlanePlane;
typedefstructLinkQueueQueue;
typedefstructQueueNodeQNode;
typedefstructLinkListNodeLNode;
typedefstructLinkListList;
typedefstructFile_HeaderFHeader;
typedefstructAirportAirport;
/*-----------全局变量声明------------------*/
intRoadStatus;
//用于区分跑道目前的状态
int*t,*m,*d,*y;
//计算时间的变量
intisFinish;
//标记变量,用于记录文件中是否所有的航班都已经模拟完毕
intisInUpdate;
//用于绘图的辅助变量
intisOutUpdate;
intisGarageUpdate;
//用于绘图的辅助变量
intiTime;
//用于记录时间,控制界面的绘制
intiFileType;
//表示读入文件的产生类型
List*L;
//储存尚未到达进场时间的飞机信息
Airport*A;
//表示机场的结构体变量
/*-----------函数声明部分------------------*/
//1.队列操作函数的声明
//队列的初始化操作
intQueue_Init(Queue*Q);
//判断队列是否为空队列
intQueue_IsEmpty(Queue*Q);
//获取队列的长度
intQueue_Length(Queue*Q);
//把一台飞机信息添加到队尾
intQueue_Insert(Queue*Q,PlaneP);
//获取队头元素信息,使用P接收队头元素信息
intQueue_GetHead(Queue*Q,Plane*P);
//删除队头元素,并用指针P接收队头元素信息
intQueue_Delete(Queue*Q,Plane*P);
//队列的遍历
intQueue_Traverse(Queue*Q,int(*fun)(Plane*P));
//获取队列中特定位置的飞机信息
Plane*Queue_GetInfoPtrByIndex(Queue*Q,intindex);
//获取队列中从队头到队尾第一台正在降落的飞机信息
Plane*Queue_GetDown
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验四 队列综合应用 实验报告 实验 队列 综合 应用 报告