数据结构课程设计航班信息查询与检索系统.docxVIP

数据结构课程设计航班信息查询与检索系统.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》课程设计报告 题目:航班信息查询与检索 专业: 班级: 学号: 姓名: 任课老师: 2010 年 12 月 26 日 2 2 目录 TOC \o 1-2 \h \z \u 一、设计题目 1 二、设计要求 2 三、概要设计 2 设计思路 2 流程图 2 四、详细设计 3 定义数据类型 3 算法实现 3 五、测试数据 6 录入航班信息 6 航班信息查询 7 六、收获与体会 8 一、设计题目 设计一个航班信息查询与检索系统。可按航班的航班号、起点站、终点站、起飞时间以及到达时间等信息进行查询。 二、设计要求 1、每个航班记录包括八项:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。如下表所示: 航班信息表 航班号 起点站 终点站 航班期 起飞时机 到达时间 机型 票价CA1544 合肥 北京 1.2.5 1055 1240 733 960 2、要有输入模块。 3、对航班信息进行排序与查找。 三、概要设计 1、设计思路 根据题目所要求,程序必须实现航班信息的录入和查询。程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查找,按起点站、终点站、起飞时间、到达时间 查找的则采用顺序查询方法。 2、流程图 定义数据类型数据输入、排序 定义数据类型 数据输入、排序 接受查找条件、查找 关键字 输出查3找结果 PAGE PAGE 10 四、详细设计 1 . 定义数据类型 根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数据类型: typedef struct { char start[6]; //起点站 char end[6]; //终点站 char sche[10]; //航班期 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 keynum; //关键字长 int length; //当前表长 }sllist; //静态链表类型 为了进行基数排序,需要定义在分配和收集操作时用到的指针数组: typedef int arrtype_n[10]; //十进制数字指针数组typedef int arrtype_c[26]; //26 个字母指针数组 2 . 算法实现 (1)一趟分配算法 void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e) { int j,p; for(j=0;jradix_n;j++) { f[j]=e[j]=0; } for(p=sl[0].next;p;p=sl[p].next) { j=sl[p].keys[i]%48; //将数字字符转化为对应的数值型数字if(!f[j]) f[j]=p; else sl[e[j]].next=p; e[j]=p; //将 p 指向的结点插入到第 j 个结点 } } (2)一趟收集算法 void collect(slnode *sl,int i,arrtype_n f,arrtype_n e) { int j,t; for(j=0;!f[j];j++); //找第一个非空子表sl[0].next=f[j]; t=e[j]; while(jradix_n-1) { for(j=j+1;jradix_n-1!f[j];j++); if(f[j]) { sl[t].next=f[j]; t=e[j]; } } //找下一个非空子表 //链接两个非空子表 sl[t].next=0; } (3)链式基数排序算法 void radixsort(sllist l) { int i; arrtype_n fn,en; arrtype_c fc,ec; for(i=0;il.length;i++) l.sl[i].next=i+1; l.sl[l.length].next=0; for(i=l.keynum-1;i=2;i--) {  //将普通的线性表改为静态链表 //按最低位优先依次对各关键字进行分配和收集 distribute(l.sl,i,fn,en); coll

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档