20141204060航班信息的查询与检索(排序应用)讲解.doc

20141204060航班信息的查询与检索(排序应用)讲解.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE  PAGE 15 淮北师范大学 综合设计报告 航班信息的查询与检索(排序应用) 课 程 数据结构 学 院 计算机科学与技术 专 业 网络工程 年 级 2014级 学 号 20141204060 姓 名 覃小玲 任课教师 乙从才 2015年12月 2 3日 一、设计目的与内容 通过本次实验,掌握数据结构中的几种排序算法和查找算法,了解静态链表的运用,利用上述的算法完成航班信息的查询与检索。 二、设计分析 对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因为它们用得比较少。 每个航班记录包括八项,分别是:航班号,起点站,终点站,班期,起飞时间,到达时间,飞机型号以及票价等。其中航班号一项的格式为: K0 k1 k2 k3 k4 k5 C Z 3 8 6 9 航班关键字可分为两段,即字母和数字。其中k0和k1是航空公司的别称,用两个大写字母表示,后4位为航班编号。 (1)系统总流程图 航班信息的查询与检索系统 按起飞时间查询 按到达时间查询 按起点站查询 按终点站查询 按航班号查询 (2) 定义数据类型 根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数据类型: typedef struct { char start[7]; //起点 char end[7]; //终点 char sche[12]; //班期 char time1[5]; //起飞时间 char time2[5]; //到达时间 char model[4]; //机型 int price; //票价 }InfoType; //航班记录类型 typedef struct{ KeyType keys[keylen]; //关键字 InfoType others; int next; }slnode; //表结点 typedef struct{ SLNode sl[MaxSpace]; //静态链表,s1[0]为头结点 int keylen; //关键字长 int length; //当前表长 }SLList; //静态链表类型 为了进行基数排序,需要定义在分配和收集操作时用到的指针数组: typedef int ArrType_n[10]; //十进制数字指针数组 typedef int ArrType_c[26]; //26个字母指针数组 (3)实现排序的各函数的说明 一趟分配函数: void Distribute(SLNode *s1,int i,ArrType f,ArrType e); //本算法是按关键字key[i]建立RADIX个子表,使同一个子表中记录的keys[i] //相同,f[0..RADIX]和e[0..RADIX]分别指向各子表中的第一个和最后一个记录 一趟搜集函数: void Collect(SLNode *s1,int i,ArrType f,ArrType e); //本算法是按关键字keys[i]从小到大将[0..RADIX]所指的各子表依次链接成一个链表 链式基数

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档