航班信息查询与检索系统课程设计报告_第1页
航班信息查询与检索系统课程设计报告_第2页
航班信息查询与检索系统课程设计报告_第3页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程设计名称:数据结构课程设计题目:设计并实现一个航班信息查询与检索系统院系:计算机学院专业:班级:学号:姓名:指导教师:指导教師评语:年 月 日学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指 导下独立进行设计工作及取得的研究结果。 尽我所知,除了文中特别 加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表 或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一 同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说 明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受 本教学环节“不及格”和“重修或重做”的评分结论并承担相关一

2、切 后果。本人签名:日期:年月日课程设计名称数据结构课程设计/八、专业学生姓名班级/学号题目名称设计并实现一个航班信息查询与检索系统起止日期2016 /年12 月 18 日起至2017 年1月 4日止课设内容和要求:对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间 和到达时间等信息进行查询。'要求:'1. 设计数据结构2. 选择合适的排序和查找算法3. 设计软件的功能结构4. 采用模块化编程5给出现实方法和算法6.按课程设计规范撰写课程设计报告参考资料:1 严蔚敏、陈文博,数据结构及应用算法教程M.北京:清华大学出版社,2 张小莉、王苗、罗文劼,数据结构与算

3、法M.北京:机械工业出版社,教研室审核意见:教研室主任签字:指导教师(签名)'年月日学生(签名)年月日课程设计总结:本设计的重点和难点是在于对航班数据的排序和查找,以链式基数排序为主线,用到了二分查找和顺序查找等知识,还有建立静态链表等。通过这次课程设 计,使我对C语言编程有了新的认识。以前编程只是注重如何编写函数能够完成 所需要的功能,只是凭单纯的意识和简单的语句来堆砌出一段程序。但现在编程 感觉完全不同了。在编写一个程序之前,自己能够综合考虑各种因素,选取自己 需要的数据结构,在编写每一个函数之前,可以仔细斟酌比对,挑选出最适合当 前状况的算法。这样,即使在完整的程序还没有写出来之

4、前,自己心中已经有了 明确的原图了。这样无形中就提高了自己编写的程序的质量。另外,我还体会到 深刻理解数据结构的重要性。只有真正理解这样定义数据类型的好处,才能用好 这样一种数据结构。了解典型数据结构的性质是非常有用的,它往往是编写程序 的关键。目 录学术诚信声明11、题目介绍设计一个航班信息查询与检索系统。可按航班的航班号、起点站、终点站、起飞时间 以及到达时间等信息进行查询。2、课程设计要求1、每个航班记录包括八项:航班号、起始站、终点站、班期、起飞时间、至U达时间、 飞机型号、票价。如下表所示:航班号起点站终点站班期起飞时间到达时间机型票价CA1544合肥北京上海广州'每日142

5、01615M901280CZ3869重庆深圳、对航班信息进行排序与查找3、概要设计、设计思路根据题目所要求,程序必须实现航班信息的录入和查询。 程序首先定义了一 个储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进 行排序,最后执行数据查询和检索。在查询设计中,使用折半查找法对排好序的 航班号数据实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采 用顺序查询方法。、流程图判断符号是否合法4、算法实现.定义数据类型根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的 数据类型:typedef struct char start 6;函数描述void di

6、stributeInode *sl,int i,arrtype_n f,arrtype_n e)int j,p;for(j=0;j<10;j+)fj=ej=0;for(p=sl0. next;p;p=slp. next)j=slp.keysi%48;ext=p;ej=p;ext=fj;t=ej;while(j<10-1)/for(j=j+1;j<10-1 &&!fj;j+);ext=fj;/t=ej;ext=0;链式基数排序算法void radixsort(sllist &l)int i;arrtype_ n fn,en;arrtype_c fc,ec

7、;for(i=0;i<i+)i. next=i+1;.next=0;ext;for(i=1;i<i+)while(p<i)p=p. next;q=p. next;if(p!=i)temp=p;p=i;i=temp;ext=p;p=q;折半查找函数定义int bin search(sllist l,char key)int low,high,mid;low=1;high=;while(low<=high)mid=(low+high)/2;if(strcmp(key,mid.keys)=O)return mid;else if(strcmp(key,mid.keys)<

8、;0)high=mid-1;elselow=mid+1; return 0;5、测试数据编译后运行,显示:录入信息八_八/航班号起点站终点站班期起飞时间到达时间机型票价录入:CA1544 合肥 北京 10551240733 960显示:是否继续?y/n:录入:y显示:航班号起点站终点站班期起飞时间到达时间机型票价录入:MU5341 上海广州每日14201615M901280显示:是否继续?y/n:录入:y显示:航班号起点站终点站班期起飞时间到达时间机型票价录入:CZ3869 重庆深圳085510357331010显示:是否继续? y/n:录入:n录入航班信息后,屏幕显示:*航班信息查询系统*1

9、航班号 2起点站 3终点站 4起飞时间5.到达时间0.退出(0-5)号服务项目:录入:1显示:输入要查询的航班号(字母要大写):录入:CA1544显示:航班号起点站终点站班期起飞时间到达时间机型票价CA1544 合肥 北京10551240733960 H九异.g.Obu £嘗捱1卓 民貝冃弋习班点点企八打起計£ 1 2 3 4 5 RW»*前人萝杳询的昭毎吕(字母馥尢2> :(M1544航班号越爲站蔡斜 班期超飞时间到达时间机型票价合肥 北京 1,2,4-51B55 12 4» 733 ?60*航班信息查询系统*12 3 4录入:2显示:输入要查询

10、的航班起点站:录入:合肥显示:航班号起点站终点站班期起飞时间到达时间机型票价显示:CA1544 合肥 北京 10551240733 960I W:'.廉盘,83g儀强皋-農股滾出玛心討'CA1>44»50 起a-fE到达时i可机型票价跖!;124H75 3 9fi吕站站-倡 班点点3岀 Hi1 2 3 4 b 0*罚-E、号眾务项目曲肾入要查询的航班终点站;北京五刘珂隔站终理班期起賦间到迖时间札型票价Cfll544 合月巴 北豆 11240733S&0±-M班丸终点4-起飞时 乩到达时 a-®®号站站厲4*” H:诗捋咸寿三

11、冷弋耳心h"-刖号服务项目沁血闻超点站祭側班期起飞吋间到达时间机型票价Cfllb44 合月巴北,於1-2.4.5 LMbb £240 733b«<0寻号服务顶目<5询的航却曲俟时阊T24B航班号起寺站农点诂班期起飞时闻至魅时间机型票价CA1544 合肥 匕示 1_2.4.51855£24073396B录入:2显示:输入要查询的航班起点站录入:广州显示: H :诸曲get ug泮寻誡滑-続代码,ere*0-5 号眾务項目江輪入要查词的低班号t字母要大写:acl544 - - 1. |_, 一 一 一 ,元此舰班倡患可能是牺入唐误!*航班查询系统

12、*班点点3S出 >1 12 3 4 5 0佃-5号服务项目泠倉入要查询的航班起点站二广州岂姑终占苗哄亂显飞时阖到达时慣机型旱朴 i 8-可能是输入错误!附录源程序:#in elude <>#in elude <>#defi ne max 100#defi ne keyle n 7typedef structchar start 6;char e nd6;char sche10;char time15;char time25;char model4;int price;info;typedef structchar keyskeyle n;info others;i

13、nt next;slno de;typedef structslnode slmax;int keynum;int len gth;sllist;typedef int arrtype_ n 10;typedef int arrtype_c26;void distribute(sInode *sl,int i,arrtype_n f,arrtype_n e)int j,p;for(j=0;j<10;j+)fj=ej=0;for(p=sl0. next;p;p=slp. next)j=slp.keysi%48;fj=P;elseslej. next=p;ej=P;void collect(

14、sInode *sl,int i,arrtype_n f,arrtype_n e)int j,t;for(j=0;!fj;j+);sl0. next=fj;t=ej;while(j<10-1)for(j=j+1;j<10-1 &&!fj;j+);if(fj) slt .n ext=fj;t=ej;slt. next=0;void distribute_c(sInode *sl,int i,arrtype_c f,arrtype_c e)int j,p;for(j=0;j<26;j+)fj=ej=0;for(p=sl0. next;p;p=slp. next)j

15、=slp.keysi%65;fj=p;elseslej. next=p;ej=p;void collect_c(s Inode *sl,i nt i,arrtype_c f,arrtype_c e)int j,t;for(j=0;!fj;j+);sl0. next=fj;t=ej;while(j<26-1)for(j=j+1;j<26-1 &&!fj;j+);if(fj)slt .n ext=fj;t=ej;slt. next=O;void radixsort(sllist &l)int i;arrtype_ n fn,en; arrtype_c fc,ec

16、;/for(i=0;i<i+)i. next=i+1;.next=0;for(i=;i>=2;i-)distribute,i,fn,e n); collect,i,fn,e n);for(i=1;i>=0;i-)distribute_c,i,fc,ec); collect_c,i,fc,ec); void arran ge(sllist &l)in t p,q,i; slnode temp; 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.

17、next=p;p=q;int bin search(sllist l,char key)int low,high,mid;low=1;high=;while(low<=high)mid=(low+high)/2;if(strcmp(key,mid.keys)=O) return mid;else if(strcmp(key,mid.keys)<0)high=mid-1;elselow=mid+1;return 0; void seqsearch(sllist l,char key,i nt i)int j,k,m=0;printf(”n ”);printf("航班号起点站

18、终点站班期起飞时间到达时间机型票价n");/for(j=1;j<=;j+)switch(i)case 2:k=strcmp(key,j.;break;case 3:k=strcmp(key,j.;break;case 4:k=strcmp(key,j.;break;case 5:k=strcmp(key,j.;break;if(k=0)m=1;printf(" %-8s%-7s%-7s%-11s%-6s%-6s%5s%4dn",j.keys,j.,j.,j.,j.,j.,j.,j.;printf(”无此航班信息,可能是输入错误!n");n"

19、;);if(m=0)printf(”void searchc on( sllist I)char keykeyle n;int i=1,k;while(i>=1 &&i <=5) printf("-n");printf(” *航班信息查询系统* n")printf("-n");printf(” *1航班号*n");printf(” *2起点站*n");printf(” *3终点站*n");printf(” *4起飞时间*n");printf(” *5到达时间*n");

20、printf(” *0退出*n");printf(” -n");printf(” (0-5)号服务项目:");scan f("%d", &i);prin tf("n ”);switch(i)case 1:printf("输入要查询的航班号(字母要大写sca nf("%s",key);printf(”无此航班信息,可能是输入错误!n");elseprintf(”航班号起点站终点站班期起飞时间到达时间机型票价n");printf(” -8s%-7s%-7s%-11s%-6s%-6s%-5s%4dn",k.keys,k.,k.,k.,k.,k.,k.,k.;/ /printf("n");break;/ case 2:pri ntf("输入要查询的航班起点站:”);scan f("%s",key);seqsearch(l,key,i);break;case 3:pri ntf("输入要查询的航班终点站:");scan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论