下载此文档

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


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
该【数据结构课程设计--航班信息查询与检索系统 】是由【青山代下】上传分享,文档一共【11】页,该文档可以免费在线阅读,需要了解更多关于【数据结构课程设计--航班信息查询与检索系统 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..一、设计题目设计一个航班信息查询与检索系统。二、基本要求1、每个航班记录包括八项:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。2、要有输入模块3、对航班信息进行排序与查找。三、运行环境CPU:奔腾3;操作系统:Windows98;编程工具:。四、算法设计思想1、设计思路根据题目所要求,程序必须实现航班信息的录入和查询。程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。2、流程图定义数据类型数据输入、排序接受查找条件、查找关键字输出查找结果3、各函数说明(1)、一趟数字字符分配函数voiddistribute(slnode*sl,inti,arrtype_nf,arrtype_ne)(2)、一趟数字字符收集函数voidcollect(slnode*sl,inti,arrtype_nf,arrtype_ne)(3)、一趟字母字符分配函数voiddistribute_c(slnode*sl,inti,arrtype_cf,arrtype_ce)(4)、一趟字母字符收集函数voidcollect_c(slnode*sl,inti,arrtype_cf,arrtype_ce)(5)、链式基数排序函数voidradixsort(sllist&l):..(6)、按指针链重新整理静态链表voidarrange(sllist&l)//重新整理(7)、二分查找函数intbinsearch(sllistl,keytypekey[])(8)、顺序查找函数voidseqsearch(sllistl,keytypekey[],inti)(9)、查询检索菜单控制程序voidsearchcon(sllistl)(10)、录入航班数据函数voidinputdata(sllist&l)(11)、主函数voidmain()五、源代码#include<>#include<>#definemaxspace100#definekeylen7#defineradix_n10#defineradix_c26typedefcharkeytype;typedefstruct{charstart[6];charend[6];charsche[10];chartime1[5];chartime2[5];charmodel[4];intprice;}infotype;typedefstruct{keytypekeys[keylen];infotypeothers;intnext;:..}slnode;typedefstruct{slnodesl[maxspace];intkeynum;intlength;}sllist;typedefintarrtype_n[radix_n];typedefintarrtype_c[radix_c];voiddistribute(slnode*sl,inti,arrtype_nf,arrtype_ne){intj,p;for(j=0;j<radix_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;elsesl[e[j]].next=p;e[j]=p;}}voidcollect(slnode*sl,inti,arrtype_nf,arrtype_ne){intj,t;for(j=0;!f[j];j++);sl[0].next=f[j];t=e[j];while(j<radix_n-1){for(j=j+1;j<radix_n-1&&!f[j];j++);if(f[j]):..{sl[t].next=f[j];t=e[j];}}sl[t].next=0;}voiddistribute_c(slnode*sl,inti,arrtype_cf,arrtype_ce){intj,p;for(j=0;j<radix_c;j++){f[j]=e[j]=0;}for(p=sl[0].next;p;p=sl[p].next){j=sl[p].keys[i]%65;if(!f[j])f[j]=p;elsesl[e[j]].next=p;e[j]=p;}}voidcollect_c(slnode*sl,inti,arrtype_cf,arrtype_ce){intj,t;for(j=0;!f[j];j++);sl[0].next=f[j];t=e[j];while(j<radix_c-1){for(j=j+1;j<radix_c-1&&!f[j];j++);if(f[j]){sl[t].next=f[j];:..t=e[j];}}sl[t].next=0;}voidradixsort(sllist&l)//链式{inti;arrtype_nfn,en;arrtype_cfc,ec;for(i=0;i<;i++)[i].next=i+1;[].next=0;for(i=-1;i>=2;i--){distribute(,i,fn,en);collect(,i,fn,en);}for(i=1;i>=0;i--){distribute_c(,i,fc,ec);collect_c(,i,fc,ec);}}voidarrange(sllist&l)//重新整理{intp,q,i;slnodetemp;p=[0].next;for(i=1;i<;i++){while(p<i)p=[p].next;q=[p].next;if(p!=i){:..temp=[p];[p]=[i];[i]=temp;[i].next=p;}p=q;}}intbinsearch(sllistl,keytypekey[]){intlow,high,mid;low=1;high=;while(low<=high){mid=(low+high)/2;if(strcmp(key,[mid].keys)==0)returnmid;elseif(strcmp(key,[mid].keys)<0)high=mid-1;elselow=mid+1;}return0;}voidseqsearch(sllistl,keytypekey[],inti){intj,k,m=0;航班号起点站终点站航班期起飞时间到达时间机型票价for(j=1;j<=;j++){switch(i){case2:k=strcmp(key,[j].);break;:..case3:k=strcmp(key,[j].);break;case4:k=strcmp(key,[j].);break;case5:k=strcmp(key,[j].);break;}if(k==0){m=1;[j].,[j].,[j].,[j].,[j].,[j].);}}if(m==0)无此航班信息,可能是输入错误!}voidsearchcon(sllistl){keytypekey[keylen];inti=1,k;while(i>=1&&i<=5){:..switch(i){输入要查询的航班号(字母要大写k=binsearch(l,key);if(k==0)无此航班信息,可能是输入错误!else{航班号起点站终点站航班期起飞时间到达时间机型票价[k].,[k].,[k].,[k].,[k].,[k].);}break;输入要查询的航班起点站名seqsearch(l,key,i);break;输入要查询的航班终点站名seqsearch(l,key,i);break;输入要查询的航班起飞时间seqsearch(l,key,i);break;输入要查询的航班到达时间seqsearch(l,key,i);break;再见}:..}}voidinputdata(sllist&l){inti=++;charyn='y';while(yn=='y'||yn=='Y'){航班号起点站终点站航班期起飞时间到达时间机型票价[i].,[i].,[i].,[i].,&[i].);++i;getchar();radixsort(l);arrange(l);继续输入吗}=i-1;}voidmain(){sllistl;=6;=0;inputdata(l);searchcon(l);}六、运行结果:..编译后运行,显示:航班号起点站终点站航班期起飞时间到达时间机型票价录入:**********↙显示:继续输入吗?y/n:录入:y↙显示:航班号起点站终点站航班期起飞时间到达时间机型票价录入:↙显示:继续输入吗?y/n:录入:n↙2、航班信息查询录入航班信息后,屏幕显示:*********************航班信息查询系统*****************************************************请选择(0-5):录入:1↙显示:输入要查询的航班号(字母要大写):录入:MU4594↙显示:航班号起点站终点站航班期起飞时间到达时间机型票价MU4594-昆明-西安--1015-1140-328-1160录入:2↙显示:输入要查询的航班起点站名:录入:青岛↙显示:航班号起点站终点站航班期起飞时间到达时间机型票价SC7425-青岛-海口--1920-2120-DH4-1630↙录入:2↙显示:输入要查询的航班起点站名:录入:广州↙显示:*无此航班信息,可能是输入错误!*:..本设计的重点和难点是在于对航班数据的排序和查找,以链式基数排序为主线,用到了二分查找和顺序查找等知识,还有建立静态链表等。通过这次课程设计,使我对C语言编程有了新的认识。以前编程只是注重如何编写函数能够完成所需要的功能,只是凭单纯的意识和简单的语句来堆砌出一段程序。但现在编程感觉完全不同了。在编写一个程序之前,自己能够综合考虑各种因素,选取自己需要的数据结构,在编写每一个函数之前,可以仔细斟酌比对,挑选出最适合当前状况的算法。这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。这样无形中就提高了自己编写的程序的质量。另外,我还体会到深刻理解数据结构的重要性。只有真正理解这样定义数据类型的好处,才能用好这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序的关键。

数据结构课程设计--航班信息查询与检索系统 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小751 KB
  • 时间2024-03-25