航班信息查询与检索系统

合集下载

航班信息查询系统

航班信息查询系统

某公司每天有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等数据库存储航班信息和乘客信息。

系统的客户端包括操作员端和乘客端。

操作员端提供录入、查询和统计分析等功能;乘客端提供航班查询、订票、座位选择、退票等功能。

航班信息查询与检索系统优选稿

航班信息查询与检索系统优选稿

航班信息查询与检索系统集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)课程设计报告课程设计名称:数据结构课程设计题目:设计并实现一个航班信息查询与检索系统院系:计算机学院专业:班级:学号:姓名:指导教师:学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月日课程设计名称数据结构课程设计专业学生姓名班级学号题目名称设计并实现一个航班信息查询与检索系统目录1、题目介绍设计一个航班信息查询与检索系统。

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

2、课程设计要求1、每个航班记录包括八项:航班号、起始站、终点站、班期、起飞时间、到达时间、飞机型号、票价。

如下表所示:2、对航班信息进行排序与查找。

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

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

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

3.2、流程图44.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合肥北京1055 1240 733 960显示:是否继续?y/n:录入:y显示:航班号起点站终点站班期起飞时间到达时间机型票价录入:MU5341 上海广州每日1420 1615 M90 1280显示:是否继续?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合肥北京 1055 1240 733 960录入:2显示:输入要查询的航班起点站:录入:合肥显示:航班号起点站终点站班期起飞时间到达时间机型票价显示:CA1544合肥北京1055 1240 733 960录入: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].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\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.end,l.sl[i].others.sche,l.sl[i].o thers.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);}。

如何查询机场的航班记录

如何查询机场的航班记录

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

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

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

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

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

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

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

二、航空公司官方网站或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还会提供实用的旅行建议和提示,如最佳出发时间、旅行保险推荐等,帮助用户规划完美的旅程。

六、用户体验和跨平台支持作为一个谷歌产品,Google Flights注重用户体验,并通过不断的优化改进来提高用户满意度。

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

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

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

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

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

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

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

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

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

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

一般不应少于3000字。

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

IAS系统介绍

IAS系统介绍
20
IAS使用说明-基本操作
IAS功能介绍-显示弹出菜单(续过滤功能)
Less than or equal to this value 小于或者等于当前值 Text Menu Item 在某个单元格中点击该菜单将会显示所有在当前列中小于 或者等于该值的数据行,之前的过滤结果会丢失。过滤完 毕之后,会在该列表头显示如下过滤结果: 鼠标移至表头,会出现如下过滤提示信息:
提示:IAS系统用户的 访问内容由AMOSS控 制,如果用户需要扩 大访问权限,请联系 IAS系统管理员
10
IAS使用说明-基本操作
IAS功能分类-页面头部 以下是IAS系统主页面头部:
11
IAS使用说明-基本操作
IAS功能分类-页面头部功能介绍
Control
Logo Login Info 登陆信息 Logout 注销系统
IAS使用说明-基本操作
IAS功能介绍-切换显示语言 IAS系统支持简体中文显示和英文显示,切换菜单位于主页 面右上角:
切换IAS系统显示语言会导致主页面的数据重新刷新,之 前更新的数据可能不再高亮显示。
13
IAS使用说明-基本操作
IAS功能介绍-改变表格列显示顺序 IAS系统主页面中的航班数据以表格形式显示,表头以绿色 背景显示,用户可以根据自己的喜好调整表头顺序: 首先选中表头上方的空格,一旦选中,空格背景会以红色 背景显示:
4
IAS使用说明-基本操作
IAS系统基本操作 以下开始介绍IAS系统基本操作,包括如何 登陆系统、如何使用各种功能模块、以了 解系统的新增特性、有助于使用户对于系 统的初步理解
5
IAS使用说明-基本操作
启动并登陆IAS系统-启动IAS IAS系统是典型的网站式应用,通过打开IE 6.0以上版本浏览器,在地址栏输入如下网 址即可进入:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程设计名称:数据结构课程设计题目:设计并实现一个航班信息查询与检索系统院系:计算机学院专业:班级:学号:姓名:指导教师:学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月日目录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 1055 1240 733 960显示:是否继续?y/n:录入:y显示:航班号起点站终点站班期起飞时间到达时间机型票价录入:MU5341 上海广州每日1420 1615 M90 1280显示:是否继续?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 1055 1240 733 960录入:2显示:输入要查询的航班起点站:录入:合肥显示:航班号起点站终点站班期起飞时间到达时间机型票价显示:CA1544合肥北京 1.2.4.5 1055 1240 733 960录入: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.pri ce);}}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].others.time2,l.sl[k].others.model,l.sl[k].others.pri ce);}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.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("是否继续?\ny/n:");scanf("%c",&yn);}l.length=i-1;}void main(){sllist l;l.keynum=6;l.length=0;inputdata(l);searchcon(l);}。

相关文档
最新文档