航班信息的查询与检索系统

上传人:cn****1 文档编号:511970975 上传时间:2022-08-27 格式:DOCX 页数:13 大小:208.73KB
返回 下载 相关 举报
航班信息的查询与检索系统_第1页
第1页 / 共13页
航班信息的查询与检索系统_第2页
第2页 / 共13页
航班信息的查询与检索系统_第3页
第3页 / 共13页
航班信息的查询与检索系统_第4页
第4页 / 共13页
航班信息的查询与检索系统_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《航班信息的查询与检索系统》由会员分享,可在线阅读,更多相关《航班信息的查询与检索系统(13页珍藏版)》请在金锄头文库上搜索。

1、航班信息查询与检索一、问题描述实现对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间和到 达时间等信息进行查询。航班信息表的样式如下:航班号起点站终点站班期起飞时间到达时间机型票价CA1544合肥北京1、 2、 4、 510:5512: 40733960MU5341上海广州每日14:2016:15M901280CZ3869重庆深圳2、4、608:5510:357331010其中航班号一项的格式为:前两个大写字母表示航空公司的名称,后4位为航班编号。 基本要求:(1)对飞机航班信息进行排序;(2)采用折半查找思想完成查找。可按照航班号、起点站、到达站、起飞时间和到达 时间等信息

2、进行查询。测试数据要求:测试的数据不得少于10个,不得有重复的航班。二、设计思想根据题目所要求,程序必须实现航班信息的录入和查询。程序首先定义了一个用于储存 航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行 数据查询和检索。在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查 找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。三、数据描述typedef struct nodechar numberMAXN; /航班号time start; /起飞时间time end; /到达时间char start_stationMAXN; /起点站

3、char end_stationMAXN; /终点站char typeMAXN; /飞机型号char priceMAXN; /票价struct node*link;NODE;四、算法描述1、二分查找int binSearch(NODE* n,char *strinput,int low, int high)/二分查找 int i;int middle = (high+low)/2;if (high number) 0)low = middle;elsei = middle;return i; binSearch(getindex(n,middle),strinput,low,high);int

4、 bisec t(char a,in t n,char sMAXN)/二分查找int i,j,m;i=0;j=n-1;while(i link;return counti;五、源代码#include #include #include #define MAXN 100typedef structchar hourMAXN;char minuteMAXN; time;typedef struct nodechar numberMAXN; /航班号time start; /起飞时间time end; /到达时间char start_stationMAXN; /起点站char end_station

5、MAXN; /终点站char typeMAXN; /飞机型号char priceMAXN; /票价 struct node*link;NODE;NODE *create_link_list(int n)int i; NODE *head,*p,*q;if(n=0)return(NULL); head=(NODE*)malloc(sizeof(NODE);for(i=0;i numberi=0; head-start.houri=0; head-start.minutei=0; head-end.houri=0; head-end.minutei=0; head-start_stationi=0

6、; head-end_stationi=0; head-typei=0;head-pricei=0; p=head;for(i=1;i number);p r i n t f ( 请输入起飞时间(时分): ) ;scanf(%s %s,&(p-start.hour),&(p-start.minute);p r i n t f ( 请输入达到时间(时分): ) ;scanf(%s %s,&(p-end.hour),&(p-end.minute);printf(请输入起点站终点站:);scanf(%s %s,&(p-start_station),&(p-end_station);printf(请输

7、入飞机型号:); scanf(%s,&(p-type);printf(请输入票价:); scanf(%s,&(p-price); printf(n);q=(NODE*)malloc(sizeof(NODE); p-link=q;p=q;printf(请输入航班号:); scanf(%s,&(p-number);p r i n t f ( 请输入起飞时间(时分): ) ;scanf(%s %s,&(p-start.hour),&(p-start.minute);p r i n t f ( 请输入达到时间(时分): ) ;scanf(%s %s,&(p-end.hour),&(p-end.minu

8、te);printf(请输入起点站终点站:);scanf(%s %s,&(p-start_station),&(p-end_station);printf(请输入飞机型号:); scanf(%s,&(p-type);printf(请输入票价:); scanf(%s,&(p-price);printf(n); getchar();p-link=NULL;return(head);void insert(NODE *p_head,NODE *q)NODE *p; if(*p_head=NULL) *p_head=q;elsep=*p_head;while(p!=NULL&p-link!=NULL)

9、p=p-link;p-link=q;unsigned int coun tit(N ODE* n)/计算链表长度 unsigned int counti = 0;while(n!=NULL)counti+,n=n-link;return counti;NODE* getindex(NODE* head, int num);NODE* getindex(NODE* head, int num)/取得 index 为 num 的节点! if(numcountit(head)return NULL;NODE* rn = head;while(-num0)rn = rn-link;return rn;

10、int binSearch(NODE* n,char *strinput,int low, int high)/二分查找int i;int middle = (high+low)/2;if (high number) 0)low = middle;elsei = middle;return i; binSearch(getindex(n,middle),strinput,low,high);int bisec t(char a,in t n,char sMAXN)/二分查找int i,j,m;i=0;j=n-1;while(i start_station,&v0);head=head-link

11、); return(head);NODE *search2(NODE *head,char wMAXN)/到 达站顺序查找 for(;head!=NULL&strcmp(head-end_station,&w0);head=head-link); return(head);NODE *search3(NODE *head,char xMAXN,char yMAXN)/起飞时间顺序查找 for(;head!=NULL&(strcmp(head-start.hour,&x0)|strcmp(head-start.minute,&y0);head=head-link);return(head);NO

12、DE *search4(NODE *head,char tMAXN,char uMAXN)/到达时间顺序查找 for(;head!=NULL&(strcmp(head-end.hour,&t0)|strcmp(head-end.minute,&u0);head=head-link);return(head);void output(NODE *p)while(p!=NULL)printf(航班信息:n);printf(航班号:sn,p-number);pri ntf(起飞时间:%s 点s 分,p-s tart .hour,p-s tart .min ut e); printf (到达时间:%s 点s 分n,p-end.hour,p-end.minute); printf(起点站:s,p-start_station);printf(到达站:sn,p-end_station); printf(飞机型号:%s,p-type);printf (票价:%s 元nn,p-price); p=p-link;NODE *rank( NODE *head)NODE *q=0,*p=0,*t,*h1; h1=head-link

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号