1、 0 目 录 一、概述 1 二、系统分析 1 1.航班信息的查询与检索 . 1 2.航班信息查询与检索数据结构理论 . 1 三、概要设计 2 1.系统的功能 . 2 2.系统模块分析及其流程图 . 3 四、详细设计 6 1.各函数说明 . 6 2.定义相关数据类型 . 8 3. 航班信息的查询 9 五、 运行由于测试 11 六、总结与心得 . 16 参考文献 . 16 附录 . 16 1 一、概述一、概述 随着信息产业的飞速发展,信息化管理及查询已经进入并应用到各行各业, 影响着人们的价值观念和生活方式。因此,要提高企业信息化建设,利用先进 的办公自动化系统来实现企业内部信息管理、共享及交流,
2、从而提高企业综合 实力。 本次设计是针对航班的查询系统,该设计要求对飞机航班信息进行排序和 查询。可按航班的航班号、起点站、终点站等信息进行航班信息的查询。 二、系统分析二、系统分析 1.航班信息的查询与检索航班信息的查询与检索 进入系统后,首先提示输入航班的信息,包括:航班号、起点站、终点站、 班期、起飞时间、到达时间、飞机型号及票价等,票价为整型,其他为字符型。 当输入完一个信息后会提示是否继续输入,重复以上步骤输入全部的信息。 进入主菜单后会给出用户操作的界面,根据提示进行航班信息的查询。 2.航班航班信息查询与检索数据结构理论信息查询与检索数据结构理论 针对在本该类系统中的数据的处理情
3、况,本系统采用二分查找法、基数排 序法、最高位优先法。 二分查找法也称为折半查找法,它充分利用了元素间的次序关系,采用分 治策略,可在最坏的情况下用 O(log n)完成搜索任务。它的基本思想是,将 n 2 个元素分成个数大致相同的两半, 取 an/2与欲查找的 x作比较, 如果 x=an/2 则找到 x,算法终止。如 果 xan/2, 则我们只要在数组 a 的右 半 部继续搜索 x。 对航班号的排序是采用的基数排序法。基数排序法又称“桶子法” (bucket sort)或 bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分 配至某些“桶”中,藉以达到排序的作用,基数排序法是
4、属于稳定性的排序, 其时间复杂度为 O (nlog(r)m),其中 r 为所采取的基数,而 m 为堆数,在某些 时候,基数排序法的效率高于其它的比较性排序法。 最高位优先(Most Significant Digit first)法,简称 MSD 法:先按 k1 排 序分组,同一组中记录,关键码 k1 相等,再对各组按 k2 排序分成子组,之后, 对后面的关键码继续这样的排序分组, 直到按最次位关键码 kd对各子组排序后。 再将各组连接起来,便得到一个有序序列。最低位优先(Least Significant Digit first)法,简称 LSD 法:先从 kd 开始排序,再对 kd-1 进
5、行排序,依次 重复,直到对 k1 排序后便得到一个有序序列。 三三、概要设计、概要设计 1.系统的功能系统的功能 本任务要求对飞机航班信息进行排序和查找。可按航班的航班号、起点站、 到达站、起飞时间以及到达时间等信息进行查询。本设计主要是对排序以及查 找等概念进行综合练习。以链式基数排序为主线,用到二分查找和顺序查找等 3 知识,还有建立静态链表等相关概念。 2.系统模块分析及其流程图系统模块分析及其流程图 (1)航班排序 对输入系统内的航班首先要进行排序,我们采用的基数排序,从低位到高 位依次对关键字进行分配和收集,分两段实现其算法流程图。 航班信息查询系统 按 航 班 号 查 询 退 出
6、系 统 输入航班信息 按 起 点 站 查 询 按 终 点 站 查 询 按 到 达 时 间 查 询 按 起 飞 时 间 查 询 4 N 每段进行串式基数 排序 Y 开始 输入数据数 组,基数 n, 长度 Max 分配收集操作轮数 nT=0 将数据分成 P 段每 段 n/p 个 nT+=1 nT=Max 结束 5 (2)时间查找 根据航班的起飞时间(到达时间)查找航班的信息。 (3)二分法查找功能 开始 输 入 查 询 Time= 按抵达时间查询 按起飞时 间查 返回查询信息 否 是 开 输入 输 入 航 Low Mid=(hi Low NumNum 返High 否 是 6 (4)显示功能 显示功能是将所求单词的所有行列信息依次显示在屏幕上。 四、四、详细设计详细设计 1.各函数说明各函数说明 1.一趟分配函数 void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e) /一趟字母分配字符函数 int j,p; for(j=0;j=0;i-) 8 distribute_c(l.s