航班信息的查询与检索

合集下载

国际航班查询方法及注意事项

国际航班查询方法及注意事项

国际航班查询方法及注意事项
一、国际航班查询的方法:
1.网上查询:如今,大多数航空公司都提供在线航班查询服务。

乘客
只需登录相关航空公司的官方网站或航空订票网站,输入所需的信息,就
可以查询到目的地的国际航班信息。

这种方法非常方便,可以提前计划旅程、比较航班价格并且预订机票。

二、国际航班查询的注意事项:
1.提前查询:提前查询航班信息可以帮助乘客制定旅行计划,预订机票。

特别是在旅游旺季,航班信息可能会非常紧张,所以提前查询可以帮
助乘客抢到心仪的机票。

2.确认航班信息:在确认航班信息时,乘客需要确认机场、航班号、
航班时间等相关信息是否准确。

这样可以避免因为信息错误而导致的不必
要的麻烦。

3.准备相关证件:国际航班需要携带有效的护照和签证才能登机。


客在查询航班信息的同时,需要确保所持的证件是否有效并在登机前做好
准备。

4.关注航班变动:航班的计划可能会因天气、安全等原因而发生变动。

在查询航班信息后,乘客需要保持关注航空公司的通知或航班状态更新,
以便及时了解最新的航班信息。

5.保留充分的时间:国际航班往往需要较长的办理时间,包括办理登
机手续、安检、海关等。

特别是在繁忙的时段,乘客需要提前到达机场,
保留足够的时间办理相关手续。

6.考虑保险需求:国际航班可能会面临延误、取消、行李遗失等问题。

乘客可以考虑购买航空保险,以应对可能发生的意外情况。

如何查询机场的航班记录

如何查询机场的航班记录

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

虹桥机场航班查询

虹桥机场航班查询

虹桥机场航班查询虹桥机场航班查询虹桥机场作为上海的主要国内航空枢纽,是中国最繁忙的机场之一。

它位于上海市长宁区,离市中心只有约13公里的距离,是飞行出行的主要选择之一。

虹桥机场拥有现代化设施和高效运营,为旅客提供舒适便捷的飞行体验。

在虹桥机场,航班查询是旅客出行的必要步骤,本文将详细介绍虹桥机场航班查询的方法和技巧。

虹桥机场航班查询的方法有多种,旅客可以选择手机APP、网页查询、柜台咨询等方式来获取相关信息。

其中,手机APP是最受欢迎的查询方式之一。

通过下载虹桥机场官方APP,旅客可以随时随地查询航班信息。

APP提供了航班起降时间、航班号、到达和出发的航站楼以及其他相关信息。

旅客只需输入航班号或出发日期,即可获得准确的航班信息。

虹桥机场官方网页也是一个方便快捷的查询平台,旅客只需进入虹桥机场官方网站,在首页点击航班查询即可进入航班查询的页面。

通过输入相应的信息,旅客可以轻松获取所需的航班信息。

除了手机APP和网页查询,旅客还可以通过柜台咨询来查询航班信息。

虹桥机场设有航班查询柜台,旅客可以前往柜台向工作人员咨询航班信息。

工作人员会根据旅客提供的信息,帮助查询相关航班信息,并提供其他必要的服务。

同时,在机场的大屏幕显示屏上也会实时播放航班信息,旅客可以通过观看大屏幕来获取相关的航班信息。

对于航班查询,旅客需要注意以下几点。

首先,旅客应提前查询航班信息,以便能够及时安排行程。

航班时间有时会发生变动,旅客可以通过航班查询获取最新的信息。

其次,旅客应输入准确的航班号或日期来查询航班信息,以免获取错误的结果。

此外,旅客还可以订阅航班动态通知,通过手机短信或邮件方式获取航班的最新变动信息。

这样,旅客可以在第一时间了解到航班延误、取消等情况,避免不必要的麻烦。

虹桥机场作为上海的主要国内航空枢纽,航班众多,航班查询非常重要。

旅客可以通过手机APP、网页查询、柜台咨询等方式来获取航班信息。

在查询航班信息时,旅客应提前查询、输入准确的信息,并订阅航班动态通知,以便及时了解航班的最新变动情况。

国际航班信息查询

国际航班信息查询

国际航班信息查询随着全球化的发展,人们出行的需求越来越多。

国际航班的信息查询成为了旅客们出行前必不可少的一环。

以下是国际航班信息查询的相关内容。

一、国际航班信息查询渠道国际航班信息可以通过多种渠道查询,其中主要包括以下几个方面。

1.官方航空公司网站。

国际航空公司拥有自己的网站,旅客可以通过官方网站查询所需的国际航班信息。

在此渠道查询,可以享受较为全面、准确的信息。

2.第三方旅游网站。

随着旅游行业的发展,越来越多的网站提供了国际航班信息查询服务。

这些网站通常会收集多个航空公司的航班信息,以便旅客们进行比较和选择。

3.航空公司客服电话。

在查询国际航班信息时,旅客还可以直接拨打航空公司的客服电话进行查询。

不过,相比于在线查询,电话查询需要等待时间较长、信息不够全面,此项渠道并不是最优选择。

4.机场信息中心。

旅客在机场信息中心也可以查询国际航班信息。

在机场信息中心查询,旅客可以获得最及时、准确的航班信息。

二、国际航班信息查询的注意事项在查询国际航班信息时,旅客需要注意一些问题,以确保获得准确、完整的信息。

1.查询时间。

在查询国际航班信息时,旅客需要留足时间进行查询。

一般情况下,旅客需要提前1-2天查询,以获得足够的信息和时间。

2.确认出发地和目的地。

在查询国际航班信息时,旅客需要确认自己的出发地和目的地。

如果出发地或目的地填错,查询到的航班信息将不准确。

3.确认航班时间。

查询到的航班信息中,需要确认航班的具体时间、日期和航班号等。

如果信息不准确,将会给旅行带来极大的不便。

4.确认票价和退改签规定。

在查询国际航班信息时,旅客需要重视航班票价和相关的退改签规定。

不同的航空公司对于票价和退改签规定有着不同的政策,旅客需要根据自己的需求选择适合自己的航空公司。

三、如何订购国际航班机票在查询到满意的国际航班信息后,旅客需要订购机票。

在订购国际航班机票时,旅客需要注意以下几点。

1.选择合适的航空公司。

在订购国际航班机票时,旅客需要根据自己的需求选择航空公司。

飞机航班信息查询

飞机航班信息查询

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

航班信息的查询与检索课程设计

航班信息的查询与检索课程设计

数据结构与算法课程设计报告题目:航班信息的查询与检索学生姓名学号专业班级指导教师日期元培学院教务处课程设计任务书一、需求分析要解决的问题:设计民航售票处的计算机系统可以为客户提供下列各项服务:1. 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行、;2. 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况。

具体要求:1.对飞机航班信息进行排序和查找,可按航班的航班号,起点站,终点站,班期,起飞时间,到达时间,飞机型号以及票价等。

2. 采用快速排序法对的飞机航班号进行排序。

3.利用二分查找法对排好序的航班记录按航班号查询。

4.每个航班记录包括八项,分别为:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价等二、概要设计数据类型的声明:/*头文件以及存储结构*/#include<iostream>#include<fstream>#include<string>int n;using namespace std;class Employee2,表达式的抽象数据类型定义static void twosearch(Employee a[]);//二分查找static void f_by_address(Employee a[],int m);//按起点站/终点站查询static void f_by_time(Employee a[],int m);//按起飞时间/到达时间查询friend void insert(Employee a[]);//添加航班void show()//输出信息void book(Employee a[])//订票系统void quicksort(Employee a[],int low,int high)//-快速排序3. 主程序的流程三、详细设计1.主要代码:friend istream&operator>>(istream&in,Employee&e)//文件输出流{returnin>>e.flight_num>>e.start>>e.end>>e.fly_date>>e.start_time>>e.end_time>>e.flight_type>>e.price>>e.tickets;}friend ostream&operator<<(ostream&out,Employee&e)//文件输入流{returnout<<e.flight_num<<e.start<<e.end<<e.fly_date<<e.start_time<<e.end_time<<e.flight_type<<e.price<<e.tickets ;}void show()//输出信息{cout<<" 航班号起飞站终点站班期起飞时间到达时间机型票价"<<endl;cout<<" "<<flight_num<<" "<<start<<" "<<end<<" "<<fly_date<<""<<start_time<<" "<<end_time<<" "<<flight_type<<" "<<price<<endl;}};//----------快速排序-----------void quicksort(Employee a[],int low,int high){int z,y;Employee key;//定义一个key的类对象,key为关键字if(low<high){z=low;y=high;key=a[low];//把第一个数据复制给key,为关键字while(z!=y){while((z<y)&&(strcmp(key.flight_num,a[y].flight_num)<=0))//当low<high且a[y].flight_num 大于等于关键字y--;//high向前移一位a[z]=a[y];//此时a[y]的值为关键字while((z<y)&&(strcmp(key.flight_num,a[z].flight_num)>=0))//当low<high且a[y].flight_num 小于等于关键字z++;//low向后移一位a[y]=a[z];//此时a[z]的值为关键字}a[z]=key;quicksort(a,low,z-1);//对一边递归调用quicksort()排序quicksort(a,z+1,high);//对另一半递归调用quicksort()排序}}//通过航班号实现二分查找法查找void Employee::twosearch(Employee a[])//二分查找{char num[6];int key=0;cout<<"请输入您要查询的航班号:";cin>>num;int low=0,high=n-1,mid;while(low<=high){mid=(low+high)/2;if(!strcmp(num,a[mid].flight_num))//找到该航班,并输出{a[mid].show();key=1;return;}else if(strcmp(num,a[mid].flight_num)<0)high=mid-1;elselow=mid+1;}if(!key)cout<<" *************对不起,没有您要查找的航班号********** "<<endl; }void insert(Employee a[])//添加航班{char secret[6];int i=3;cout<<"请输入管理员密码:";cin>>secret;if(!strcmp(secret,"12345")){cout<<"请依次录入航班信息数据(航班号由2位大写字母和4位数字组成):"<<endl;ofstream f;//定义文件对象f.open("初始化航班.txt",ios::app);if(f.fail())//打开文件失败{cout<<"打开文件失败!"<<endl;exit(2);}int i=n;while(!f.eof())//直到文件结尾{//int i=sizeof(a)/sizeof(a[0]);cout<<" 航班号起飞站终点站班期起飞时间到达时间机型票价票数"<<endl;cin>>a[i].flight_num>>a[i].start_time>>a[i].end_time>>a[i].start>>a[i].end>>a[i].fly_date>>a[i].flight_ty pe>>a[i].price>>a[i].tickets;f<<a[i];n++;break;//通过文件输入流导入文件} f.close();}elsecout<<"密码错误,请重新登入!"<<endl;}2、函数的调用关系除了主函数main()外,其他各个函数相对于其它函数来说是独立的,函数的使用都由主函数main()调用使用的。

航班查询任务书

航班查询任务书

沈阳工程学院课程设计设计题目:航班信息的查询与检索系别信息工程系班级软本094学生姓名王诗娟刘云峰学号 02 14指导教师姜柳、吕海华职称副教授、讲师起止日期:2010年12月13日起——至2010年12月24日止沈阳工程学院课程设计任务书课程设计题目:航班信息的查询与检索系别信息工程系班级软本094学生姓名王诗娟刘云峰学号 02 14指导教师姜柳、吕海华职称副教授、讲师课程设计进行地点:实训F座任务下达时间: 2010年 12月 10日起止日期:2010年12月13日起——至2010年12月24日止教研室主任张欣 2010年12月10日批准一、课程设计的原始资料及依据在现代社会,飞机以其快捷,舒适以及其服务的周到使愈来愈多的人选择了飞机为长距离出行的交通工具,这就使航空公司以及机场的工作量愈来愈大,若仍然使用文件或者人工来管理公司、机场、飞机、航班、航线、客户以及售票的信息,那无疑在效率上会大打折扣。

21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。

利用计算机来储存和管理公司、机场、飞机、航班、航线、客户以及售票的信息成为了首选,在这种情况下,一个好的航班信息查询系统就显得非常重要了。

对于本设计,可以采用线性表的结构记录所有航班信息,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其它次关键字的查找可采用简单的顺序查找,因为它们用得较少。

二、课程设计主要内容及要求1. 建立:建立一个线性表的存储结构。

2. 录入功能:输入所有航班信息。

3. 查询功能:输入航班号显示相应数据元素。

输入起点站显示相应数据元素。

输入终点站显示相应数据元素。

输入起飞时间显示相应数据元素。

输入到达时间显示相应数据元素。

4. 退出:退出查询系统。

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

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

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

算法与数据结构实验报告航班查询与检索题目:航班查询与检索指导老师:组长:成员:一:航班信息的查询与检索按时间查询:按站点查询:二分法查询:二:算法分析:程序主要采用结构体链表顺序表队列主要算法:/*航班信息的查询与检索*/三:/*航班信息的查询与检索*/#include<>#include<>#include<>#define N 6 =NULL; queue[i].e=NULL; ==NULL) queue[k].f=p; ->next=p; =p;p=p->next;}i=0;while(queue[i].f==NULL) i++; ; head=queue[i].f; !=NULL){ p->next=queue[i].f; p=queue[i].e; } light_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;}light_number,p->;strcpy(F[i].start_time,p->;strcpy(F[i].arrived_time,p->;strcpy(F[i].start_address,p->;strcpy(F[i].arrived_address,p->;strcpy(F[i].work_date,p->;strcpy(F[i].FlightType,p->;F[i].fare=p->;p=p->next;}}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;}}light_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;}tart_time)==0) Cout_info2_2(F,i);}if(Time==2) rrived_time)==0) Cout_info2_2(F,i);}}cout<<" *******对不起,该时间没有航班******* "<<endl;}tart_address)==0) Cout_info2_2(F,i);}if(AD==2) rrived_address)==0) Cout_info2_2(F,i);}}cout<<" ********对不起,该站点不存在******** "<<endl;}are && T2>=F[i].fare) Cout_info2_2(F,i);}cout<<" *******对不起,没有适合您的航班,请修改您的票价范围********" <<endl;}ext=&element[i+1];element[10].next=NULL;radixSort(&p, D, R);我们对链表、队列、结构体的应用更娴熟,为我们更好的了解课本内容,改进不足提供了件。

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

目录 (2)1 概述 (2)1.1 课程设计名称 (2)1.2 课程设计目的 (2)1.3 课程设计内容 (2)2 系统分析 (2)2.1 设计要求 (2)2.2 设计分析 (2)3 概要设计 (3)3.1 系统总流程图 (3)3.2 定义数据类型 (3)3.3 实现排序的各函数的说明 (4)4 详细设计 (4)4.1 数据类型的定义 (4)4.2 链式基数排序 (5)4.2.1 一趟数字字符分配函数 ....................... 错误!未定义书签。

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

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

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

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

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

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

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

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

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

其中航班号一项的格式为:K0 k1 k2 k3 k4 k5示,后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 链式基数排序开始输入数据、基数、长度改造为静态链表对关键字分配和收集将数据分为两段每段进行串式基数排序否i<L.length是L.sl[i].next=i+1按指针整理链表结束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 总结与心得通过本实验,我了解了基数排序是作为一种内部排序方法,当关键字位数较少而排序序列较长时,该排序算法有一定的优越性。

相关文档
最新文档