航班查询系统
航班信息查询系统
某公司每天有10航班(航班号、价格),每个航班的飞机,共有80个坐位,分20排,每排4个位子。
编号为A,B,C,D。
如座位号:10D表示10排D座。
设计一程序,完成以下功能:1)1)订票:输入乘客的姓名、身份证号、航班号、乘坐日期,座位号,完成订票功能(一次只能预定一张机票)。
需要判断航班号是否存在,身份证号的长度是否为15位或18位,判断座位号是否为航班上正确的座位号,座位号是否已经被其他顾客预定,乘坐日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02)))2)2)退票:输入乘客的姓名、航班号、日期,完成退票功能。
需要判断该乘客是否已经订购了该日期的该航班)(不考虑航班飞机是否已经起飞,认为任何时候都可以退票)3)3)查询指定航班、指定日期的乘客信息4)4)查询指定航班的飞机票的销售额5)5)查询指定身份证号的顾客的乘坐飞机历史。
提示:●l定义一个日期结构体保存日期,具体信息为:年、月、日●l判断乘坐日期的格式是否合法时,需要判断长度是否为10,第5位和第8位是否为’-’,字符,将1-4位表示的年份,6-7位表示的月份,9-10位表示的日期分别转换成整数。
判断是否满足构成日期的条件闰年月份只能是1-12之间的数,如果是闰年,二月可以是29天否则不能大于28,1,3,5,7,8,10,12月可以是31天,其余只能小于等于30(建议写成函数)。
●l定义一个结构体数组保存航班信息,具体为:航班号、价格●l定义一个结构体保存座位号,具体为:排,座●l定义一个订票链表,保存订票信息,具体为:乘客的姓名、身份证号、航班号、乘坐日期,座位号。
输入时,判断排号是否大于0 小于等于20 ,座号是否为A、B、C、D, 同时需要查询订票链表,是否存在相同乘坐日期、相同航班、相同座位号的记录,如果有则表示已经预定,如果没有则插入订票链表●l退票时,需要从输入身份证号、航班号、乘坐日期,查询订票链表,如果在该记录,则删除,#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define N 10typedef struct{int year;int month;int day;}DATE;typedef struct{char no[5];int price;}FLUG;FLUGflug[N]={{"A01",100},{"A02",100},{"A03",120},{"A04",120},{"A05",150}, {"A06",150},{"A07",180},{"A08",180},{"A09",200},{"A10",200}};typedef struct{int row;char col;}SEAT;typedef struct node{char name[20];char id[20];char flugNo[5];DATE date;SEAT seat;struct node *next;}TICKET;TICKET *head=NULL;//将日期字符串转换为日期型数据DATE strToDate(char strDate[]){DATE date;date.year=atoi(&strDate[0]);date.month=atoi(&strDate[5]);date.day=atoi(&strDate[8]);return date;}//检查日期是否合法int checkDate(char strDate[]){DATE date;if(strlen(strDate)!=10||strDate[4]!='-'||strDate[7]!='-')return 0;date=strToDate(strDate);if(date.month<1||date.month>12)return 0;if((date.year%4==0&&date.year%100!=0)||(date.year%400==0)){if(date.month==2&&date.day>29)return 0;}else{if(date.month==2&&date.day>28)return 0;}switch(date.month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(date.day>31) return 0;case 4:case 6:case 9:case 11:if(date.day>30) return 0;}return 1;}void printMenu(){//clrsrc();printf("\n\n\n");printf("--------------------------------------------------------------\n");printf(" 1、订票\n");printf(" 2、退票\n");printf(" 3、查询指定航班、指定日期的乘客信息\n");printf(" 4、查询指定航班的飞机票的销售额\n");printf(" 5、查询指定身份证号的顾客的乘坐飞机历史\n");printf(" 6、退出系统\n");printf("--------------------------------------------------------------\n");printf("请选择(1~5):");}TICKET *insert(TICKET *t){TICKET *p;if(head==NULL){head=t;t->next=NULL;}else{p=head->next;head=t;t->next=p;}return head;}TICKET *delete(TICKET *t){TICKET *p;for(p=head;p->next!=t;p=p->next);p->next=t->next;free(t);return head;}void booking(){TICKET *ticket,*p;int i;char strDate[20],str[10];ticket=(TICKET *)malloc(sizeof(TICKET));printf("输入姓名:");scanf("%s",ticket->name);do{printf("输入身份证号:");scanf("%s",ticket->id);if(strlen(ticket->id)==15||strlen(ticket->id)==18)break;printf("身份证位数错误!");}while(1);do{printf("输入航班号:");scanf("%s",ticket->flugNo);for(i=0;i<N;i++){if(strcmp(flug[i].no,ticket->flugNo)==0)break;}if(i<N)break;printf("指定航班号不存在!");}while(1);do{printf("输入乘坐日期:");scanf("%s",strDate);if(checkDate(strDate)==1)break;printf("日期格式错误!");}while(1);ticket->date=strToDate(strDate);do{printf("输入座位号(如:10D):");scanf("%s",str);ticket->seat.row=atoi(str);if(ticket->seat.row<0||ticket->seat.row>20){printf("排数错误!");continue;}ticket->seat.col=str[strlen(str)-1];if('A'>ticket->seat.col||'D'<ticket->seat.col){printf("列数错误!");continue;}for(p=head;p!=NULL;p=p->next){if(ticket->date.year==p->date.year&&ticket->date.month==p->da te.month&&ticket->date.day==p->date.day){if(strcmp(ticket->flugNo,p->flugNo)==0){if(ticket->seat.row==p->seat.row&&ticket->seat.col==p->seat.c ol){printf("座位已被预订!");continue;}}}}insert(ticket);printf("订票成功!");break;}while(1);}void refund(){TICKET *ticket,*p;int i;char strDate[20],str[10];ticket=(TICKET *)malloc(sizeof(TICKET));printf("输入姓名:");scanf("%s",ticket->name);do{printf("输入航班号:");scanf("%s",ticket->flugNo);for(i=0;i<N;i++){if(strcmp(flug[i].no,ticket->flugNo)==0)break;}if(i<N)break;printf("指定航班号不存在!");}while(1);do{printf("输入乘坐日期:");scanf("%s",strDate);if(checkDate(strDate)==1)break;printf("日期格式错误!");}while(1);ticket->date=strToDate(strDate);for(p=head;p!=NULL;p=p->next){if(strcmp(ticket->name,p->name)==0){if(strcmp(ticket->flugNo,p->flugNo)==0){if(ticket->date.year==p->date.year&&ticket->date.month==p->da te.month&&ticket->date.day==p->date.day){delete(p);}}}}printf("无此订票信息!");return;}void passenger(){TICKET *p;for(p=head;p!=NULL;p=p->next){printf("%s,",p->name);printf("%s,",p->id);printf("%d-%d-%d,",p->date.year,p->date.month,p->date.day);printf("%s,",p->flugNo);printf("%d%c",p->seat.row,p->seat.col);}}void main(){char strDate[20];DATE date;int c;do{printMenu();scanf("%d",&c);if(c==1){booking();}if(c==2){refund();}if(c==3){passenger();}if(c==6){exit(0);}}while(1);}#include <stdio.h> #include <string.h>#include <stdlib.h>#include <conio.h>#define N 10typedef struct{int year;int month;int day;}DATE;typedef struct{char no[5];int price;}FLUG;FLUGflug[N]={{"A01",100},{"A02",100},{"A03",120},{"A04",120},{"A05",150}, {"A06",150},{"A07",180},{"A08",180},{"A09",200},{"A10",200}};typedef struct{int row;char col;}SEAT;typedef struct node{char name[20];char id[20];char flugNo[5];DATE date;SEAT seat;struct node *next;}TICKET;TICKET *head=NULL;//将日期字符串转换为日期型数据DATE strToDate(char strDate[]){DATE date;date.year=atoi(&strDate[0]);date.month=atoi(&strDate[5]);date.day=atoi(&strDate[8]);return date;}//检查日期是否合法int checkDate(char strDate[]){DATE date;if(strlen(strDate)!=10||strDate[4]!='-'||strDate[7]!='-')return 0;date=strToDate(strDate);if(date.month<1||date.month>12)return 0;if((date.year%4==0&&date.year%100!=0)||(date.year%400==0)){if(date.month==2&&date.day>29)return 0;}else{if(date.month==2&&date.day>28)return 0;}switch(date.month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(date.day>31) return 0;case 4:case 6:case 9:case 11:if(date.day>30) return 0;}return 1;}void printMenu(){//clrsrc();printf("\n\n\n");printf("--------------------------------------------------------------\n");printf(" 1、订票\n");printf(" 2、退票\n");printf(" 3、查询指定航班、指定日期的乘客信息\n");printf(" 4、查询指定航班的飞机票的销售额\n");printf(" 5、查询指定身份证号的顾客的乘坐飞机历史\n");printf(" 6、退出系统\n");printf("--------------------------------------------------------------\n");printf("请选择(1~5):");}TICKET *insert(TICKET *t){TICKET *p;if(head==NULL){head=t;t->next=NULL;}else{p=head->next;head=t;t->next=p;}return head;}TICKET *delete(TICKET *t){TICKET *p;for(p=head;p->next!=t;p=p->next);p->next=t->next;free(t);return head;}void booking(){TICKET *ticket,*p;int i;char strDate[20],str[10];ticket=(TICKET *)malloc(sizeof(TICKET));printf("输入姓名:");scanf("%s",ticket->name);do{printf("输入身份证号:");scanf("%s",ticket->id);if(strlen(ticket->id)==15||strlen(ticket->id)==18)break;printf("身份证位数错误!");}while(1);do{printf("输入航班号:");scanf("%s",ticket->flugNo);for(i=0;i<N;i++){if(strcmp(flug[i].no,ticket->flugNo)==0)break;}if(i<N)break;printf("指定航班号不存在!");}while(1);do{printf("输入乘坐日期:");scanf("%s",strDate);if(checkDate(strDate)==1)break;printf("日期格式错误!");}while(1);ticket->date=strToDate(strDate);do{printf("输入座位号(如:10D):");scanf("%s",str);ticket->seat.row=atoi(str);if(ticket->seat.row<0||ticket->seat.row>20){printf("排数错误!");continue;}ticket->seat.col=str[strlen(str)-1];if('A'>ticket->seat.col||'D'<ticket->seat.col){printf("列数错误!");continue;}for(p=head;p!=NULL;p=p->next){if(ticket->date.year==p->date.year&&ticket->date.month==p->da te.month&&ticket->date.day==p->date.day){if(strcmp(ticket->flugNo,p->flugNo)==0){if(ticket->seat.row==p->seat.row&&ticket->seat.col==p->seat.c ol){printf("座位已被预订!");continue;}}}}insert(ticket);printf("订票成功!");break;}while(1);}void refund(){TICKET *ticket,*p;int i;char strDate[20],str[10];ticket=(TICKET *)malloc(sizeof(TICKET));printf("输入姓名:");scanf("%s",ticket->name);do{printf("输入航班号:");scanf("%s",ticket->flugNo);for(i=0;i<N;i++){if(strcmp(flug[i].no,ticket->flugNo)==0)break;}if(i<N)break;printf("指定航班号不存在!");}while(1);do{printf("输入乘坐日期:");scanf("%s",strDate);if(checkDate(strDate)==1)break;printf("日期格式错误!");}while(1);ticket->date=strToDate(strDate);for(p=head;p!=NULL;p=p->next){if(strcmp(ticket->name,p->name)==0){if(strcmp(ticket->flugNo,p->flugNo)==0){if(ticket->date.year==p->date.year&&ticket->date.month==p->da te.month&&ticket->date.day==p->date.day){delete(p);}}}}printf("无此订票信息!");return;}void passenger(){TICKET *p;for(p=head;p!=NULL;p=p->next){printf("%s,",p->name);printf("%s,",p->id);printf("%d-%d-%d,",p->date.year,p->date.month,p->date.day);printf("%s,",p->flugNo);printf("%d%c",p->seat.row,p->seat.col);}}void main(){char strDate[20];DATE date;int c;do{printMenu();scanf("%d",&c);if(c==1){booking();}if(c==2){refund();}if(c==3){passenger();}if(c==6){exit(0);}}while(1);}。
航空公司航班信息管理系统设计
航空公司航班信息管理系统设计一、航空公司航班信息管理系统设计航空公司是一个庞大的运行系统,需要有效的管理和跟踪航班信息。
为了满足这个需求,设计一个高效的航班信息管理系统是至关重要的。
本文将详细介绍航空公司航班信息管理系统的设计。
二、系统概述航空公司航班信息管理系统是一个集中管理和监控航班信息的系统。
它主要包括航班信息录入、查询和统计分析等功能。
通过该系统,航空公司能够实时查看航班信息、管理航班计划、进行航班调度和安排,并提供准确的航班信息给乘客和其他相关人员。
三、系统功能设计航空公司航班信息管理系统具备以下功能:1.航班信息录入:系统操作员可以录入航班信息,包括出发地、目的地、起飞时间、到达时间、航班号、机型等。
录入信息时要求填写必要的信息,并对信息进行有效性检查。
2.航班信息查询:系统用户可以通过航班号、出发地、目的地、起飞时间等关键字进行航班信息查询。
查询结果包括航班详情、机型、座位数、预计到达时间等。
3.航班信息统计:系统能够根据时间段、航班号等维度进行航班信息统计和分析。
统计结果可以通过图表和报表的形式展示,方便航空公司管理层对航班数据进行分析和决策。
4.航班状态更新:系统能够及时更新航班的状态信息,如航班延误、取消等。
系统会自动发送通知给相关人员,如机组人员、地面服务人员以及乘客。
5.乘客信息管理:系统可以管理乘客的个人信息、预订记录和乘坐航班的记录。
乘客可以通过系统进行航班预订、座位选择和票务管理。
6.机组信息管理:系统可以管理机组人员的信息和排班情况。
系统可以根据航班计划自动生成机组排班,并实时更新机组人员的航班信息。
四、系统设计与实现航空公司航班信息管理系统采用客户端-服务器架构进行设计与实现。
具体实现方式可以采用Java或C#等编程语言开发,使用MySQL等数据库存储航班信息和乘客信息。
系统的客户端包括操作员端和乘客端。
操作员端提供录入、查询和统计分析等功能;乘客端提供航班查询、订票、座位选择、退票等功能。
航班查询系统
航班查询系统(代码+截图)程序源代码:# include <stdio.h># include<stdlib.h># include <ctype.h>#include <string.h># include<process.h># include <conio.h># define Null 0struct flight{charfltNum[15];charStartingPoint [20];char Terminal [20];charDepartureTime[8];charArrivalTime[8];charAircraftType[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");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;}else{while(p->next!=Null){p=p->next;}if(p->next!=Null){pi->next=p->next;p->next=pi;}else{p->next=pi;pi->next=Null;}}}struct flight * delet(struct flight *head,charfltNum[15]) {struct flight *p,*q,*s;p=head;if(head==Null){printf("没有航班信息要删除。
如何查询机场的航班记录
如何查询机场的航班记录随着航空业的快速发展,越来越多的人选择坐飞机出行。
在乘坐飞机之前,查询机场的航班记录变得愈发重要。
当你需要了解某个机场的停靠航班、航班时间表或者延误情况时,下面将介绍一些常见的查询方式和工具。
一、官方网站查询大多数机场都有官方网站,上面提供了航班信息查询的功能。
你可以访问相关机场的官方网站,往往可以在首页或者导航栏中找到“航班信息”或类似的标签。
进入航班信息页面后,提供了航空公司、航班号、起降时间等多个查询选项,你可以根据自己的需求进行查询。
这种方式的数据准确性相对较高,但需要自己上网查询。
二、航空公司官方网站或APP查询除了机场官方网站外,航空公司的官方网站或者APP也是查询机场航班记录的有效工具。
在航空公司的官方网站或APP中,通常提供了航班查询、延误信息、机场航班动态等多个功能,可以满足你的查询需求。
通过航空公司官方渠道查询的数据也较为准确,但仅限于该航空公司的航班信息。
三、第三方航班查询网站或APP有许多第三方航班查询网站或APP,如Flightradar24、FlightAware 等。
这些平台整合了全球范围内的航班信息,提供了更全面的查询功能。
你可以通过输入机场名称或者航班号来查询相关信息。
这些平台通常提供了实时航班状态、航线图、延误预测等功能,能够帮助你更好地了解机场的航班情况。
但需要注意,第三方平台的数据可能会有一定的延迟,因此在查询时需要留意数据的准确性和实时性。
四、航班查询电话或服务台如果你不方便上网或者使用手机APP,你也可以拨打航空公司或机场的服务电话进行查询。
这些服务电话通常会有专门的航班查询热线,你只需拨通后按照语音提示操作即可获得所需的航班记录。
另外,一些机场也会在航站楼设立查询服务台,在那里你可以直接咨询工作人员并获得有关航班的详细信息。
五、机场显示屏或公告牌当你到达机场时,机场内通常会配备多个显示屏或公告牌,上面会展示航班的起降时间、航空公司、航班号等信息。
航班查询系统
题目:航班查询系统一、语言和环境A、实现语言JavaB、环境要求JDK1.6、Eclipse、Tomcat5.5.*、SQLServer2005二、数据库设计数据库名称:flight数据库表信息,如下表:三、要求航班查询系统提供根据航班号查询航班信息的功能。
现要求使用JavaScript+JSP-JDBC 技术实现该功能,数据库使用SQLServer2005。
要求如下:1、初始页面为查询页面,用户在该页面的文本输入框内输入要求查询的航班号,如图1所示:图1查询界面2、用户输入航班号后,点击“搜索航班”按钮时,系统将校验用户输入内容,当用户没有输入航班号直接点击“搜索航班”按钮时,将给出提示信息,如图2:图2显示提示信息3、用户输入了航班号点击“搜索航班”按钮后,系统提交该查询请求,并在查询结果也面上显示满足条件的航班信息,如图3 所示:图3 查询结果页面当系统没有找到该航班的信息时,在查询结果页面上显示提示信息,如图4所示:图4没有找到该航班的信息在查询结果页面上,用户点击“返回”按钮时,页面回到查询页面。
四、实现步骤1、创建数据库、数据库表、并录入测试记录,见下表:2、创建Web 工程flight,导入数据库驱动包,在源文件夹中创建dao包用于存放数据访问类:3、创建DAO基类:BaseDao.javaA、包含基本数据库资源的获取、释放操作;4、创建DAO类:FlightDao.javaA、编写方法search(String flightid),查询满足条件的航班,将航班信息封装到List类的对象中并返回该对象;5、创建JSP:search.jspA、编写表单,正确提交到result.jsp;B、编写JavaScript验证;验证未通过时,给出相应提示:验证通过后,提交表单。
6、创建JSP:result.jspA、编写Java 小脚本,获得传入的参数;B、调用FlightDao 的search() 方法,查询航班信息;C、根据查询结果,显示航班信息或提示信息;D、编写“返回”按钮。
Google Flights航班信息查询工具
Google Flights航班信息查询工具Google Flights是谷歌推出的一款航班信息查询工具,旨在为用户提供方便、快捷的航班查询和比价服务。
作为一个集成了强大搜索引擎和数据分析功能的平台,Google Flights为乘客提供了准确、实时的航班信息,并帮助他们找到最佳的航班选择。
一、仪表简介Google Flights的主界面简洁明了,用户可以通过输入起始地、目的地和出行日期等基本信息来开始航班查询。
而与其他航班查询网站不同的是,Google Flights还提供了一些独特的功能,使用户能够更方便地搜索并筛选符合自己需求的航班。
二、实时航班信息通过与众多航空公司和机场合作,Google Flights能够获取到最新的航班信息,并在用户查询时实时更新。
用户可以轻松地查看航班的起飞时间、到达时间、航班号码以及是否有中转等重要信息。
三、航班比价功能Google Flights的另一个强大功能是航班比价,它可以帮助用户找到最具竞争力的航班价格。
通过分析航班供应商和航空公司的价格数据,Google Flights能够提供准确的航班价格信息,并将其以直观的图表形式展示给用户,帮助用户找到最合适的航班。
四、多样化的搜索功能除了基本的航班搜索功能外,Google Flights还提供了一些高级搜索选项,使用户能够更准确地筛选符合自己需求的航班。
用户可以根据航空公司、航班类型(经济舱、公务舱等)、中转时间以及乘客数等因素进行筛选,从而找到最适合自己的航班。
五、行程规划和提示Google Flights还为用户提供了行程规划和提示的功能。
用户可以将不同的航班组合为完整的旅行行程,Google Flights会为用户计算并显示每个航程的总飞行时间以及中转时间等重要信息。
此外,Google Flights还会提供实用的旅行建议和提示,如最佳出发时间、旅行保险推荐等,帮助用户规划完美的旅程。
六、用户体验和跨平台支持作为一个谷歌产品,Google Flights注重用户体验,并通过不断的优化改进来提高用户满意度。
VF0024航班航空信息查询系统
前言世界航班信息查询系统是一个航空机构不可缺少的部分,它的使用可方便航空公局查看到各类班机的基本信息,所以世界航班信息查询系统应该能够为航空公司提供充足的信息和快捷的查询手段。
但由于此系统的功能有限,所以不一定能使航空公司查看到所有的相关信息,因此此系统也有待进一步提高。
随着科学技术的不断提高,计算机科学日渐成熟,管理系统强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对航班情况进行管理,的确能起到行之有效的作用。
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我将以开发一套世界航班信息查询系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
1目录前言第一章管理信息系统 (1)1.1 管理信息系统的概述 (1)1.2 管理信息系统的特点 (1)1.3 管理信息系统的开发 (2)第二章开发软件概述 (4)2.1 Visual FoxPro 概述 (4)2.2 为什么要使用面向对象的编程 (7)第三章世界航班信息查询系统的设计和开发 (8)3.1 总体的设计思想 (8)3.2 设计流程 (8)3.3 数据库的设计 (9)第四章世界航班信息查询系统设计的具体实现 (10)4.1 系统模块的具体实现 (10)4.2 数据浏览模块 (10)4.3 数据修改模块 (10)4.4 数据查询模块 (12)4.5 系统开发的其它方面 (12)结束语 (13)参考文献 (15)附录 (16)2该系统四大功能模块及各子模块设计图如下所示:34.3数据修改模块44.4 数据查询模块Powered by 计算机毕业论文网重要提示:本论文由大学论文网毕业论文下载网: 提供5如果需要详细内容请与QQ:4991024联系6。
航班管理系统
NO.1航班管理系统•一、题目内容的描述1.航班查询系统飞机航班信息包括:航班号、起点站、终点站、起飞时间、到达时间、机型以及票价,实例如下:设计航班查询系统要求能对飞机航班信息进行增加、删除、排序和查找。
可按航班的航班号、起点站、终点站、起飞时间以及到达时间进行查询。
•二、应用程序功能的详细说明通过建立一个链表来实现航班信息储存功能,每个结点的信息包括航班号、出发地、目的地、出发时间、到达时间、是否经停、价格,并编写功能函数使系统具有插入、查询、删除、更新、排序的功能。
•三、主要模块的算法描述菜单选项菜单选项图航班信息的建立插入信息查询航班:•四、结束语通过此程序的编写我熟悉了链表的运用,链表是本学期学习的重点,灵活性比栈好,可以通过指针实现插入删除等功能,但要注意移动指针的逻辑关系,如果不注意很容易指向了不是你要的地方。
•五、程序的源代码清单#include "stdio.h"#include "stdlib.h"#include "ctype.h"#include "process.h"#include "string.h"#include<iostream>using namespace std;struct flight //定义航班信息结构体{char flight_num[10];char flight_start[20];char flight_destination[20];char flight_takeoff_time[10];char flight_arrive_time[10];char flight_isStop[5];int flight_price;struct flight *next;};void welcome()//显示程序菜单{printf("************************欢迎使用航班管理系统**********************\n");printf("******************************************************************\n");printf("******************************************************************\n"); printf("**********************按下对应数字实现相应功能********************\n");printf("**************************1.创建航班信息**************************\n");printf("**************************2.增加航班信息**************************\n");printf("**************************3.查询航班信息**************************\n");printf("**************************4.删除航班信息**************************\n");printf("**************************0.退出管理系统**************************\n");printf("******************************************************************\n");printf("******************************************************************\n"); printf("************************CopyRight ByKobeLee**********************\n");printf("******************************************************************\n"); }struct flight * InitSystem(int n)//建立航班信息链表{int i;struct flight * head,* p,*s;for(i=1;i<=n;i++){printf("请输入第%d次航班信息:\n",i);if(i==1){p=(struct flight *)malloc(sizeof(struct flight));printf("航班号:");scanf("%s",&p->flight_num);printf("出发地:");scanf("%s",&p->flight_start);printf("目的地:");scanf("%s",&p->flight_destination);printf("起飞时间:");scanf("%s",&p->flight_takeoff_time);printf("到达时间:");scanf("%s",&p->flight_arrive_time);printf("经停:");scanf("%s",&p->flight_isStop);printf("价格:");scanf("%d",&p->flight_price);head->next=p;}else{s=(struct flight * )malloc(sizeof(struct flight));printf("航班号:");scanf("%s",&s->flight_num);printf("出发地:");scanf("%s",&s->flight_start);printf("目的地:");scanf("%s",&s->flight_destination);printf("起飞时间:");scanf("%s",&s->flight_takeoff_time);printf("到达时间:");scanf("%s",&s->flight_arrive_time);printf("经停:");scanf("%s",&s->flight_isStop);printf("价格:");scanf("%d",&s->flight_price);s->next=head->next;head->next=s;}printf("\n");}return head;}int Insert(struct flight *head)//添加航班信息,头插法;{struct flight * p,*pi;pi=(struct flight *)malloc(sizeof(struct flight));//为新添加的航班开辟空间p=head;printf("请输入新添加的航班信息:\n\n");printf("航班号:");scanf("%s",&pi->flight_num);printf("出发地:");scanf("%s",&pi->flight_start);printf("目的地:");scanf("%s",&pi->flight_destination);printf("起飞时间:");scanf("%s",&pi->flight_takeoff_time);printf("到达时间:");scanf("%s",&pi->flight_arrive_time);printf("经停:");scanf("%s",&pi->flight_isStop);printf("价格:");scanf("%d",&pi->flight_price);if(head==NULL){head->next=pi;pi->next=NULL;}else{pi->next=p->next;p->next=pi;}return 0;}void SearchByFlightNum(flight * head){char num[10];printf("请输入航班号:");scanf("%s",&num);if(head->next==NULL){printf("没有航班信息,不能查询,请先创建信息。
查航班信息查询
查航班信息查询随着人们出行的增多,航班信息查询已经成为了大家生活不可或缺的一部分。
航班信息查询有着丰富的渠道和多样的方式,接下来就让我们一起来了解一下吧。
一、航班信息查询平台目前市场上有很多航班信息查询平台,如携程、去哪儿等。
这些平台可以提供航班的出发时间、到达时间、起飞地点、目的地点、航班号、仓位等信息。
通过这些平台查询航班信息的好处是可以在网上完成快捷方便的购票。
在具体操作时,我们只需要打开平台页面,输入出发地、目的地、航班时间等信息,系统会自动筛选出符合条件的航班,供我们进行选择。
在购票时,平台也会提供一些优惠和折扣,这对于我们来说也是非常有利的。
二、航空公司官网查询如果我们已经确定了航空公司,那么我们可以通过其官网查询航班信息。
这种方式可以获得更加准确、详细的航班信息。
航空公司官网的查询操作与平台查询类似,我们只需要输入出发地、目的地、时间等信息即可获得航班信息。
值得注意的是,在查询过程中,我们需要注意官网上提供的时刻表,这些信息为我们预订航班提供了很好的参考。
三、机场航班查询系统通过机场航班查询系统,我们可以了解到各个机场的航班情况。
为了方便大家,国内很多机场都提供了航班查询系统,其中包括了出发、到达、中转的航班,以及每个航班的航班号、起飞时间、到达时间等信息。
航空公司也会将最新的信息通过机场航班查询系统分享给用户,因此,用户可以及时了解到航班的最新信息,以便调整行程。
四、航班信息查询APP除了网站之外,航班信息查询APP也是一种非常方便的查询方式。
用户可以在手机上下载航班信息查询APP,通过输入出发地、目的地、起飞时间等信息,来获得最新的航班信息。
其中一些APP还可以提供实时更新,免费提供行李托运查询、机票查找、座位选择等服务。
总结:航班信息查询是我们出行前的一项必要准备工作,通过以上方式,我们可以获得快速、准确、实用的航班信息。
在选择查询方式时,我们需要考虑一些因素,如信息来源的准确性、可靠性,航班信息的及时性以及自身出行的需要等。
查询航班信息
查询航班信息引言:在现代社会,随着人们对航空出行需求的增加,航空公司不断扩大航线网络,提供更多的航班选择。
然而,对于乘客来说,准确了解航班信息变得尤为重要。
本文将介绍如何查询航班信息,包括航班查询的工具、常用的查询方式以及如何解读航班信息。
一、航班查询工具1. 网上航班查询网站:如今,许多航空公司、航空机票代理商以及第三方旅行网站都提供在线航班查询服务。
常见的航班查询网站有:航班管家、去哪儿网、携程网等。
通过这些网站,乘客可以输入出发地、目的地以及出行日期,即可获得相关的航班信息。
2. 航空公司官方网站或应用程序:每个航空公司都有自己的官方网站和移动应用程序,乘客可以通过它们查询航班信息。
这些官方渠道通常提供最准确和及时的航班信息,包括实时航班状态、起降时间变更等。
乘客可以选择直接访问航空公司的官方网站或是下载相应的移动应用程序。
3. 航班查询热线:除了在网上查询航班信息,乘客还可通过航空公司提供的航班查询热线获取信息。
当乘客遇到无法在线查询或需要人工帮助时,拨打航班查询热线可以让客服人员为您提供所需的信息。
二、常用查询方式1. 查询航班动态:查询航班动态是最常用的航班查询方式之一。
通过输入航班号或选择出发地、目的地以及日期,乘客可以了解特定航班的起降时间、当前状态等信息。
这种方式适合那些已经订购了机票并知道航班号的乘客。
2. 查询航班时刻表:查询航班时刻表是另一种常用的查询方式。
乘客可以在航空公司的官方网站上或航班查询网站上浏览特定航线的航班时刻表。
航班时刻表通常提供每日航班的起降时间、飞行时间以及航班号等信息。
乘客可以根据自己的出行计划,选择最适合的航班。
3. 查询航班经停信息:有时候,乘客需要了解航班的经停信息,以便安排行程或选择转机的航班。
通过查询航班经停信息,乘客可以了解某个航班在中途是否有停靠机场,这对于行程规划尤为重要。
乘客可以通过航空公司官方网站、航班查询网站或移动应用程序进行查询。
航班查询系统
try
{
sqlConnection.Open();
sqlDataAdapter.Fill(city.City);
}
catcpplicationException("数据库访问错误。", e);
}
finally
{
sqlConnection.Close();
第二阶段
❖ 为数据库里的表建立XML Schema(XML框 架)
❖ 要求学员自己动手编码,在编码的过程中 解答学员提出的问题
11
阶段检查
❖ 检查学员第二阶段的编码结果 ❖ 教员点评
12
第二阶段标准代码演示
❖ 演示第二阶段实现的标准代码
13
第三阶段
❖ 编写Citys类和Flights类 ❖ 要求学员自己动手编码,在编码的过程中
❖ 为数据库表建立XML Schema (XML架构)
在数据库资源管理器里建立一个数据库连接 新建一个XML Schema文件 把数据表拖放到XML Schema文件上 增加数据库没有的而程序需要的字段 生成带类型的DataSet
4
难点解析 -2
❖ 在代码中引用XML Schema
引用XML Schema对象所在的命名空间
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
SqlCommand sqlCommand = new SqlCommand();
演示第三阶段实现的标准代码 sqlDataAdapter.SelectCommand = sqlCommand;
using Aptech.Chat.Class;
定义对象
UserInfoDataSet userInfoDataSet = new UserInfoDataSet();
《数据结构_课程设计》航班查询系统实验报告
目录一、概述 (1)二、系统分析 (1)1.航班信息的查询与检索 (1)2.航班信息查询与检索数据结构理论 (1)三、概要设计 (2)1.系统的功能 (2)2.系统模块分析及其流程图 (3)四、详细设计 (6)1.各函数说明 (6)2.定义相关数据类型 (8)3.航班信息的查询 (9)五、运行由于测试 (11)六、总结与心得 (16)参考文献 (16)附录 (16)一、概述随着信息产业的飞速发展, 信息化管理及查询已经进入并应用到各行各业, 影响着人们的价值观念和生活方式。
因此, 要提高企业信息化建设, 利用先进的办公自动化系统来实现企业内部信息管理、共享及交流, 从而提高企业综合实力。
本次设计是针对航班的查询系统, 该设计要求对飞机航班信息进行排序和查询。
可按航班的航班号、起点站、终点站等信息进行航班信息的查询。
二、系统分析1.航班信息的查询与检索进入系统后, 首先提示输入航班的信息, 包括: 航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号及票价等, 票价为整型, 其他为字符型。
当输入完一个信息后会提示是否继续输入, 重复以上步骤输入全部的信息。
进入主菜单后会给出用户操作的界面, 根据提示进行航班信息的查询。
2.航班信息查询与检索数据结构理论针对在本该类系统中的数据的处理情况, 本系统采用二分查找法、基数排序法、最高位优先法。
二分查找法也称为折半查找法, 它充分利用了元素间的次序关系, 采用分治策略, 可在最坏的情况下用O(log n)完成搜索任务。
它的基本思想是, 将n 个元素分成个数大致相同的两半, 取a[n/2]与欲查找的x作比较, 如果x=a[n/2]则找到x, 算法终止。
如果x<a[n/2], 则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。
如果x>a[n/2], 则我们只要在数组a的右半部继续搜索x。
对航班号的排序是采用的基数排序法。
基数排序法又称“桶子法”(bucket sort)或bin sort, 顾名思义, 它是透过键值的部份资讯, 将要排序的元素分配至某些“桶”中, 藉以达到排序的作用, 基数排序法是属于稳定性的排序, 其时间复杂度为O (nlog(r)m), 其中r为所采取的基数, 而m为堆数, 在某些时候, 基数排序法的效率高于其它的比较性排序法。
航班系统功能需求
航班系统功能需求一、引言航班系统是指能够管理和操作航空公司航班信息和相关业务的系统。
航班系统功能需求的定义和规划对于确保航空公司的正常运营和服务质量至关重要。
本文将介绍航班系统功能需求的一般要求和具体细节。
二、一般要求1.航班计划管理:能够实时管理航班计划,包括新增、修改和删除航班计划。
2.航班查询:提供快速、准确的航班查询功能,包括航班号、起降时间、机型等信息。
3.乘客预订和管理:提供乘客预订航班的功能,包括个人信息录入、座位选择、支付等。
4.航班变更通知:在航班时间变更、取消等情况下,及时通知乘客并进行相应的处理。
5.登机管理:提供乘客登机管理功能,包括登机牌生成、安全检查、航班起降信息查询等。
6.航班信息发布:能够在航班延误、航班取消等情况下,及时向乘客发布相关信息。
三、具体细节1.航班计划管理-能够录入和修改航班计划信息,包括航班号、起降时间、机型、舱位等。
-能够根据航班计划生成乘客预订系统和票务系统的相关信息。
-能够根据航班计划动态更新乘客的登机相关信息。
2.航班查询-能够提供多种查询方式,包括按航班号、按起降时间、按舱位等。
-能够提供实时、快速的查询结果,包括航班状态、机型、残座情况等。
-能够提供航班历史查询功能,方便用户回溯信息。
3.乘客预订和管理-提供乘客预订航班的功能,包括录入乘客个人信息、选择航班和座位、生成订单等。
-能够实时更新航班的座位状态,确保乘客选择的座位有效。
-提供在线支付功能,接受多种支付方式,并能够保护用户支付信息的安全。
4.航班变更通知-在航班时间变更、取消等情况下,能够通过短信、邮件等方式及时通知乘客。
-能够提供相应的处理方案,包括改签、退票、赔偿等。
-能够自动更新相关系统的航班信息,包括预订系统、票务系统等。
5.登机管理-能够与安检系统、航班起降信息系统进行实时联动,确保登机过程顺利进行。
-能够提供登机状态查询功能,帮助乘客了解航班起降情况和登机口信息。
6.航班信息发布-在航班延误、航班取消等情况下,能够及时向乘客发布相关信息。
非常准航班查询
非常准航班查询《非常准航班查询》随着全球化的快速发展和人们生活水平的提高,越来越多的人选择旅行。
而航班作为人们出行的首选交通工具之一,也受到越来越多人的青睐。
准确地查询航班信息,对于旅客来说是至关重要的。
而现如今,有了非常准航班查询系统的出现,让旅客可以更加方便地获得航班相关信息。
非常准航班查询系统是一种利用现代信息技术,提供航班查询服务的工具。
通过该系统,旅客可以在任何时间、任何地点查询各航空公司的航班信息,包括起飞时间、到达时间、班次、机票价格等。
相比传统的查询方式,非常准航班查询系统具有许多优势。
首先,非常准航班查询系统的查询结果非常准确可靠。
系统会与各航空公司建立实时的信息交互通道,获取最新的航班信息。
这意味着旅客可以获得最准确、最实时的航班信息,避免了因为误差而导致的不必要麻烦。
无论是航班延误、调整还是取消,旅客都能第一时间得知,并进行及时的行程调整。
其次,非常准航班查询系统具有极高的查询速度和便捷性。
旅客只需在电脑、手机等设备上输入出发地和目的地,点击查询按钮,系统就可以快速地呈现结果。
旅客不再需要花费大量时间在电话、柜台等地方进行查询,节省了等待和排队的时间。
同时,系统支持多种查询方式,如按航空公司、出发时间段、航班号等进行筛选,让旅客能够更加方便地找到满足自己需求的航班。
此外,非常准航班查询系统还提供了更多的服务功能。
旅客在查询航班信息的同时,还可以了解各航班所属航空公司的介绍、机票预订、机场实时信息等。
系统会根据用户的需求,给出相应的推荐和指导,方便旅客更好地安排行程。
系统还支持在线购票和在线值机等功能,让旅客足不出户就能完成航班相关事务。
非常准航班查询系统是一种为旅客提供方便、快捷服务的好工具。
然而,系统也存在一些问题需要关注。
首先,系统的数据安全问题需要得到保证,避免个人信息被泄露。
其次,系统需要经常更新和维护,以确保查询结果的准确性和实时性。
最后,用户界面的友好性也需要进一步优化,让旅客能够更加轻松地使用。
《ACARS航班信息及动态查询系统》飞行员操作手册
ACARS查询航班信息和动态
------------使用说明一.以机尾号查询动态
在ACARS 的FREE TEXT à AIRLINE 中输入
“//SOC REG 机尾号”,
然后发送。
如图:
系统返回的报文如例图。
其中:
AIR 表示实际起飞时间
ON 表示实际落地时间
SCH 表示计划起飞时间ETD 表示预计起飞时间ETA 表示预计落地时间
时间由日期和时刻组成
如果有停机位信息,
停机位将显示在时间之后。
二.以航班号查询航班信息
在ACARS 的FREE TEXT à AIRLINE 中输入
“//SOC FLT 航班号”,
然后发送。
如图:
系统返回报文如例图:
报文中包含了动态信息,
停机位,飞行计划中的油量部分(如果飞行计划已经生成),航班的
订座信息,饮用水加水信息。
航班信息的查询与检索系统
航班信息查询与检索一、问题描述实现对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间和到达时间等信息进行查询。
航班信息表的样式如下:航班号起点站终点站班期起飞时间到达时间机型票价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■,已。
航班信息查询与检索系统
课程设计报告课程设计名称:数据结构课程设计题目:设计并实现一个航班信息查询与检索系统院系:计算机学院专业:班级:学号:姓名:指导教师:学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。
尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。
与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。
报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。
本人签名: 日期:年月日目录1 题目介绍 (5)2 课程设计要求 (5)2.1课程设计内容 (5)2.2课程设计目标 (5)3 概要设计 (5)3.1设计思路 (5)3.2流程图 (5)4 算法概述 (6)4.1定义数据类型 (6)4.2函数描述 (7)5 测试数据 (10)附录(关键部分程序清单) (12)1、题目介绍设计一个航班信息查询与检索系统。
可按航班的航班号、起点站、终点站、起飞时间以及到达时间等信息进行查询。
2、课程设计要求1、每个航班记录包括八项:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。
如下表所示:2、对航班信息进行排序与查找。
3、概要设计3.1、设计思路根据题目所要求,程序必须实现航班信息的录入和查询。
程序首先定义了一个储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。
在查询设计中,使用折半查找法对排好序的航班号数据实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。
3.2、流程图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; //票价}info; //航班记录类型typedef struct{char keys[keylen]; //关键字info others;int next;}slnode; //表结点typedef struct{slnode sl[maxspace];int keynum; //关键字长int length; //当前表长}sllist; //静态链表类型为了进行基数排序,需要定义在分配和收集操作时用到的指针数组:typedef int arrtype_n[10]; //十进制数字指针数组typedef int arrtype_c[26]; //26个字母指针数组4.2 . 函数描述void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e){int j,p;for(j=0;j<10;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];t=e[j];while(j<10-1){for(j=j+1;j<10-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;l.sl[l.length].next=0; //将普通的线性表改为静态链表for(i=l.keynum-1;i>=2;i--) //按最低位优先依次对各关键字进行分配和收集{distribute(l.sl,i,fn,en);collect(l.sl,i,fn,en);}for(i=1;i>=0;i--){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;for(i=1;i<l.length;i++){while(p<i)p=l.sl[p].next;q=l.sl[p].next;if(p!=i){temp=l.sl[p];l.sl[p]=l.sl[i];l.sl[i]=temp; //交换记录l.sl[i].next=p;}p=q;}}折半查找函数定义int binsearch(sllist l,char 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;}5、测试数据编译后运行,显示:录入信息^_^航班号起点站终点站班期起飞时间到达时间机型票价录入:CA1544合肥北京 1.2.4.5 10551240 733960显示:是否继续?y/n:录入:y显示:航班号起点站终点站班期起飞时间到达时间机型票价录入:MU5341上海广州每日14201615 M901280显示:是否继续?y/n:录入:y显示:航班号起点站终点站班期起飞时间到达时间机型票价录入:CZ3869 重庆深圳 2.4.6 0855 1035 733 1010显示:是否继续?y/n:录入:n录入航班信息后,屏幕显示:-------------------------------* 航班信息查询系统*-------------------------------* 1.航班号** 2.起点站** 3.终点站** 4.起飞时间** 5.到达时间** 0.退出*-----------------------------(0-5)号服务项目:录入:1显示:输入要查询的航班号(字母要大写):录入:CA1544显示:航班号起点站终点站班期起飞时间到达时间机型票价CA1544合肥北京1.2.4.5 10551240 733960录入:2显示:输入要查询的航班起点站:录入:合肥显示:航班号起点站终点站班期起飞时间到达时间机型票价显示:CA1544合肥北京 1.2.4.5 10551240 733960录入:2显示:输入要查询的航班起点站: 录入:广州显示:附录源程序:#include <stdio.h>#include <string.h>#define max 100#define keylen 7typedef struct{char start[6];char end[6];char sche[10];char time1[5];char time2[5];char model[4];int price;}info;typedef struct{char keys[keylen];info others;int next;}slnode;typedef struct{slnode sl[max];int keynum;int length;}sllist;typedef int arrtype_n[10];typedef int arrtype_c[26];void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e) {int j,p;for(j=0;j<10;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;}}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];t=e[j];while(j<10-1){for(j=j+1;j<10-1&&!f[j];j++);if(f[j]){sl[t].next=f[j];t=e[j];}}sl[t].next=0;}void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e) {int j,p;for(j=0;j<26;j++){f[j]=e[j]=0;}for(p=sl[0].next;p;p=sl[p].next){j=sl[p].keys[i]%65;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<26-1){for(j=j+1;j<26-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;l.sl[l.length].next=0;for(i=l.keynum-1;i>=2;i--){distribute(l.sl,i,fn,en);collect(l.sl,i,fn,en);}for(i=1;i>=0;i--){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;for(i=1;i<l.length;i++){while(p<i)p=l.sl[p].next;q=l.sl[p].next;if(p!=i){temp=l.sl[p];l.sl[p]=l.sl[i];l.sl[i]=temp;l.sl[i].next=p;}p=q;}}int binsearch(sllist l,char 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,char 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%-7s%-11s%-6s%-6s%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){char 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)号服务项目:");scanf("%d",&i);printf("\n");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%-7s%-11s%-6s%-6s%-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].oth ers.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\n宝宝走了\n\n");}}}void inputdata(sllist &l){int i=++l.length;char yn='y';while(yn=='y'||yn=='Y'){printf("信息录入^_^\n\n");printf("航班号起点站终点站班期起飞时间到达时间机型票价\n");scanf("%s %s %s %s %s %s %s %d",l.sl[i].keys,l.sl[i].others.start,l.sl[i].others.e nd,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("是否继续?\ny/n:");scanf("%c",&yn);}l.length=i-1;}void main(){sllist l;l.keynum=6;l.length=0;inputdata(l);searchcon(l);}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉轻工大学数计学院《数据结构》课程设计报告
名称:航班查询系统
班级:信息与计算科学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 0
struct 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");。