网站大量收购独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、设计题目 设计一个航班信息查询与检索系统。 二、基本要求 1、每个航班记录包括八项:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。 2、要有输入模块 3、对航班信息进行排序与查找。 三、运行环境 CPU:奔腾3;操作系统:Windows 98;编程工具:TC2.0。 四、算法设计思想 1、设计思路 根据题目所要求,程序必须实现航班信息的录入和查询。程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。 2、流程图 定义数据类型 定义数据类型 数据输入、排序 数据输入、排序 接受查找条件、查找关键字 接受查找条件、查找关键字 输出查找结果 输出查找结果 3、各函数说明 (1)、一趟数字字符分配函数 void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e) (2)、一趟数字字符收集函数 void collect(slnode *sl,int i,arrtype_n f,arrtype_n e) (3)、一趟字母字符分配函数 void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e) (4)、一趟字母字符收集函数 void collect_c(slnode *sl,int i,arrtype_c f,arrtype_c e) (5)、链式基数排序函数 void radixsort(sllist l) (6)、按指针链重新整理静态链表 void arrange(sllist l)//重新整理 (7)、二分查找函数 int binsearch(sllist l,keytype key[]) (8)、顺序查找函数 void seqsearch(sllist l,keytype key[],int i) (9)、查询检索菜单控制程序 void searchcon(sllist l) (10)、录入航班数据函数 void inputdata(sllist l) (11)、主函数 void main() 五、源代码 #include stdafx.h #include stdio.h #include string.h #define maxspace 100 #define keylen 7 #define radix_n 10 #define radix_c 26 typedef char keytype; 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]; int keynum; int length; }sllist; typedef int arrtype_n[radix_n]; typedef int arrtype_c[radix_c]; 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; } } 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; } void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e) { int j,p; for(j=0;jradix_c;j++)

文档评论(0)

182****1884 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档