《航空信息查询系统数据结构课程设计》由会员分享,可在线阅读,更多相关《航空信息查询系统数据结构课程设计(22页珍藏版)》请在金锄头文库上搜索。
1、航班信息查询系统目录一、前言 . 1二、需求分析. 错误!未定义书签。2.1 任务分析 . 错误!未定义书签。2.2 程序所能达到的功能. 32.3 输入的形式和输出值的范围. 32.4 测试的数据及预测. 3三、概要设计. 43.1 抽象数据类型的定义. 43.2 主程序的流程. 4四、详细设计. 54.1 各函数对应的伪代码算法. 54.2 各函数调用关系图. 6五、调试分析. 85.1 调试过程中遇到的问题及其解决办法. 85.2 算法的时空分析. 85.3 经验和体会 . 8六、用户使用说明. 8七、测试结果. 97.1 输入界面 . 97.2 按航班号进行查询界面. 97.3 按起点
2、站进行查询界面. 10 7.4 按终点站进行查询界面. 11 7.5 按起飞时间进行查询界面. 11 7.6 按到达时间进行查询界面. 12 7.7 退出航班信息查询系统界面. 12 八、总结 . 13九、参考文献. 13 十、附录(源程序代码). 错误!未定义书签。航班信息查询系统1 一、前言随着信息产业的飞速发展,信息化管理及查询已经进入并应用到各行各业,它影响着人们的价值观念和生活方式。因此,要提高企业信息化建设, 我们可以利用先进的办公自动化系统来实现企业内部信息的交流、管理与共享,从而提高企业综合实力。 因此在本次课程设计中, 我们将针对航班信息查询系统,实现对飞机航班信息的排序和查
3、询这两项人们最常用的功能。在查询中,为了加快计算机对数据信息的查询速度, 需要先对数据信息按关键字排序,在保证服务质量的前提下,实现查询效率的提高和服务时间的缩短。在这个系统中, 主要实现了以下几个功能, 在航班信息输入之后, 首先先用基数排序关于关键字航班号进行排序,在基数排序的时候, 主要使用了以数字和字符两种处理方法; 排序之后, 开始根据自己设计的要求进行一系列的查询,按照航班号进行查询,按照航班号、起始站、终点站、起飞时间、到达时间进行一系列的查询。航班信息查询系统2 二、需求分析2.1 任务分析航班信息主要包括:航班号、起点、终点、班期、起飞时间、到达时间、机型、票价,所以我们要根
4、据这些信息设计飞机票的结构体,然后本系统需要以航班号为关键字进行基数排序, 所以要创建航班号和航班信息为一体的链表,此航班链表因为还要需要排序比较, 所以还要设计以航班号数目为基础的结构体,同时在设计过程中的基数排序将航班号分成了字母和数字两部分,所以还需要十个数字和二十六个字母的两个数组进行存储基数排序过程中的数据。实现基数排序不需要进行记录关键字间的比较。 它是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。现在来看基数排序 ,基数排序是借助“分配和搜集” 两种操作对单逻辑关键字进行排序的一种内部排序方法。 首先以静态链表存储n 个待排序的航班信息记录(这里按航班号进行基数排序),
5、并令表头指针指向第一个记录,第一趟分配对低数位关键字 (个位数 )进行,改变记录的指针值分配自n 个队列中去 ,每个队列记录中的关键字的个位数相等。第一趟收集是改变所有非空队列的队尾记录的指针域,令其指向下一个非空队列的队头记录 ,重新将 n 个队列中的记录链成一个链表,第二趟分配 ,第二趟收集及第三趟分配和第三趟收集分别是对十位数和对百位数进行的,其过程和个位相同,这样往返做 ,直到排序完毕。对排序好了的航班记录要对它进行查找,怎样才能实现快速查找 ,首选的是二分查找 ,按关键字航班号进行快速查找。二分查找的查找过程为:先确定待查找查找记录所在范围 (区间 ),然后逐步缩小范围直到找到或找不
6、到该记录为止,选用二分查找是根据排序好了的航班信息,航班信息表已经是有序的。因为二分查找的要求要求: 线性表是有序表, 即表中结点按关键字有序, 并且要用向量作为表的存储结构。在具体数值查找过程中, 我们可以从第一个进行查找, 直到找到需要的那个,而在对航班信息的查询中我们使用了二分查找的函数,这样可以更快的查找到需要的航班号。航班信息查询系统3 2.2 程序所能达到的功能系统的主要运行过程可以包括以下几个方面: 录入航班信息 对录入的航班信息进行分配和基数排序 根据设计的要求进行选择需要的动作 根据具体的选择进行执行具体的动作 输出查询的结果 在确认执行完成后退出系统2.3 输入的形式和输出值的范围首先在我们的设计过程中通过讨论我们确定了一些常规的数字,航班号我们确定为 6 位,首先两位的字母位, 然后是 4 位的数字位, 至于起始地点和终止地点我们确定为 8 位,而班期我们确定为10