20141204060 航班信息的查询与检索(排序应用)

合集下载

数据结构课程设计-航班查询与检索(含代码、流程图、输出结果)

数据结构课程设计-航班查询与检索(含代码、流程图、输出结果)

算法与数据结构实验报告航班查询与检索题目:航班查询与检索指导老师:组长:成员:一:航班信息的查询与检索按时间查询:按站点查询:二分法查询:二:算法分析:程序主要采用结构体链表顺序表队列主要算法:/*航班信息的查询与检索*/三:/*航班信息的查询与检索*/#include<iostream.h>#include<string.h>#include<stdio.h>#define N 6 //航班数//航班信息typedef struct flight{char flight_number[10]; //航班号char start_address[10]; //起飞站char arrived_address[10]; //终点站char work_date[10]; //班期char start_time[6]; //起飞时间char arrived_time[6]; //到达时间char FlightType[4]; //机型int fare; //票价}DataType;struct flight Flight[N];//-----------按航班号进行基数排序-----------typedef char KeyType;#define D 7 // D为排序码的最大位数#define R 'a' // R为基数,这里为小于字母'a'代表的整型值struct Node; //单链表结点类型typedef struct Node RadixNode;struct Node{KeyType key[D]; //关键字DataType info; //数据信息RadixNode *next;};typedef RadixNode * RadixList;typedef struct QueueNode{RadixNode *f; //对列的头指针RadixNode *e; //对列的尾指针}Queue;Queue queue[R];//用队列表示桶void radixSort(RadixList * plist, int d, int r){int i,j,k;RadixNode *p, *head;head=(*plist)->next;for(j=d-1; j>=0; j--) //进行d次分配和收集{p=head;for(i=0; i<r; i++){queue[i].f=NULL; queue[i].e=NULL; //清队列}while(p!=NULL){k=p->key[j]; //按排序码的第j个分量进行分配if(queue[k].f==NULL) queue[k].f=p; // 若第k个堆为空,则当前记录为队头else (queue[k].e)->next=p; // 否则当前记录链接到第k队的队尾queue[k].e=p;p=p->next;}i=0;while(queue[i].f==NULL) i++; // 从r个队列中找出第一个非空的队列p=queue[i].e; head=queue[i].f; //head为收集链表的头指针for(i++; i<r; i++)if(queue[i].f!=NULL){ p->next=queue[i].f; p=queue[i].e; } // 收集非空队列p->next=NULL;}(*plist)->next=head;}//初始化航班信息struct Node element[N+1]={" "," "," "," "," "," "," "," ",0,NULL,//表头"CA1544","CA1544","合肥","北京","1245 ","10:55","12:40","733",960,NULL,"MU5341","MU5341","上海","广州","每日","14:20","16:15","M90",1280,NULL, "CZ3869","CZ3869","重庆","深圳","246 ","08:55","10:35","733",1010,NULL, "MU3682","MU3682","桂林","南京","23467","20:50","22:15","M90",1380,NULL,"HU1836","HU1836","上海","北京","每日","09:40","11:20","738",1250,NULL,"CZ3528","CZ3528","成都","厦门","13457","15:10","16:50","CRJ",1060,NULL,};//------------信息显示------------//按表的格式输出某个航班信息//显示头部信息void Cout_info1(){cout<<" ****************************************\n"<<endl;cout<<" * 欢迎您使用*\n"<<endl;cout<<" * 航班信息表*\n"<<endl;cout<<" ****************************************\n"<<endl;cout<<" 航班号起飞时间到达时间起飞站终点站班期机型票价\n"<<endl;}//显示主体信息void Cout_info2_1(Node p[])//方式一{cout<<" "<<p->info.flight_number;cout<<" "<<p->info.start_time;cout<<" "<<p->info.arrived_time;cout<<" "<<p->info.start_address;cout<<" "<<p->info.arrived_address; cout<<" "<<p->info.work_date;cout<<" "<<p->info.FlightType;cout<<" "<<p->info.fare<<"元"<<endl;}void Cout_info2_2(flight F[],int i)//方式二{cout<<" "<<F[i].flight_number;cout<<" "<<F[i].start_time;cout<<" "<<F[i].arrived_time;cout<<" "<<F[i].start_address;cout<<" "<<F[i].arrived_address; cout<<" "<<F[i].work_date;cout<<" "<<F[i].FlightType;cout<<" "<<F[i].fare<<"元"<<endl;}//显示所有航班信息void output_ALL_info1(Node element[]) //方式一{RadixList p=element;Cout_info1();p=p->next;while(p!=NULL){Cout_info2_1(p);p=p->next;}cout<<endl;}void output_ALL_info2(flight F[]) //方式二{Cout_info1();for(int i=0;i<N;i++){Cout_info2_2(F,i);}cout<<endl;}//--------------信息复制----------------//将排好的序列(链表)转化成顺序表存储形式void copy(flight F[],Node element[]){RadixList p=element;p=p->next;int i;for(i=0;i<N && p!=NULL;i++){strcpy(F[i].flight_number,p->info.flight_number);strcpy(F[i].start_time,p->info.start_time);strcpy(F[i].arrived_time,p->info.arrived_time);strcpy(F[i].start_address,p->info.start_address);strcpy(F[i].arrived_address,p->info.arrived_address);strcpy(F[i].work_date,p->info.work_date);strcpy(F[i].FlightType,p->info.FlightType);F[i].fare=p->info.fare;p=p->next;}}//---------------服务菜单--------------void F_By_Time(flight F[],int);void F_By_Address(flight F[],int);void F_By_fare(flight F[]);void F_By_FN(flight F[]);//主菜单void mainmenu(){char ch;int y;cout<<" 主菜单\n"<<endl;cout<<"===========================================================\n"<<endl;cout<<" Please choose: (input the number)(输入查询/排序命令)\n"<<endl; cout<<" 0. show the mainmenu (显示主菜单)\n"<<endl;cout<<" 1. Find by flight number(按航班号查询)\n"<<endl;cout<<" 2. Find by start time(按起飞时间查询)\n"<<endl;cout<<" 3. Find by arrived time(按到达时间查询)\n"<<endl;cout<<" 4. Find by start address(按起飞地点查询)\n"<<endl;cout<<" 5. Find by arrived address(按目的地点查询)\n"<<endl;cout<<" 6. Find by the fare(按票价范围查询)\n"<<endl;cout<<" ----其他键退出"<<endl;cout<<"===========================================================\n"<<endl;while(1){cout<<"请输入服务命令:";cin>>y;switch(y){case 0: mainmenu();break;case 1:F_By_FN(Flight);break;case 2:F_By_Time(Flight,1);break;case 3:F_By_Time(Flight,2);break;case 4:F_By_Address(Flight,1);break;case 5:F_By_Address(Flight,2);break;case 6:F_By_fare(Flight);break;default :cout<<" 谢谢惠顾!"<<endl;break;}cout<<"是否退出?(Y/N):";cin>>ch;if(ch=='Y'||ch=='y') break;}}//--------------查询系统--------------//通过航班号实现二分查找法查找void F_By_FN(flight F[]){int low=0,high=N,mid;char Num[10];cout<<"请输入您要查询的航班号:";cin>>Num;Cout_info1();//显示头部信息while(low<=high){mid=(low+high)/2;if(strcmp(Num,F[mid].flight_number)==0) {Cout_info2_2(F,mid);break;}else if(strcmp(Num,F[mid].flight_number)<0) high=mid-1;else low=mid+1;}cout<<" *************对不起,没有您要查找的航班号********** "<<endl;}//通过起飞/到达时间查询void F_By_Time(flight F[],int Time){int i;char T[6];cout<<"请输入您要查询的航班的起飞/抵达时间:";cin>>T;Cout_info1();//显示头部信息for(i=0;i<N;i++){if(Time==1) //按起飞时间查询{if(strcmp(T,F[i].start_time)==0) Cout_info2_2(F,i);}if(Time==2) //按抵达时间查询{if(strcmp(T,F[i].arrived_time)==0) Cout_info2_2(F,i);}}cout<<" *******对不起,该时间没有航班******* "<<endl;}//通过站点查询void F_By_Address(flight F[],int AD){char str[10];cout<<"请输入您要查询的航班的起飞/抵达地址:";cin>>str;Cout_info1();for(int i=0;i<N;i++){if(AD==1) //按起点站查询{if(strcmp(str,F[i].start_address)==0) Cout_info2_2(F,i);}if(AD==2) //按目的站查询{if(strcmp(str,F[i].arrived_address)==0) Cout_info2_2(F,i);}}cout<<" ********对不起,该站点不存在******** "<<endl; }//通过票价范围查询void F_By_fare(flight F[]){int T1,T2,i;cout<<"请输入您要查询的航班的最低票价(单位:元):";cin>>T1;cout<<"请输入您要查询的航班的最高票价(单位:元):";cin>>T2;Cout_info1();for(i=0;i<N;i++){if(T1<=F[i].fare && T2>=F[i].fare) Cout_info2_2(F,i);}cout<<" *******对不起,没有适合您的航班,请修改您的票价范围********" <<endl; }//--------------主函数----------------int main(){RadixList p=element;for(int i=0;i<N;i++)element[i].next=&element[i+1];element[10].next=NULL;radixSort(&p, D, R); //基数排序output_ALL_info1(element); //输出排序后的有序序列(航班信息)copy(Flight,element); //另存储排序后的航班信息mainmenu(); //给出主菜单return 0;}测试数据及测试结果:、边界值处理:四:遇到的问题及解决策略:首先是要实现所要的功能需用什么数据结构的问题,比如排序问题究竟用那一种,在组员的商量下和上网搜寻资料,采用对排序最符合,其次是在时间的查询过程中,比如输入时间16:40开始只能实现输入1640,最后通过改时间的数据类型实现了时间的输入,最后是在各个模块的组合过程中由于各个成员编程所起的名字或者其他原因,程序无法运行,最后在大家的努力下一起修改错误使得程序可以正常运行。

如何进行历史航班信息查询

如何进行历史航班信息查询

如何进行历史航班信息查询
1、乘坐飞机时记录会被机场或航空公司留底,所以建议可以向所乘坐的航空公司查询。

但如果记录过久,记录会被清除。

2、可以通过机场安检处,通过身份证号码,不过前提是要在法律允许的情况下。

3、登录对方乘坐飞机的航空公司网站,上面有查询入口,输入身份证号进行查找。

4、通过代售点查询:一般代售点有自己的相关软件订票系统,一定时期的订票记录系统会保留。

5、通过订票网站,软件,或者相关手机APP订票,通过查询历史订单的方式查询,但需要相关网站的登录用户名及其密码。

另外很多网站订单详情需要手机接收验证码作为个人身份的最后一道验证程序,第三者基本不可能通过此方式查询。

扩展资料
飞机航班号
为便于组织运输生产,每个航班都按照一定的规律编有不同的号码以便于区别和管理,这种号码成为航班号。

国内航班号编排
例如:CA1202,西安飞往北京的航班,CA是中国国际航空公司,第一位数字1表示华北地区,国航的基地在北京,属华北地区;
第二位数2表示航班的基地外终点在西北地区,现属于西北地区;02为航班序号,其中末尾数2表示是回程航班。

再如:MU5305,上海飞往广州的航班,MU是中国东方航空公司代码,5代表上海所在的华东地区,3代表广州所在的华南地区,05为序号,单数是去程航班。

根据航班号可以很快地了解到航班的执行公司、飞往地点及方向,这对管理和乘客都非常方便。

国际航班号编排
由航空公司代码加3位数字组成,第一位数字表示航空公司,后两位是航班序号,单数为去程,双数为回程。

如:CA982,由纽约飞往北京的航班,是由中国国际航空公司承运的回程航班。

航班查询系统

航班查询系统

武汉轻工大学数计学院《数据结构》课程设计报告名称:航班查询系统班级:信息与计算科学1301姓名:王杰学号:1312010027指导教师:王防修学年学期:2014 ~ 2015 学年第一学期2014 年12 月26 日一、需求分析1. 问题描述:本任务要求对飞机航班信息进行排序和查找。

可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。

本设计主要是对排序以及查找等概念进行综合练习。

以链式基数排序为主线,用到二分查找和顺序查找等知识,还有建立静态链表等相关概念.2. 基本要求:进入系统后,首先提示输入航班的信息,包括:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号及票价等,票价为整型,其他为字符型。

当输入完一个信息后会提示是否继续输入,重复以上步骤输入全部的信息。

进入主菜单后会给出用户操作的界面,根据提示进行航班信息的查询。

二、概要设计1.系统的功能:本任务要求对飞机航班信息进行排序和查找。

可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。

本设计主要是对排序以及查找等概念进行综合练习。

以链式基数排序为主线,用到二分查找和顺序查找等知识,还有建立静态链表等相关概念。

2.系统模块分析:(1)航班排序对输入系统内的航班首先要进行排序,我们采用的基数排序,从低位到高位依次对关键字进行分配和收集,分两段实现其算法流程图。

(2)时间查找根据航班的起飞时间(到达时间)查找航班的信息。

(3)二分法查找功能(4)显示功能显示功能是将所求单词的所有行列信息依次显示在屏幕上。

航班查询系统程序源代码:# include <stdio.h># include<stdlib.h># include <ctype.h>#include <string.h># include<process.h># include <conio.h># define Null 0struct flight{char fltNum[15];char StartingPoint [20];char Terminal [20];char DepartureTime[8];char ArrivalTime[8];char AircraftType[10];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;i<=n;i++){printf("航班号起点站终点站起飞时间到达时间机型价格\n");if(i==1){p=(struct flight*) malloc(sizeof(struct flight));scanf("%s",&p->fltNum);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");。

如何查询机场的航班记录

如何查询机场的航班记录

如何查询机场的航班记录随着航空业的快速发展,越来越多的人选择坐飞机出行。

在乘坐飞机之前,查询机场的航班记录变得愈发重要。

当你需要了解某个机场的停靠航班、航班时间表或者延误情况时,下面将介绍一些常见的查询方式和工具。

一、官方网站查询大多数机场都有官方网站,上面提供了航班信息查询的功能。

你可以访问相关机场的官方网站,往往可以在首页或者导航栏中找到“航班信息”或类似的标签。

进入航班信息页面后,提供了航空公司、航班号、起降时间等多个查询选项,你可以根据自己的需求进行查询。

这种方式的数据准确性相对较高,但需要自己上网查询。

二、航空公司官方网站或APP查询除了机场官方网站外,航空公司的官方网站或者APP也是查询机场航班记录的有效工具。

在航空公司的官方网站或APP中,通常提供了航班查询、延误信息、机场航班动态等多个功能,可以满足你的查询需求。

通过航空公司官方渠道查询的数据也较为准确,但仅限于该航空公司的航班信息。

三、第三方航班查询网站或APP有许多第三方航班查询网站或APP,如Flightradar24、FlightAware 等。

这些平台整合了全球范围内的航班信息,提供了更全面的查询功能。

你可以通过输入机场名称或者航班号来查询相关信息。

这些平台通常提供了实时航班状态、航线图、延误预测等功能,能够帮助你更好地了解机场的航班情况。

但需要注意,第三方平台的数据可能会有一定的延迟,因此在查询时需要留意数据的准确性和实时性。

四、航班查询电话或服务台如果你不方便上网或者使用手机APP,你也可以拨打航空公司或机场的服务电话进行查询。

这些服务电话通常会有专门的航班查询热线,你只需拨通后按照语音提示操作即可获得所需的航班记录。

另外,一些机场也会在航站楼设立查询服务台,在那里你可以直接咨询工作人员并获得有关航班的详细信息。

五、机场显示屏或公告牌当你到达机场时,机场内通常会配备多个显示屏或公告牌,上面会展示航班的起降时间、航空公司、航班号等信息。

航班信息的查询与检索讲解

航班信息的查询与检索讲解

课程设计设计题目:航班信息的查询与检索院系信息学院班级学生姓名学号指导教师职称讲师、讲师起止日期:2015年12月21日起——至2013年12月31日止计算机组成原理课程设计成绩评定表计算机组成原理课程设计成绩评定表计算机组成原理课程设计成绩评定表计算机组成原理课程设计成绩评定表课程设计任务书课程设计题目:航班信息的查询与检索系别信息学院班级学生姓名学号指导教师职称课程设计进行地点:实训F座任务下达时间:年月日起止日期:年月日起——至年月日止教研室主任年月日批准一、航班信息的查询与检索根据题目所要求,程序必须实现航班信息的录入和查询。

程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。

在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查找,按起点、终点站、起飞时间、到达时间查找的则采用顺序查询方法二、航班信息的查询与检索问题分析现在乘飞机旅行的人越来越多,飞机也成为人们交通工具最便捷的一种,人们需要关心了解各类航班的班次、时间、价格及机型等信息。

利用计算机建立一个航班信息的查询和检索系统,对飞机航班信息进行排序和查找。

可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。

可采用基数排序法对一组具有结构特点的飞机航班号排序,利用二分查找法对排好序的航班记录按航班号实现快速查找。

每个航班记录包括航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价。

三、对课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等。

一般不应少于3000字。

2.在适当位置配合相应的实验原理图、数据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。

20141204060航班信息的查询与检索(排序应用)讲解

20141204060航班信息的查询与检索(排序应用)讲解

淮北师范大学综合设计报告航班信息的查询与检索(排序应用)课程数据结构学院计算机科学与技术专业网络工程年级 2014级学号 20141204060姓名覃小玲任课教师乙从才2015年12月2 3日一、设计目的与内容通过本次实验,掌握数据结构中的几种排序算法和查找算法,了解静态链表的运用,利用上述的算法完成航班信息的查询与检索。

二、设计分析对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因为它们用得比较少。

每个航班记录包括八项,分别是:航班号,起点站,终点站,班期,起飞时间,到达时间,飞机型号以及票价等。

其中航班号一项的格式为:K0 k1 k2 k3 k4 k5航班关键字可分为两段,即字母和数字。

其中k0和k1是航空公司的别称,用两个大写字母表示,后4位为航班编号。

(1)系统总流程图(2)定义数据类型根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数据类型:typedef struct {char start[7]; //起点char end[7]; //终点char sche[12]; //班期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]; //静态链表,s1[0]为头结点int keylen; //关键字长int length; //当前表长}SLList; //静态链表类型为了进行基数排序,需要定义在分配和收集操作时用到的指针数组:typedef int ArrType_n[10]; //十进制数字指针数组typedef int ArrType_c[26]; //26个字母指针数组(3)实现排序的各函数的说明1)一趟分配函数:void Distribute(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字key[i]建立RADIX个子表,使同一个子表中记录的keys[i]//相同,f[0..RADIX]和e[0..RADIX]分别指向各子表中的第一个和最后一个记录2)一趟搜集函数:void Collect(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字keys[i]从小到大将[0..RADIX]所指的各子表依次链接成一个链表3)链式基数排序函数:void RadixSort(SLList &L);//本算法是按关键字从低位到高位依次对各关键字进行分配和收集,分两段实现4)二分查找函数:int BinSearch(SLList L,KeyType key[]);//L为待查找的表,key[]为待查找的关键字,按二分查找的思想实现查找5)主控函数void main(){初始化;数据输入;排序处理;接受查找要求及查找关键字;查找处理;输出查找结果;}三、主要功能模块流程图(1)根据设计要求我们知道所用的记录中只有航班信息因此要定义相关的数据类型其源程序如下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];//静态链表sl[0]为头结点int keynum; //记录当前关键字字符个数int length; //当前表长}sllist; //静态链表类型typedef int arrtype_n[radix_n];//十进制数字指针typedef int arrtype_c[radix_c];//26个字母指针(2) 链式基数排序开始输入数据、基数、长度是(3)重新整理静态链表重新整理静态链表,P指示第一个记录的当前位置,L.s1[1..i-1]已按关键字有序排列,第一个记录在L中的当前位置应不小于i,使用while循环,找到第i个记录,并用p指示其在L 中的当前位置,而q指示尚未调整的表尾,若if(p!=i) 则p指向被移走的记录,使得以后可由while循环找回,当p=q时,p指向尚未调整的表尾,为找到第i+个记录做准备(4) 查找算法实现1:二分查找函数2: 顺序查找函数void SeqSearch(SLList L,KeyType key[],int i){ int j,k,m=0;for(j=1;j<L.length;j++){ switch(i) {case 2:k=strcmp(key,L.s1[j].others.start);break;case 3:k=strcmp(key,L.s1[j].others.end);break;case 4:k=strcmp(key,L.s1[j].others.time1);break;case 5:k=strcmp(key,L.s1[j].others.time2);break;}if(k==0){ m=1;Display(L,j);}}if(m==0)printf("无此航班信息,可能是输入错误!\n"); }四、系统测试航班信息输入如图:按航班号查询:输入航班号错误则显示如下图:按航班起点站查询:按起飞时间查询:显示查询主菜单,退出查询系统:五:总结通过本实验,我了解了基数排序是作为一种内部排序方法,当关键字位数较少而排序序列较长时,该排序算法有一定的优越性。

飞机航班信息查询

飞机航班信息查询

飞机航班信息查询近年来,随着人们生活水平的不断提高和交通工具的不断发展,飞机已经成为现代人出行的首选交通工具之一。

随着国内外航线的不断开通和航空公司的不断增多,越来越多的人开始选择飞机出行。

但是在选择飞机出行时,飞机航班信息查询是必不可少的环节。

本文将介绍飞机航班信息查询的方法和注意事项。

一、查询方法1.官方网站查询几乎所有的航空公司,都会在其官方网站上提供飞机航班信息查询服务,只要用户在网站首页选择查询航班信息,输入出发地、目的地、出发日期和舱位信息,就可以得到相应的航班信息。

在查询到航班信息后,用户还可以选择购买机票或在线值机等服务。

2.航空公司客服查询用户也可以直接拨打航空公司的客服电话查询航班信息。

航空公司的客服人员会根据用户提供的出发地、目的地和出发日期等信息查询相应的航班信息,并且在必要时可以为用户提供相关的帮助和服务。

3.第三方机票预订网站查询除了官方网站和航空公司客服,用户还可以通过第三方机票预订网站查询航班信息。

这种网站一般会汇集多家航空公司的航班信息,用户只需要输入出发地、目的地和出发日期等基本信息,就可以查询到符合条件的航班。

但需要注意的是,第三方机票预订网站的航班信息可能不是实时更新的,因此用户需要确认所查询的航班信息的准确性。

二、注意事项1.提前预定由于航班信息可能发生变化,用户在查询航班信息之后,建议尽早预定机票。

特别是在节假日或旅游旺季,由于客流量大,机票价格将会增加,预订的难度也会增加,因此提前预定也是为了避免这个问题。

2.核对航班信息在查询到航班信息之后,用户需要仔细核对航班号、出发时间、到达时间和机场等信息,在购买机票前务必仔细核对,并且在登机时再次检查,避免因为信息错误而产生不必要的麻烦或费用。

3.注意航空公司规定在购买机票时,用户需要仔细了解航空公司的规定,例如行李规定、签证要求和退改签政策等,以免在旅途中遇到不必要的麻烦或费用。

小结:飞机航班信息查询是现代人出行不可或缺的环节。

航班信息的查询与检索

航班信息的查询与检索

航班信息的查询与检索航班信息的查询与检索目录 (4)1 概述 (4)1.1 课程设计名称 (4)1.2 课程设计目的 (4)1.3 课程设计内容 (4)2 系统分析 (4)2.1 设计要求 (4)2.2 设计分析 (5)3 概要设计 (5)3.1 系统总流程图 (5)3.2 定义数据类型 (6)3.3 实现排序的各函数的说明....................... 错误!未定义书签。

4 详细设计............................................................. 错误!未定义书签。

4.1 数据类型的定义 ..................................... 错误!未定义书签。

4.2 链式基数排序 (10)4.2.1 一趟数字字符分配函数 ............. 错误!未定义书签。

4.2.2 一趟数字字符的收集函数.......... 错误!未定义书签。

4.2.3 一趟字母字符分配函数 ............. 错误!未定义书签。

4.2.4 一趟字母字符收集 .................... 错误!未定义书签。

4.2.6 链式基数排序函数 .................... 错误!未定义书签。

4.3 重新整理静态链表 (11)4.4 查找算法实现 (12)4.4.1 二分查找函数 (12)4.4.2 顺序查找函数 (13)4.5 输入输出函数 (14)5 运行与测试 (17)6 总结与心得 (20)7 参考文献 (21)8 附录(程序源代码) (21)目录1 概述1.1 课程设计名称航班信息的查询与检索1.2 课程设计目的通过本次实验,掌握数据结构中的几种排序算法和查找算法,了解静态链表的运用,利用上述的算法完成航班信息的查询与检索。

2 系统分析2.1 课程设计内容本课程设计主要是对排序及查找等进行练习,以链式基数排序为主线,利用二分查找和顺序查找等知识,并建立静态链表,完成对航班信息的查询与检索。

20141204060 航班信息的查询与检索(排序应用)资料

20141204060 航班信息的查询与检索(排序应用)资料

淮北师范大学综合设计报告航班信息的查询与检索(排序应用)课程数据结构学院计算机科学与技术专业网络工程年级 2014级学号 20141204060姓名覃小玲任课教师乙从才2015年12月2 3日一、设计目的与内容通过本次实验,掌握数据结构中的几种排序算法和查找算法,了解静态链表的运用,利用上述的算法完成航班信息的查询与检索。

二、设计分析对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因为它们用得比较少。

每个航班记录包括八项,分别是:航班号,起点站,终点站,班期,起飞时间,到达时间,飞机型号以及票价等。

其中航班号一项的格式为:K0 k1 k2 k3 k4 k5航班关键字可分为两段,即字母和数字。

其中k0和k1是航空公司的别称,用两个大写字母表示,后4位为航班编号。

(1)系统总流程图(2)定义数据类型根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数据类型:typedef struct {char start[7]; //起点char end[7]; //终点char sche[12]; //班期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]; //静态链表,s1[0]为头结点int keylen; //关键字长int length; //当前表长}SLList; //静态链表类型为了进行基数排序,需要定义在分配和收集操作时用到的指针数组:typedef int ArrType_n[10]; //十进制数字指针数组typedef int ArrType_c[26]; //26个字母指针数组(3)实现排序的各函数的说明1)一趟分配函数:void Distribute(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字key[i]建立RADIX个子表,使同一个子表中记录的keys[i]//相同,f[0..RADIX]和e[0..RADIX]分别指向各子表中的第一个和最后一个记录2)一趟搜集函数:void Collect(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字keys[i]从小到大将[0..RADIX]所指的各子表依次链接成一个链表3)链式基数排序函数:void RadixSort(SLList &L);//本算法是按关键字从低位到高位依次对各关键字进行分配和收集,分两段实现4)二分查找函数:int BinSearch(SLList L,KeyType key[]);//L为待查找的表,key[]为待查找的关键字,按二分查找的思想实现查找5)主控函数void main(){初始化;数据输入;排序处理;接受查找要求及查找关键字;查找处理; 输出查找结果; }三、主要功能模块流程图(1)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];//静态链表 sl[0]为头结点int keynum; //记录当前关键字字符个数 int length; //当前表长}sllist; //静态链表类型typedef int arrtype_n[radix_n];//十进制数字指针 typedef int arrtype_c[radix_c];//26个字母指针(2) 链式基数排序是(3)重新整理静态链表重新整理静态链表,P指示第一个记录的当前位置,L.s1[1..i-1]已按关键字有序排列,第一个记录在L中的当前位置应不小于i,使用while循环,找到第i个记录,并用p指示其在L 中的当前位置,而q指示尚未调整的表尾,若if(p!=i) 则p指向被移走的记录,使得以后可由while循环找回,当p=q时,p指向尚未调整的表尾,为找到第i+个记录做准备(4) 查找算法实现1:二分查找函数2: 顺序查找函数void SeqSearch(SLList L,KeyType key[],int i){ int j,k,m=0;for(j=1;j<L.length;j++){ switch(i) {case 2:k=strcmp(key,L.s1[j].others.start);break;case 3:k=strcmp(key,L.s1[j].others.end);break;case 4:k=strcmp(key,L.s1[j].others.time1);break;case 5:k=strcmp(key,L.s1[j].others.time2);break;}if(k==0){ m=1;Display(L,j);}}if(m==0)printf("无此航班信息,可能是输入错误!\n"); }四、系统测试航班信息输入如图:按航班号查询:输入航班号错误则显示如下图:按航班起点站查询:按起飞时间查询:显示查询主菜单,退出查询系统:五:总结通过本实验,我了解了基数排序是作为一种内部排序方法,当关键字位数较少而排序序列较长时,该排序算法有一定的优越性。

查航班信息查询

查航班信息查询

查航班信息查询随着人们出行的增多,航班信息查询已经成为了大家生活不可或缺的一部分。

航班信息查询有着丰富的渠道和多样的方式,接下来就让我们一起来了解一下吧。

一、航班信息查询平台目前市场上有很多航班信息查询平台,如携程、去哪儿等。

这些平台可以提供航班的出发时间、到达时间、起飞地点、目的地点、航班号、仓位等信息。

通过这些平台查询航班信息的好处是可以在网上完成快捷方便的购票。

在具体操作时,我们只需要打开平台页面,输入出发地、目的地、航班时间等信息,系统会自动筛选出符合条件的航班,供我们进行选择。

在购票时,平台也会提供一些优惠和折扣,这对于我们来说也是非常有利的。

二、航空公司官网查询如果我们已经确定了航空公司,那么我们可以通过其官网查询航班信息。

这种方式可以获得更加准确、详细的航班信息。

航空公司官网的查询操作与平台查询类似,我们只需要输入出发地、目的地、时间等信息即可获得航班信息。

值得注意的是,在查询过程中,我们需要注意官网上提供的时刻表,这些信息为我们预订航班提供了很好的参考。

三、机场航班查询系统通过机场航班查询系统,我们可以了解到各个机场的航班情况。

为了方便大家,国内很多机场都提供了航班查询系统,其中包括了出发、到达、中转的航班,以及每个航班的航班号、起飞时间、到达时间等信息。

航空公司也会将最新的信息通过机场航班查询系统分享给用户,因此,用户可以及时了解到航班的最新信息,以便调整行程。

四、航班信息查询APP除了网站之外,航班信息查询APP也是一种非常方便的查询方式。

用户可以在手机上下载航班信息查询APP,通过输入出发地、目的地、起飞时间等信息,来获得最新的航班信息。

其中一些APP还可以提供实时更新,免费提供行李托运查询、机票查找、座位选择等服务。

总结:航班信息查询是我们出行前的一项必要准备工作,通过以上方式,我们可以获得快速、准确、实用的航班信息。

在选择查询方式时,我们需要考虑一些因素,如信息来源的准确性、可靠性,航班信息的及时性以及自身出行的需要等。

查询航班信息

查询航班信息

查询航班信息引言:在现代社会,随着人们对航空出行需求的增加,航空公司不断扩大航线网络,提供更多的航班选择。

然而,对于乘客来说,准确了解航班信息变得尤为重要。

本文将介绍如何查询航班信息,包括航班查询的工具、常用的查询方式以及如何解读航班信息。

一、航班查询工具1. 网上航班查询网站:如今,许多航空公司、航空机票代理商以及第三方旅行网站都提供在线航班查询服务。

常见的航班查询网站有:航班管家、去哪儿网、携程网等。

通过这些网站,乘客可以输入出发地、目的地以及出行日期,即可获得相关的航班信息。

2. 航空公司官方网站或应用程序:每个航空公司都有自己的官方网站和移动应用程序,乘客可以通过它们查询航班信息。

这些官方渠道通常提供最准确和及时的航班信息,包括实时航班状态、起降时间变更等。

乘客可以选择直接访问航空公司的官方网站或是下载相应的移动应用程序。

3. 航班查询热线:除了在网上查询航班信息,乘客还可通过航空公司提供的航班查询热线获取信息。

当乘客遇到无法在线查询或需要人工帮助时,拨打航班查询热线可以让客服人员为您提供所需的信息。

二、常用查询方式1. 查询航班动态:查询航班动态是最常用的航班查询方式之一。

通过输入航班号或选择出发地、目的地以及日期,乘客可以了解特定航班的起降时间、当前状态等信息。

这种方式适合那些已经订购了机票并知道航班号的乘客。

2. 查询航班时刻表:查询航班时刻表是另一种常用的查询方式。

乘客可以在航空公司的官方网站上或航班查询网站上浏览特定航线的航班时刻表。

航班时刻表通常提供每日航班的起降时间、飞行时间以及航班号等信息。

乘客可以根据自己的出行计划,选择最适合的航班。

3. 查询航班经停信息:有时候,乘客需要了解航班的经停信息,以便安排行程或选择转机的航班。

通过查询航班经停信息,乘客可以了解某个航班在中途是否有停靠机场,这对于行程规划尤为重要。

乘客可以通过航空公司官方网站、航班查询网站或移动应用程序进行查询。

航班信息查询与检索系统概要说明书

航班信息查询与检索系统概要说明书

航班信息查询与检索系统概要说明书1. 引言航班信息查询与检索系统是一款为旅客提供实时航班信息的软件应用。

本说明书将对系统的概要设计、功能模块以及使用方法进行详细介绍。

2. 系统概述航班信息查询与检索系统旨在帮助旅客快速、准确地查找航班信息,并提供便捷的预订和购票功能。

系统采用先进的数据库技术和数据同步机制,以确保信息的实时性和准确性。

3. 功能模块3.1 航班查询用户可以通过输入航班号码、出发地、目的地以及日期等信息进行航班查询。

系统将根据用户提供的条件进行快速检索,并显示相关的航班信息,包括航班号码、起降时间、航班状态等。

3.2 航班推荐系统根据用户的历史查询记录以及喜好进行智能分析,提供符合用户习惯的航班推荐。

这一功能可以帮助用户节省时间,避免不必要的重复操作。

3.3 票价查询用户可以查询特定航班的票价信息,包括经济舱、商务舱等不同舱位的价格。

系统将实时获取该航班的票价数据,并呈现给用户。

3.4 预订功能用户可以选择心仪的航班,并进行预订。

系统支持多种支付方式,包括信用卡、支付宝等,以提供便捷的购票体验。

4. 技术实现4.1 前端设计系统的前端采用用户友好的界面设计,通过直观的页面布局、清晰的标签分类以及简洁的操作流程,使用户能够快速上手并轻松完成各种操作。

4.2 后台开发系统的后台采用高效的服务器架构和数据库设计。

服务器端采用高性能的框架,保证数据交互的速度和稳定性。

数据库采用面向对象的设计,保证数据的完整性和一致性。

4.3 数据同步机制为了保证航班信息的实时性,系统采用数据同步机制。

系统会定期与航空公司的数据库进行同步,以获取最新的航班信息,并及时更新到系统的数据库中。

5. 使用方法使用者只需下载并安装航班信息查询与检索系统的应用程序,然后打开应用程序即可。

用户可以通过简单的注册和登录过程完成个人信息的录入。

一旦用户登录成功,系统将展示主页面,用户可以自由选择查询航班,查看航班详情并进行预订、购票等操作。

航班信息的查询与及检索

航班信息的查询与及检索

实验报告课程名称数据结构综合设计实验实验项目航班信息的查询与检索1.1 课程设计名称航班信息的查询与检索1.2 课程设计目的通过本次实验,掌握数据结构中的几种排序算法和查找算法,了解静态链表的运用,利用上述的算法完成航班信息的查询与检索。

2 系统分析2.1 课程设计内容本课程设计主要是对排序及查找等进行练习,以链式基数排序为主线,利用二分查找和顺序查找等知识,并建立静态链表,完成对航班信息的查询与检索。

我们可以利用航班的这些信息,通过其中的任意一个信息,找出我们所需要的查找的航班的所有信息,所以,我们可以采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排序好的航班记录按航班号实现快速查找,并按其他关键字的查找可以采用最简单的顺序查找方法进行。

2.2 设计要求1) 提供对航班信息的排序功能2 提供对航班信息的输入输出记录功能找出我们所需要的查找的航班的所有信息3)提供按关键字(航班号)快速查询或顺序查询功能2.3 设计分析对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因为它们用得比较少。

每个航班记录包括八项,分别是:航班号,起点站,终点站,班期,起飞时间,到达时间,飞机型号以及票价等。

其中航班号一项的格式为:K0 k1 k2 k3 k4 k5航班关键字可分为两段,即字母和数字。

其中k0和k1是航空公司的别称,用两个大写字母表示,后4位为航班编号.3 概要设计3.1 系统总流程图3.2 定义数据类型根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数据类型: typedef struct {char start[7]; //起点 char end[7]; //终点 char sche[12]; //班期 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]; //静态链表,s1[0]为头结点int keylen; //关键字长int length; //当前表长}SLList; //静态链表类型为了进行基数排序,需要定义在分配和收集操作时用到的指针数组:typedef int ArrType_n[10]; //十进制数字指针数组typedef int ArrType_c[26]; //26个字母指针数组3.3 实现排序的各函数的说明1)一趟分配函数:void Distribute(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字key[i]建立RADIX个子表,使同一个子表中记录的keys[i]//相同,f[0..RADIX]和e[0..RADIX]分别指向各子表中的第一个和最后一个记录2)一趟搜集函数:void Collect(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字keys[i]从小到大将[0..RADIX]所指的各子表依次链接成一个链表3)链式基数排序函数:void RadixSort(SLList &L);//本算法是按关键字从低位到高位依次对各关键字进行分配和收集,分两段实现4)二分查找函数:int BinSearch(SLList L,KeyType key[]);//L为待查找的表,key[]为待查找的关键字,按二分查找的思想实现查找5)主控函数void main(){初始化;数据输入;排序处理;接受查找要求及查找关键字;查找处理;输出查找结果;}4 详细设4.1 数据类型的定义根据设计要求我们知道所用的记录中只有航班信息因此要定义相关的数据类型其源程序如下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];//静态链表sl[0]为头结点int keynum; //记录当前关键字字符个数int length; //当前表长}sllist; //静态链表类型typedef int arrtype_n[radix_n];//十进制数字指针typedef int arrtype_c[radix_c];//26个字母指针4.2 链式基数排序开始.否.是4.3 重新整理静态链表重新整理静态链表,P 指示第一个记录的当前位置,L.s1[1..i-1]已按关键字有序排列 ,第一个记录在L 中的当前位置应不小于i ,使用while 循环,找到第i 个记录,并用p 指示其在L 中的当前位置,而q 指示尚未调整的表尾,若if(p!=i) 则p 指向被移走的记录,使得以后可由while 循环找回 ,当p=q 时,p 指向尚未调整的表尾,为找到第i+个记录做准备4.4 查找算法实现4.4.1 二分查找函数否是是4.4.2 顺序查找函数void SeqSearch(SLList L,KeyType key[],int i) { int j,k,m=0;for(j=1;j<L.length;j++){ switch(i) {case 2:k=strcmp(key,L.s1[j].others.start);break;case 3:k=strcmp(key,L.s1[j].others.end);break;case 4:k=strcmp(key,L.s1[j].others.time1);break;case 5:k=strcmp(key,L.s1[j].others.time2);break;}if(k==0){ m=1;Display(L,j);}}if(m==0)printf("无此航班信息,可能是输入错误!\n");}4.5 输入输出函数serachcon(SLList L){int i=1,k,k1;while(i>=1 && i<=5) {printf("*****************************\n");printf("* 航班信息查询系统*\n");printf("* 1 航班号*\n");printf("* 2 起点站*\n");printf("* 3 终点站*\n");printf("* 4 起飞时间*\n"); printf("* 5 到达时间*\n"); printf("* 0 退出系统*\n"); printf("*********************************\n");printf(" 请选择0-5:\n ");scanf("%d",&i);switch(i) {case 1: printf("输入要查的航班号(字母要大写):");scanf("%s",key);k=BinSearch(L,key);Display(L,k);break;case 2: printf("输入要查询的航班起点站名:");scanf("%s",key);SeqSearch(L,key,i);break;case 3: printf("输入要查询的航班终点站点:");scanf("%s",key); SeqSearch(L,key,i);break;case 4: printf("输入要查询的航班起飞时间:");scanf("%s",k1); SeqSearch(L,k1,i);break;case 5: printf("输入要查询的航班到达时间:");scanf("%s",k1); SeqSearch(L,k1,i);break;case 0: printf("再见!\n");return 0;}}}void InputData(SLList &L){ int i=++L.length;char yn='y';while(yn=='y' || yn=='Y'){ printf("航班号起点站终点站航班期起飞时间到达时间机型票价\n");scanf("%s%s%s%s%s%s%s%d",L.s1[i].keys,L.s1[i].others.start, L.s1[i].others.end,L.s1[i].others.sche,L.s1[i].others.time1,L.s1[i].others.time2,L.s1[i].others.model,&L.s1[i].others.price); ++i;printf("继续输入吗?y/n: \n");scanf("%c",&yn);}L.length=i-1;}5 运行与测试航班信息输入如图:按航班号查询:输入航班号错误则显示如下图:按航班起点站查询:按起飞时间查询:显示查询主菜单,退出查询系统:6 总结与心得通过本实验,我了解了基数排序是作为一种内部排序方法,当关键字位数较少而排序序列较长时,该排序算法有一定的优越性。

数据结构课程设计航班信息查询与检索

数据结构课程设计航班信息查询与检索

学院名称《数据结构》课程设计报告题目——航班信息查询与检索班级:姓名:时间:2012/12/29---2013/1/5二○一二年十二月二十九日课程设计任务书与成绩评定课题名称航班信息查询与检索Ⅰ、题目的目的和要求:1、设计目的巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。

(1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。

(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。

2、设计题目要求:问题描述:该设计要求对飞机航班信息进行排序和查找。

可按航班的航班号、起点站、到达站、起飞时间以与到达时间等信息进行查询。

任务要求:对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因此他们用得较少。

每个航班记录包括八项,分别是:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以与票价等,假设航班信息表(8条记录)位为航班号,这种航班号关键字可分成两段,即字母和数字。

其余七项输入内容因为不涉与本设计的核心,因此除了票价为数值型外,均定义为字符串即可。

Ⅱ、设计进度与完成情况Ⅲ、主要参考文献与资料[1] 严蔚敏数据结构(C语言版)清华大学出版社1999[2] 严蔚敏数据结构题集(C语言版)清华大学出版社1999[3] 谭浩强C语言程序设计清华大学出版社[4] 与所用编程环境相配套的C语言或C++相关的资料Ⅳ、成绩评定:设计成绩:(教师填写)指导老师:(签字)二○一三年一月五日目录一、概述 (6)二、系统分析 (6)三、概要设计 (6)四、详细设计 (7)1.定义数据类型 (7)2.算法实现 (8)五、测试数据 (10)六、收获与体会 (13)七、参考文献 (13)八、附录 (14)5 / 24一、概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉与和课程相关的各个方面,是一门独立于课程之外的特殊课程。

国际航班时刻表查询

国际航班时刻表查询

国际航班时刻表查询引言:在全球化和旅游业的快速发展下,越来越多的人选择国际航班作为旅行方式。

然而,尽管现代交通网络变得越来越复杂,我们依然能够方便地获取各个航空公司的国际航班时刻表。

本文将介绍如何进行国际航班时刻表查询,方便旅客规划行程和提前做好准备。

一、航空公司官方网站查询大多数航空公司都在其官方网站上提供航班时刻表查询服务。

通过登录航空公司的官方网站,您可以方便地查看目的地的国际航班时刻表。

通常,网站上提供了简单的查询工具,您只需选择出发地和目的地,然后选择出发时间范围,即可获得相关的航班信息。

二、第三方机票预订网站除了航空公司官方网站,还有许多第三方机票预订网站也提供国际航班时刻表查询服务。

这些网站经常整合多个航空公司的航班信息,使用户能够方便地对比不同航空公司的价格和时间。

常见的第三方机票预订网站包括Expedia、Booking和Kayak等。

在这些网站上,您只需输入出发地、目的地和出发日期,即可获得相关的航班时刻表。

三、旅行社或航空代理公司如果您对使用互联网进行查询不太熟悉,或者希望获得更专业的建议和帮助,您可以咨询旅行社或航空代理公司。

这些机构通常有专业的客服人员,能够帮助您查询国际航班时刻表,并根据您的需求提供最合适的选择。

他们可能会收取一定的服务费用,但能够提供更全面和个性化的服务。

四、航空公司App和在线预订平台现在几乎所有的航空公司都推出了自己的移动应用程序(App),以及在线预订平台。

通过下载航空公司的App,您可以方便地在手机上进行国际航班时刻表查询。

这些App通常提供了用户友好的界面和搜索工具,使您能够快速找到适合您需求的航班。

另外,一些在线预订平台如Skyscanner和Momondo也提供类似的功能,您可以通过这些平台进行国际航班时刻表查询和预订。

总结:在如今的互联网时代,查询国际航班时刻表已经变得非常方便。

您可以通过航空公司官方网站、第三方机票预订网站、旅行社或航空代理公司以及航空公司App和在线预订平台,根据自己的需求和喜好,选择最合适的方式进行查询。

查询历史航班票价的方法

查询历史航班票价的方法

查询历史航班票价的方法
查询历史航班票价的方法主要有以下几种:
1. 航空公司官网:大部分航空公司都提供了机票历史查询功能。

只需要在航空公司官网上登录您的账户,进入“订单查询”或“历史订单”等页面,即可查看之前的机票订单记录。

2. 机票预订平台:如果您是通过机票预订平台购买的机票,比如携程、去哪儿等,也可以在相应的平台上查询机票历史记录。

只需要在平台上登录您的账户,找到“订单查询”或“历史订单”等页面,就可以查询到之前的机票订单记录。

3. 邮件查询:如果您曾经通过邮件接收过机票订单信息,那么您也可以通过邮箱来查询机票历史记录。

只需要在邮箱中搜索相关的邮件,就可以找到之前的机票订单信息。

请注意,不同的航空公司或机票预订平台提供的机票历史查询功能时间范围不同,有的只能查询最近一年的订单记录,有的可以查询更早的订单记录。

因此,在查询机票历史记录之前,需要先了解查询时间范围。

同时,查询时可能需要输入相应的订单号,如果忘记订单号,可以通过找回密码的方式来找回。

另外,在核对报销单据时,需要仔细核对费用是否正确。

以上方法仅供参考,如需了解更多信息,可咨询航空公司或专业人士。

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

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

航班信息查询与检索一、问题描述实现对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间和到达时间等信息进行查询。

航班信息表的样式如下:航班号起点站终点站班期起飞时间到达时间机型票价510:55 12: 40 733 960CA1544 合肥北京1、 2、4、MU5341 上海广州每日14:20 16:15 M90 1280CZ3869 重庆深圳2、4、6 08:55 10:35 733 1010其中航班号一项的格式为:前两个大写字母表示航空公司的名称,后4位为航班编号。

基本要求:(1)对飞机航班信息进行排序;(2)采用折半查找思想完成查找。

可按照航班号、起点站、到达站、起飞时间和到达时间等信息进行查询。

测试数据要求:测试的数据不得少于10个,不得有重复的航班。

二、设计思想根据题目所要求,程序必须实现航班信息的录入和查询。

程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。

在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。

三、数据描述typedef struct node{char number[MAXN]; //航班号time start; //起飞时间time end; //到达时间char start_station[MAXN]; //起点站char end_station[MAXN]; //终点站char type[MAXN]; //飞机型号char price[MAXN]; //票价struct node*link;}NODE;四、算法描述1、二分查找int binSearch(NODE* n,char *strinput,int low, int high){//二分查找 int i;int middle = (high+low)/2;if (high < low)return 0;if ((i=strcmp(strinput, n->number)) <0)high= middle;else if (i > 0)low = middle;else{i = middle;return i;}binSearch(getindex(n,middle),strinput,low,high);}int bisect(char a[],int n,char s[MAXN]){//二分查找int i,j,m;i=0;j=n-1;while(i <=j){m=(i+j)/2;}return(-1);}2、计算链表长度unsigned int countit(NODE* n){unsigned int counti = 0;while(n!=NULL)counti++,n=n->link;return counti;}五、源代码#include <stdio.h>#include <malloc.h>#include <string.h>#define MAXN 100typedef struct{char hour[MAXN];char minute[MAXN];} time;typedef struct node{char number[MAXN]; //航班号time start; //起飞时间time end; //到达时间char start_station[MAXN]; //起点站char end_station[MAXN]; //终点站char type[MAXN]; //飞机型号 char price[MAXN]; //票价 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 <MAXN;i++){ head->number[i]='\0';head->start.hour[i]='\0';head->start.minute[i]='\0';head->end.hour[i]='\0';head->end.minute[i]='\0';head->start_station[i]='\0';head->end_station[i]='\0';head->type[i]='\0'; head->price[i]='\0';}p=head;for(i=1;i <n;i++){printf("请输入航班号:"); scanf("%s",&(p->number));printf ("请输入起飞时间(时分):");scanf("%s %s",&(p->start.hour),&(p->start.minute));printf ("请输入达到时间(时分):");scanf("%s %s",&(p->end.hour),&(p->end.minute));printf("请输入起点站终点站:");scanf("%s %s",&(p->start_station),&(p->end_station));printf("请输入飞机型号:");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));printf ("请输入起飞时间(时分):");scanf("%s %s",&(p->start.hour),&(p->start.minute));printf ("请输入达到时间(时分):");scanf("%s %s",&(p->end.hour),&(p->end.minute));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;else{p=*p_head;while(p!=NULL&&p->link!=NULL)p=p->link;p->link=q;} }unsigned int countit(NODE* 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(num<0 || num>countit(head))return NULL;NODE* rn = head;while(--num>0)rn = rn->link;return rn;}int binSearch(NODE* n,char *strinput,int low, int high){//二分查找int i;int middle = (high+low)/2;if (high < low) return 0;if ((i=strcmp(strinput, n->number)) <0) high= middle;else if (i > 0) low = middle;else{i = middle;return i;}binSearch(getindex(n,middle),strinput,low,high);}int bisect(char a[],int n,char s[MAXN]){//二分查找int i,j,m;i=0;j=n-1;while(i <=j){m=(i+j)/2;}return(-1);}NODE *search1(NODE *head,char vlMAXNDJ/起点站顺序查找for(;head!=NULL&&strcmp(head->start_station,&v[0]);head=head->link);return(head);}NODE *search2(NODE *head,char wlMAXNDJ/到达站顺序查找for(;head!=NULL&&strcmp(head->end_station,&w[0]);head=head->link);return(head);}NODE *search3(NODE *head,char x[MAXN],char ylMAXNDJ/起飞时间顺序查找for(;head!=NULL&&(strcmp(head->start.hour,&x[0]) || strcmp(head->start.minute,&y[0]));head=head->link); return(head);}NODE *search4(NODE *head,char t[MAXN],char u[MAXN]){//到达时间顺序查找for(;head!=NULL&&(strcmp(head->end.hour,&t[0]) || strcmp(head->end.minute,&u[0]));head=head->link); return(head);}void output(NODE *p){while(p!=NULL){printf("航班信息:\n");printf("航班号:%s\n”,p->number);printf ("起飞时间:%s 点%$ 分,“,p->start.hour,p->start.minute);printf ("至U达时间:%s 点%s 分\n”,p->end.hour,p->end.minute);printf(“起点站:%s,",p->start_station);printf(“至U达站:%s\n”,p-〉end_station);printf("飞机型号:%s ",p-〉type);printf ("票价:%s 元\9\/邛一而「江6);p=p-〉link;}}NODE *rank( NODE *head){NODE *q=0,*p=0,*t,*h1;h1=head-〉link;head-〉link=NULL;while(h1!=NULL){t=h1;h1=h1-〉link;p=head;q=head;while( p!=NULL && strcmp(t-〉number, p-〉number)〉0 ){ q=p;p=p-〉link;}if(q == p){t-〉link=p;head=t;}else{t-〉link=p;q-〉link=t;}}return head;}int main(int argc, char* argv[]){NODE *p,*q,*r;int a,b,i,j,n;int count=0;char o[MAXN];char s[MAXN];char v[MAXN];char w[MAXN];char x[MAXN];char y[MAXN];char t[MAXN];char u[MAXN];for(i=0;i <MAXN;i++){o[i]='\0';s[i]='\0';v[i]='\0';w[i]='\0';x[i]='\0';y[i]='\0';t[i]='\0';u[i]='\0';}while(true){printf("【航班信息的查询与检索】\n");printf("*******************************\n");printf(" 1.建立航班信息\n");printf(" 2.插入航班信息\n");printf(" 3.按航班号进行排序 \n");printf(" 4.航班信息查询\n");printf(" 5.显示航班信息\n");printf(" 0.退出本系统\n");printf("*******************************\n");printf("请输入你的选择:”);scanf("%d",&a);getchar();switch(a){case 1:printf("请输入你所要建立的航班信息个数:");scanf("%d",&n);p=create_link_list(n);break;case 2:q=create_link_list(1);insert(&p,q);break;case 3:p = rank(p);break;case 4:printf("\n1、按照航班号查询.\n");printf("2、按照起点站查询.\n");printf("3、按照到达站查询.\n");printf("4、按照起飞时间查询.\n");printf("5、按照到达时间查询.\n");scanf("%d",&b);getchar();switch(b){case 1:p=rank(p);printf("请输入您所要找的航班号:");scanf("%s",s);if( binSearch(p,s,1, countit(p)) )printf("scuess!\n");break;case 2:printf("请输入起点站”);scanf("%s",&v[MAXN]);if(search1(p,&v[MAXN])!=NULL){printf("查询成功!\n");r=search1(p,&v[MAXN]); output(r);}elseprintf("查询失败,该信息录中没有该起点站!\n");break;case 3:printf("请输入到达站");scanf("%s",&w[MAXN]);if(search2(p,&w[MAXN])!=NULL){printf("查询成功!\n");r=search2(p,&w[MAXN]); output(r);}elseprintf("查询失败,该信息录中没有该到达站!\n");break;case 4:printf("请输入起飞时间(时分)");scanf("%s %s",&x[MAXN],&y[MAXN]);if(search3(p,&x[MAXN],&y[MAXN])!=NULL){printf("查询成功!\n");r=search3(p,&x[MAXN],&y[MAXN]);output(r);}elseprintf("查询失败,该信息录中没有该到达站!\n");break;case 5:printf("请输入到达时间");scanf("%s %s",&t[MAXN],&u[MAXN]);if(search4(p,&t[MAXN],&u[MAXN])!=NULL){printf("查询成功!\n");r=search4(p,&t[MAXN],&u[MAXN]);output(r);}elseprintf("查询失败,该信息录中没有该到达站!\n");break;}break;case 5:output(p);printf("\n");break;case 0:return(0);}}return(0);} 六、测试数据及运行结果C:\IJ sers\j KDe s kto p\保程设计\H/i 斑信.辨直®与检e ■,已 08 55 10 35 泽加 工航理后息的查询匕检索】 I 爵翳鼠良 ■菖器排序 5.五不缸班信息 身妙坦本平■I. C:\U sers\j KDe s kto p\i^程设计辨查与检^弱e ■,已 □ 14 2D 16 15 广州 仅飞 明号:MU5341 弱嬲数 ,占闲会总站;上海 机型号:出团 桁,: 1N8M‘信息 龙壬名息由查词上检索】 系垸 遂抵 用 --- 出 鬼白山-4-句白』 查修研班班号■.-R -S 己 环 尔为选择:2 同班号:CZ39G9 .飞时间(时分): 独中如叽分幺A 肃站终点由重庆 机型号:733介:请输入你的选择:4■■■询询 而问诃寻吞一 查查杳 旦迪砧* 班点航飞达 M ^4tl .起到|BJ= H 点拈分 10107E 时圳: K 探伤 到;票 占『 :uz .-重: 起中总:IBJ .,弓 .A 成信号 曹班班匕点机 生害航,塞起飞C:\U sers\j KDe s kto p\i^^设计Mt/t 班信息的查询与检索系统.exe |BJ= H 点拈分 ieiBTL f l 班班弓息班一乐 V 入航班也 建S 项肮显退12 3 -h G 请输入你的选择:4 ■■■询询 询问诃寻S- 查查杳 旦迪V 笄 班点防飞达^^4宅起到-JII 深 站时圳.. 出淡俗到;票这,:uz :fi : 到功息:IBJ .,弓 A.成信号 曹班班匕点机 喜航瞿担飞・ A 白匕热古J 清输入你的选择4-:-§!询询询,问合查 查查查,假 口54站W 时 班点达匕达 到起到 项14海M9 :L I ;起功息:间:号 人成信号^ 4都询班班「7占(机 上K 2i I T 、-R 日 飞C可用州; U 厂价 到:票1 23 -h G C:\U se 「s'M l\D eskto p\诔程设计倾班信息的查询与检索系统.exe f l 班班弓息班一乐 V 入航班也建S 项肮显退请输入你的选择:4 ■ ■■询询 询问诃寻S- 查查杳 旦迪V 笄 班点防飞达^^4宅起到 噎虢入到达时|晅240励联息: 航班号:皿好例一飞机型号:733 :1@点55分.至1|达时间:12点物分 合肥㈤达站京 _ 价:一元□■C:\IJ sers\jl\De s kto p\保程设计\l航班信息的查询与检索系统.e■,已。

航班信息的查询与检索的程序设计模版

航班信息的查询与检索的程序设计模版
* 0.退 出 *
**********************************
* 请输入(0—4):4
航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 票价
4
CS166
上海
福建
1.2.3.4.5.6
0825
1422
HT5436
4562
5
DR5465
浙江
郑州
1.2.3.4.5.6.7
0914
1955
H124
368
6
GT1645
浙江
上海
1.2.5.6.7
2155
1422
G163
695
7
GT256
浙江
福建
1.2.5.6.7
1234
1955
G335
658
8
GT1334
* 3.查 询 信 息 *
* 4.显 示 全 部 记 录 *
* 0.退 出 *
**********************************
* 请输入(0—4):1
航班号 起点站 终点站 航班期 起飞时间 到达时间 机型 票价
ew4556 北京 上海 1.6.7 1423 2136 WE125 982
2.3系统模块划分
2.3.1具体表格图示:
航班信息查询
编号
字段1
字段2
字段3
字段4
字段5
字段6
字段7
字段8
1
航班号
起点站
终点站
班期
起飞时间
到达时间
机型
票价
2
CA1544
郑州
上海
1.2.3.5.6.7

对飞机航班信息进行排序和查找

对飞机航班信息进行排序和查找

‎验报告姓名:学号:专业:信息技术班级:任课老师:辅导教师:试验编号:试验五小组成员:一、实验项目:班信息 ‎询二、实验目的:班‎信息 ‎序和 找。

三、实验内容:班‎信息 ‎序和 找。

班的‎班号、 、 、‎‎信息 ‎询。

四、需求分析1、 ‎班 序‎;2、 的‎ 信息 ‎ 找;五、概要设计1、 要实现的功能,应该 链表来表示集合,所 需要构造的数 类型为链表和集合。

2、结构体ha‎n gban‎a n{char k[6]; // 班号strin‎g qd; //strin‎g zd; //终strin‎g bq; //班期int btime‎;//int etime‎;//strin‎g jx; // 型int price‎;//票价};//结构体ha‎n gban‎3、 数功‎能简介void initb‎() //创建表b() //输出void c a o() // 找信息() // 班号 ‎找void d() //‎找void d() // 终 ‎找void q() // 班期 找‎void t ime() //‎找void t ime( ) //‎找void x() // 型 找‎void r ice() // 票价 找‎六、详细设计e am>p ace std;a n{char k[6]; //航班号strin‎g qd; //起点站strin‎g zd; //终点站strin‎g bq; //班期int btime‎; //起飞时间int etime‎; //到达时间strin‎g jx; //机型int price‎; //票价};// 体ha‎ngban‎int n=3;a n h[n];void initb‎() // 航班 ‎息表{int l;a n h1;for(int i=0;i<n;i++){ // 航班 ‎息 cout<<" 第"<<i+1<<" 航班 ‎息"<<endl;cout<<" 航班号‎"<<endl;for(int j=0;j<6;j++) cin>>h[i].k[j];cout<<" 起点站‎"<<endl;cin>>h[i].qd;cout<<" 终点站‎"<<endl;cin>>h[i].zd;cout<<" 班期"<<endl;cin>>h[i].bq;cout<<" 起飞时‎间"<<endl;;cout<<" 到达时‎间"<<endl;;cout<<" 机型"<<endl;cin>>h[i].jx;cout<<" 票价"<<endl;;}for(int i=0;i<n-1;i++) // 航班号 ‎序for(int j=0;j<n-i-1;j++){l=2;(l<6){if(h[j].k;}else if(h[j].k[l]==h[j+1].k[l]) l++;;}}}void print‎b() // 航班 ‎息表{for(int i=0;i<n;i++){cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}void findk‎() // 航班号‎查询{=0;cout<<" 航班号‎查询"<<endl;char a[6];cout<<" 要查询‎ 航班号:";for(int i=2;i<6;i++) cin>>a[i];int j;for(int i=0;i<n;i++){j=2;(j<6){if(h[i].k[j]==a[j]) j++;;}if(j==6) {cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";<<" ";cout<<h[i].jx<<" ";cout<<h[i].pri<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void findq‎d() // 起点站‎查{=0;cout<<" 起点站‎查 :";g k;cin>>k;for(int i=0;i<n;i++){if(k==h[i].qd){cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期 "<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl;for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";cout<<h[i].et<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void findz‎d() // 终点站‎查{=0;cout<<" 终点站‎查 :";g k;cin>>k;for(int i=0;i<n;i++){if(k==h[i].zd){cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void findb‎q() // 班期查‎{=0;cout<<" 班期查‎:";g k;cin>>k;for(int i=0;i<n;i++){if(k==h[i].bq) {cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void findb‎time() // 起飞时‎间查{=0;cout<<" 起飞时‎间查 :";int k;cin>>k;for(int i=0;i<n;i++){if(k==h[i].btime‎) {cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";cout<<h[i].btim<<" ";<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void finde‎time() // 到达时‎间查{=0;cout<<" 到达时‎间查 :";int k;cin>>k;for(int i=0;i<n;i++){if(k==h[i].etime‎) {cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void findj‎x() // 机型查‎{=0;cout<<" 机型查‎:";g k;cin>>k;for(int i=0;i<n;i++){if(k==h[i].jx) {cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void findp‎rice() // 票价查‎{=0;cout<<" 票价查‎:";int k;cin>>k;for(int i=0;i<n;i++){if(k==h[i].price‎) {cout<<"第"<<i+1<<" 航班 要‎查 航班‎"<<endl;count‎++;cout<<"第"<<i+1<<" 航班 ‎息"<<endl;cout<<"航班号 "<<" "<<"起点站 "<<" "<<"终点站 "<<"班期"<<"起飞时间"<<" "<<"到达时间"<<" "<<"机型 "<<" "<<"票价 "<<endl; for(int j=0;j<6;j++) cout<<h[i].k[j];cout<<" ";cout<<h[i].qd<<" ";cout<<h[i].zd<<" ";cout<<h[i].bq<<" ";<<" ";<<" ";cout<<h[i].jx<<" ";<<" ";cout<<endl;}}if(count‎==0) cout<<" 要‎求 航班"<<endl<<endl;}void chazh‎ao() //查 息{cout<<" 菜单2 "<<endl;cout<<"1. 航班号查‎"<<endl;cout<<"2. 起点站查‎"<<endl;cout<<"3. 终点站查‎"<<endl;cout<<"4. 班期查 ‎"<<endl;cout<<"5. 起飞时间‎查 "<<endl;cout<<"6. 到达时间‎查 "<<endl;cout<<"7. 机型查 ‎"<<endl;cout<<"8. 票价查 ‎"<<endl;cout<<"9.回到菜单1‎"<<endl;cout<<" 选择:"<<endl;//菜单2int k2;(cin>>k2){();d();d();q();t ime();t ime();x();r ice();;cout<<" 菜单2 "<<endl;cout<<"1. 航班号查‎"<<endl;cout<<"2. 起点站查‎"<<endl;cout<<"3. 终点站查‎"<<endl;cout<<"4. 班期查 ‎"<<endl;cout<<"5. 起飞时间‎查 "<<endl;cout<<"6. 到达时间‎查 "<<endl;cout<<"7. 机型查 ‎"<<endl;cout<<"8. 票价查 ‎"<<endl;cout<<"9.回到菜单1‎"<<endl;cout<<" 选择:"<<endl;//菜单2}}int main(){int k1;cout<<"************航班 息查‎询**************"<<endl<<endl; cout<<"菜单1 "<<endl;cout<<"1. 航‎班表, 航班号‎ 序"<<endl;cout<<"2. 航班表‎"<<endl;cout<<"3.查 航班"<<endl;cout<<"4.退 程序"<<endl<<" 选择:";//菜单1(cin>>k1){();b();a o();;cout<<" 菜单1 "<<endl;cout<<"1. 航‎班表, 航班号‎ 序"<<endl;cout<<"2. 航班表‎"<<endl;cout<<"3.查 航班"<<endl;cout<<"4.退 程序"<<endl<<" 选择:";//菜单1}}}七、 、 分析 ‎ 果1、 试结 ‎析;、 序的 试‎过九、 验总验航‎班查询 ‎程中, ‎‎ , ‎‎‎ 程中 ‎‎ 序‎, 查‎‎ 练 ‎到 ‎ 程 ‎要 程序 ‎ 到 程‎序 程中‎‎方便,效果 好。

查询历史航班信息的方法

查询历史航班信息的方法

查询历史航班信息的方法嘿,朋友们!想知道怎么查询历史航班信息吗?这就像一场探秘之旅,我来给你们好好唠唠。

你可别把查询历史航班信息想得像在宇宙里找一颗特定的星星那么难。

首先呢,你可以直接奔向航空公司的官网,那可是航班信息的老巢。

航空公司的官网就像是航班的超级管家,什么信息都在那藏着呢。

你点进去,就像进入了一个航班信息的宝藏洞穴,在里面翻找历史航班信息。

不过有时候,这个洞穴的布局有点复杂,你得像个探险家一样有点耐心。

还有啊,那些购票平台也不能放过。

它们就像是航班信息的大集市,各种各样的航班都在那摆摊儿呢。

你在这大集市里找历史航班信息,就像是在一堆水果里找那个最甜的苹果。

虽然有点眼花缭乱,但只要你细心点,还是能找到的。

要是你觉得自己找太麻烦,那就打航空公司的客服电话呗。

这就像是给航班信息的主人打电话问事儿。

不过有时候啊,你可能会遇到忙音,就像你想找个人聊天,结果他在忙别的事儿,你得不停地打,像个执着的小蜜蜂。

再不然呢,机场官方网站也是个好去处。

这就好比是机场这个大城堡的信息公告栏,里面肯定有不少关于航班的事儿。

你在那找历史航班信息,就像是在城堡的角落里翻找古老的地图一样,说不定能发现意外的惊喜呢。

有一些专门的航空数据查询网站也很厉害,它们就像是航班信息的超级数据库。

你只要输入相关的信息,就像给这个数据库施了魔法一样,它就能给你吐出你想要的历史航班信息。

不过呢,查询历史航班信息有时候也像猜谜语。

你可能得试好几个地方,就像在好几个宝盒里找钥匙。

但只要你不放弃,就一定能找到那把打开历史航班信息大门的钥匙。

而且啊,现在很多手机APP也能查呢。

这些APP就像是装在你口袋里的航班小秘书,随时随地都能为你服务。

你只要轻轻一点,就像点了个魔法按钮,历史航班信息可能就出现在你眼前啦。

不管你用哪种方法,都要保持乐观的心态。

查询历史航班信息就像一场有趣的游戏,你在这个游戏里是个聪明的玩家,只要玩得好,肯定能得到你想要的结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

淮北师范大学综合设计报告航班信息的查询与检索(排序应用)课程数据结构学院计算机科学与技术专业网络工程年级 2014级学号 20141204060姓名覃小玲任课教师乙从才2015年12月2 3日一、设计目的与内容通过本次实验,掌握数据结构中的几种排序算法和查找算法,了解静态链表的运用,利用上述的算法完成航班信息的查询与检索。

二、设计分析对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因为它们用得比较少。

每个航班记录包括八项,分别是:航班号,起点站,终点站,班期,起飞时间,到达时间,飞机型号以及票价等。

其中航班号一项的格式为:K0 k1 k2 k3 k4 k5航班关键字可分为两段,即字母和数字。

其中k0和k1是航空公司的别称,用两个大写字母表示,后4位为航班编号。

(1)系统总流程图(2)定义数据类型根据设计要求,设计中所用到的数据记录只有航班信息,因此要定义相关的数据类型:typedef struct {char start[7]; //起点char end[7]; //终点char sche[12]; //班期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]; //静态链表,s1[0]为头结点int keylen; //关键字长int length; //当前表长}SLList; //静态链表类型为了进行基数排序,需要定义在分配和收集操作时用到的指针数组:typedef int ArrType_n[10]; //十进制数字指针数组typedef int ArrType_c[26]; //26个字母指针数组(3)实现排序的各函数的说明1)一趟分配函数:void Distribute(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字key[i]建立RADIX个子表,使同一个子表中记录的keys[i]//相同,f[0..RADIX]和e[0..RADIX]分别指向各子表中的第一个和最后一个记录2)一趟搜集函数:void Collect(SLNode *s1,int i,ArrType f,ArrType e);//本算法是按关键字keys[i]从小到大将[0..RADIX]所指的各子表依次链接成一个链表3)链式基数排序函数:void RadixSort(SLList &L);//本算法是按关键字从低位到高位依次对各关键字进行分配和收集,分两段实现4)二分查找函数:int BinSearch(SLList L,KeyType key[]);//L为待查找的表,key[]为待查找的关键字,按二分查找的思想实现查找5)主控函数void main(){初始化;数据输入;排序处理;接受查找要求及查找关键字;查找处理;输出查找结果;}三、主要功能模块流程图(1)根据设计要求我们知道所用的记录中只有航班信息 因此要定义相关的数据类型 其源程序如下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];//静态链表sl[0]为头结点int keynum; //记录当前关键字字符个数int length; //当前表长}sllist; //静态链表类型typedef int arrtype_n[radix_n];//十进制数字指针typedef int arrtype_c[radix_c];//26个字母指针(2) 链式基数排序是(3)重新整理静态链表重新整理静态链表,P指示第一个记录的当前位置,L.s1[1..i-1]已按关键字有序排列,第一个记录在L中的当前位置应不小于i,使用while循环,找到第i个记录,并用p指示其在L 中的当前位置,而q指示尚未调整的表尾,若if(p!=i) 则p指向被移走的记录,使得以后可由while循环找回,当p=q时,p指向尚未调整的表尾,为找到第i+个记录做准备(4) 查找算法实现1:二分查找函数2: 顺序查找函数void SeqSearch(SLList L,KeyType key[],int i){ int j,k,m=0;for(j=1;j<L.length;j++){ switch(i) {case 2:k=strcmp(key,L.s1[j].others.start);break;case 3:k=strcmp(key,L.s1[j].others.end);break;case 4:k=strcmp(key,L.s1[j].others.time1);break;case 5:k=strcmp(key,L.s1[j].others.time2);break;}if(k==0){ m=1;Display(L,j);}}if(m==0)printf("无此航班信息,可能是输入错误!\n"); }四、系统测试航班信息输入如图:按航班号查询:输入航班号错误则显示如下图:按航班起点站查询:按起飞时间查询:显示查询主菜单,退出查询系统:五:总结通过本实验,我了解了基数排序是作为一种内部排序方法,当关键字位数较少而排序序列较长时,该排序算法有一定的优越性。

而对于有序序列的查找算法,二分查找是一种效率比较高的方法。

这次实验的过程中遇到了很多问题,定义的过程中存在定义不清楚的问题,还有一些模糊定义和重定义的问题出现。

在程序的定义过程中,存在着函数的调用失败的问题,在调用过程中不能正常调用,通过把调用的函数直接用在程序中,不通过调用的方法,使得程序正常运行。

本次实验利用二分查找法很快的完成了对航班信息的查找,使我们对二分查找有了一个很好的掌握。

其查找过程是先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。

在实验过程中,程序中许多定义需要我们有一个很仔细的了解,比如上述的对字符长度的定义,这需要对所定义的对象给一个合理的字符长度,在输入的过程中才不会出现因输入的字符长度过长而不能识别。

本次实验中用到了静态链表,定义静态链表的过程中,需要有一个很熟悉的了解,知道静态链表是如何定义以及如何实现。

通过这次实验,使得对于查找以及检索有了一个很好的掌握,让我们在以后的程序设计过程中对于类似的函数定义有一个很清晰的过程以及了解。

六、源程序及系统文件使用说明#include <stdio.h>#include <string.h>#define MaxSpace 100#define keylen 7#define RADIX_n 10#define RADIX_c 26typedef 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]; //静态链表,s1[0]为头结点int keynum; //记录当前关键字字符个数int length; //当前表长}SLList; //静态链表类型typedef int ArrType_n[RADIX_n]; //十进制数字指针数组typedef int ArrType_c[RADIX_c]; //26个字母指针数组// 一趟数字字符分配函数void Distribute(SLNode *sl,int i,ArrType_n f,ArrType_n e){int j,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; //将p指向的结点插入到第j个子表中}}// 一趟数字字符的收集函数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]; //s1[0].next指向第一个非空子表中的一个结点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; //t指向最后一个非空子表中的最后一个结点}// 一趟字母字符分配函数void Distribute_c(SLNode *sl,int i,ArrType_c f,ArrType_c e){int j,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; //将字母字符转换成在字母集中相应的序号(0-25)if(!f[j])f[j]=p;elsesl[e[j]].next=p;e[j]=p;}}// 一趟字母字符收集void Collect_c(SLNode *sl,int i,ArrType_c f,ArrType_c e){int j,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;}//链式基数排序函数void RadixSort(SLList &L)//链式{int i;ArrType_n fn,en;ArrType_c fc,ec;for(i=0;i<L.length;i++)L.sl[i].next=i+1; //0号单元仅存放指针,不存储内容L.sl[L.length].next=0; //将普通的线性表改造为静态链表for(i=L.keynum-1;i>=2;i--){ //按最低位优先次序对各关键字进行分配和收集,先做低4位数字部分Distribute(L.sl,i,fn,en);Collect(L.sl,i,fn,en);}for(i=1;i>=0;i--){ //对高位的2位大写字母进行分配和收集Distribute_c(L.sl,i,fc,ec);Collect_c(L.sl,i,fc,ec);}}//按指针链重新整理静态链表void Arrange(SLList &L) //重新整理{int p,q,i;SLNode temp;p=L.sl[0].next; //p指向第一个记录的当前位置for(i=1;i<L.length;i++) //l.s1[1…i-1]已按关键字有序化{while(p<i)p=L.sl[p].next; //找到第i个记录,并用p指向其在L中当前位置q=L.sl[p].next; //q指向尚未调整的表尾if(p!=i){temp=L.sl[p]; L.sl[p]=L.sl[i]; L.sl[i]=temp; L.sl[i].next=p; } //交换记录p=q; //p指向尚未调整的表尾,为找第i+1个记录做准备}}// 二分查找函数int BinSearch(SLList L,KeyType key[]){int low,high,mid;low=1;high=L.length;while(low<=high){mid=(low+high)/2;if(strcmp(key,L.sl[mid].keys)==0)return mid;else if(strcmp(key,L.sl[mid].keys)<0)high=mid-1;elselow=mid+1;}return 0;}// 顺序查找函数void SeqSearch(SLList L,KeyType key[],int i){int j,k,m=0;printf("*************************************************************\n"); printf("* 航班号起点站终点站航班期起飞时间到达时间机型票价*\n");for(j=1;j<=L.length;j++){switch(i){case 2:k=strcmp(key,L.sl[j].others.start);break;case 3:k=strcmp(key,L.sl[j].others.end);break;case 4:k=strcmp(key,L.sl[j].others.time1);break;case 5:k=strcmp(key,L.sl[j].others.time2);break;}if(k==0){m=1;printf("* %-8s%-7s%-6s%-11s%-9s%-7s%-5s%4d *\n",L.sl[j].keys,L.sl[j].others.start,L.sl [j].others.end,L.sl[j].others.sche,L.sl[j].others.time1,L.sl[j].others.time2,L.sl[j].others.model,L.sl[j].others.price);}}if(m==0)printf("* 无此航班信息,可能是输入错误!*\n");printf("*************************************************************\n"); }// 查询检索菜单控制程序void searchcon(SLList L){KeyType key[keylen];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");printf(" * 0.退出系统*\n");printf(" ********************\n");printf(" 请选择(0-5): \n");scanf("%d",&i);switch(i){case 1:printf("输入要查询的航班号(字母要大写):");scanf("%s",key);k=BinSearch(L,key);printf("*************************************************************\n");if(k==0)printf(" 无此航班信息,可能是输入错误!\n");else{printf("* 航班号起点站终点站航班期起飞时间到达时间机型票价*\n"); printf("* %-8s%-7s%-6s%-11s%-9s%-7s%-5s%4d *\n",L.sl[k].keys,L.sl[k].others.start,L.sl [k].others.end,L.sl[k].others.sche,L.sl[k].others.time1,L.sl[k].others.time2,L.sl[k].others.model,L.sl[k].others.price);}printf("*************************************************************\n"); break;case 2:printf("输入要查询的航班起点站名:");scanf("%s",key);SeqSearch(L,key,i);break;case 3:printf("输入要查询的航班终点站名:");scanf("%s",key);SeqSearch(L,key,i);break;case 4:printf("输入要查询的航班起飞时间:");scanf("%s",key);SeqSearch(L,key,i);break;case 5:printf("输入要查询的航班到达时间:");scanf("%s",key);SeqSearch(L,key,i);break;case 0:printf("再见\n");}}}// 输入航班记录函数void InputData(SLList &L){int i=++L.length;char yn='y';while(yn=='y'||yn=='Y'){printf("航班号起点站终点站航班期起飞时间到达时间机型票价\n"); scanf("%s%s%s%s%s%s%s%d",L.sl[i].keys,L.sl[i].others.start,L.sl[i].others.end,L.sl [i].others.sche,L.sl[i].others.time1,L.sl[i].others.time2,L.sl[i].others.model,&L.sl [i].others.price);++i; getchar();RadixSort(L);Arrange(L);printf("继续输入吗?y/n:");scanf("%c",&yn);}L.length=i-1;}void main(){// int i,k;SLList L;// KeyType key[keylen];L.keynum=6; L.length=0; //输入航班记录InputData(L); //基数排序RadixSort(L);Arrange(L);searchcon(L);return ;}。

相关文档
最新文档