航班查询系统 《数据结构》课程设计报告.doc_第1页
航班查询系统 《数据结构》课程设计报告.doc_第2页
航班查询系统 《数据结构》课程设计报告.doc_第3页
航班查询系统 《数据结构》课程设计报告.doc_第4页
航班查询系统 《数据结构》课程设计报告.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

武汉轻工大学数计学院数据结构课程设计报告名 称: 航班查询系统 班 级: 信息与计算科学1301 姓 名: 王 杰 学 号: 1312010027 指导教师: 王 防 修 学年学期: 2014 2015 学年 第 一 学期 2014 年 12 月 26 日一 、需求分析1. 问题描述:本任务要求对飞机航班信息进行排序和查找。可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。本设计主要是对排序以及查找等概念进行综合练习。以链式基数排序为主线,用到二分查找和顺序查找等知识,还有建立静态链表等相关概念.2. 基本要求:进入系统后,首先提示输入航班的信息,包括:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号及票价等,票价为整型,其他为字符型。 当输入完一个信息后会提示是否继续输入,重复以上步骤输入全部的信息。 进入主菜单后会给出用户操作的界面,根据提示进行航班信息的查询。二、 概要设计1.系统的功能:本任务要求对飞机航班信息进行排序和查找。可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。本设计主要是对排序以及查找等概念进行综合练习。以链式基数排序为主线,用到二分查找和顺序查找等知识,还有建立静态链表等相关概念。2.系统模块分析:(1)航班排序 对输入系统内的航班首先要进行排序,我们采用的基数排序,从低位到高位依次对关键字进行分配和收集,分两段实现其算法流程图。(2)时间查找 根据航班的起飞时间(到达时间)查找航班的信息。(3)二分法查找功能(4)显示功能 显示功能是将所求单词的所有行列信息依次显示在屏幕上。航班查询系统程序源代码:# include # include# include #include # include# include # define Null 0struct flightchar fltNum15;char StartingPoint 20;char Terminal 20;char DepartureTime8;char ArrivalTime8;char AircraftType10;int price;struct flight * next;void print()printf(*欢迎光临航班查询系统*n); printf(|-|n);printf(| 请输入选项编号(0-8) |n);printf(|-|n);printf(| 1-录入航班信息 |n);printf(| 2-添加新航班信息 |n);printf(| 3-删除航班信息 |n);printf(| 4-排序航班信息 |n);printf(| 5-浏览所有航班信息 |n);printf(| 6-查询航班信息 |n);printf(| 7-退出航班查询系统 |n);printf(|-|n);struct flight * init(int n)int i;struct flight *head,*p,*s;for(i=1;ifltNum);scanf(%s,&p-StartingPoint);scanf(%s,&p-Terminal);scanf(%s,&p-DepartureTime);scanf(%s,&p-ArrivalTime);scanf(%s,&p-AircraftType); scanf(%d,&p-price);head=p;getchar();else s=(struct flight*) malloc(sizeof(struct flight);scanf(%s,&s-fltNum);scanf(%s,&s-StartingPoint);scanf(%s,&s-Terminal);scanf(%s,&s-DepartureTime);scanf(%s,&s-ArrivalTime);scanf(%s,&s-AircraftType); scanf(%d,&s-price);p-next=s;p=s;getchar();s-next=Null;if(head!=NULL) printf(录入信息成功!n);return head;void insert(struct flight *head)struct flight *p,*pi;pi=(struct flight*) malloc(sizeof(struct flight);p=head;printf(航班号 起点站 终点站 起飞时间 到达时间 机型 价格n);scanf(%s,&pi-fltNum);scanf(%s,&pi-StartingPoint);scanf(%s,&pi-Terminal);scanf(%s,&pi-DepartureTime);scanf(%s,&pi-ArrivalTime);scanf(%s,&pi-AircraftType); scanf(%d,&pi-price);if(head=Null)head=pi;pi-next=Null;elsewhile(p-next!=Null)p=p-next;if(p-next!=Null)pi-next=p-next;p-next=pi;elsep-next=pi;pi-next=Null;struct flight * delet(struct flight *head,char fltNum15)struct flight *p,*q,*s;p=head;if(head=Null)printf(没有航班信息要删除。n);return head; if(strcmp(p-fltNum,fltNum)=0&p=head) head=p-next;printf(删除成功!n);return head;while(p!=Null)if(strcmp(p-next-fltNum,fltNum)=0)s=p; q=p-next;p-next=q-next;free(q);p=p-next;if(s=Null)printf(找不到相应的航班信息。n);elseprintf(删除成功!n);return head;struct flight *bubblesort(struct flight *head) struct flight *p,*q,*tail,*s; tail=NULL; while(head-next!=tail) p=head; q=p-next; while(q-next!=tail) if(strcmp(p-next-fltNum,q-next-fltNum)next; p-next=q-next; q-next=q-next-next; p-next-next=q; q=s; p=p-next; q=q-next; tail=q; return head;struct flight *browse(struct flight *head) struct flight*p;p=head;printf(航班号 起点站 终点站 起飞时间 到达时间 机型 价格n);while(p!=Null)printf(%-8s,p-fltNum);printf(%-10s,p-StartingPoint);printf(%-10s,p-Terminal);printf(%-12s,p-DepartureTime);printf(%-12s,p-ArrivalTime); printf(%-8s,p-AircraftType); printf(%-5d,p-price);p=p-next;printf(n);return head;struct flight *fltNumSearch(struct flight *head,char fltNum15)struct flight *p,*q;p=head;while(p!=Null)if(strcmp(p-fltNum,fltNum)=0)q=p;printf(航班号 起点站 终点站 起飞时间 到达时间 机型 价格n);printf(%-8s,p-fltNum); printf(%-10s,p-StartingPoint); printf(%-10s,p-Terminal); printf(%-12s,p-DepartureTime); printf(%-12s,p-ArrivalTime); printf(%-8s,p-AircraftType); printf(%-5d,p-price); printf(n); p=p-next; if(q=NULL)printf(找不到航班信息!n);return head;struct flight *DepartureTimeSearch(struct flight *head,char DepartureTime15)struct flight *p,*q;p=head;while(p!=Null)if(strcmp(p-DepartureTime,DepartureTime)=0)q=p;printf(航班号 起点站 终点站 起飞时间 到达时间 机型 价格n);printf(%-8s,p-fltNum);printf(%-10s,p-StartingPoint);printf(%-10s,p-Terminal);printf(%-12s,p-DepartureTime);printf(%-12s,p-ArrivalTime); printf(%-8s,p-AircraftType); printf(%-5d,p-price); printf(n);p=p-next; if(q=NULL)printf(找不到航班信息!n); return head;struct flight *ArrivalTimeSearc(struct flight *head,char ArrivalTime15)struct flight *p,*q; p=head;while(p!=Null)if(strcmp(p-ArrivalTime,ArrivalTime)=0)q=p;printf(航班号 起点站 终点站 起飞时间 到达时间 机型 价格n);printf(%-8s,p-fltNum);printf(%-10s,p-StartingPoint);printf(%-10s,p-Terminal);printf(%-12s,p-DepartureTime);printf(%-12s,p-ArrivalTime); printf(%-8s,p-AircraftType); printf(%-5d,p-price); printf(n); p=p-next; if(q=NULL)printf(找不到航班信息!n);return head;struct flight *StartingPointSearch(struct flight *head,char StartingPoint20)struct flight *p,*q;p=head;while(p!=Null)if(strcmp(p-StartingPoint,StartingPoint)=0)q=p;printf(航班号 起点站 终点站 起飞时间 到达时间 机型 价格n);printf(%-8s,p-fltNum);printf(%-10s,p-StartingPoint);printf(%-10s,p-Terminal);printf(%-12s,p-DepartureTime);printf(%-12s,p-ArrivalTime); printf(%-8s,p-AircraftType); printf(%-5d,p-price); printf(n); p=p-next; if(q=NULL)printf(找不到航班信息!);return head;struct flight *TerminalSearch(struct flight *head,char Terminal15)struct flight *p,*q;p=head;while(p!=Null) if(strcmp(p-Terminal,Terminal)=0) printf(航班号 起点站 终点站 起飞时间 到达时间 机型 价格n);printf(%-8s,p-fltNum);printf(%-10s,p-StartingPoint);printf(%-10s,p-Terminal);printf(%-12s,p-DepartureTime);printf(%-12s,p-ArrivalTime); printf(%-8s,p-AircraftType); printf(%-5d,p-price);printf(n); p=p-next; if(q=NULL) printf(找不到航班信息!n);return head;void Clear() system(pause); system(cls);void menu()printf(请选择:n);printf(*1-按航班号查询*n);printf(*2-按起飞时间查询*n); printf(*3-按到达时间查询*n);printf(*4-按起点站查询*n);printf(*5-按终点站查询*n);printf(*0-返回上一级*n);void main()char ch;int n=0;struct flight *head;print();while(ch=tolower(getchar()!=7)switch(ch) case 1:printf(请问有多少个航班的资料需要输入?:n);scanf(%d,&n);system(cls);print();head=init(n);break;case 2: printf(请输入航班信息:n);insert(head);system(cls);print();printf(插入成功!);break;case 3:char fltNum15;printf(请输入要删除航班的航班号:);scanf(%s,&fltNum);system(cls);print();head=delet(head,fltNum);break;case 4:printf(排序结果如下:n);head=bubblesort(head);system(cls);print();head=browse(head);break;case 5:system(cls);print(); head=browse(head);break;case 6:char info20;int m; system(cls);menu();while(1)scanf(%d,&m);if (m=0)system(cls);print();break;switch(m)case 1:printf(请输入按航班

温馨提示

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

评论

0/150

提交评论