航班查询系统
- 格式:doc
- 大小:118.00 KB
- 文档页数:17
《数据结构》课程设计书---飞机订票系统班级:完成人:指导老师:开始时间:完成时间:一、任务内容制作一个简单的飞机订票系统二、功能要求1.录入.可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2.查询.(1)可以查询某个航线的情况(如,输入航班号,查询抵达城市,航班票数信息,是否满仓);(2)可以输入起飞抵达城市,查询飞机航班情况;(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)(4)退票:可退票,退票后修改相关数据文件;(5)修改航班信息:当航班信息改变可以修改航班数据文件四、源程序清单#include<stdio.h>#include<stdlib.h>#include<string.h>#define FLIGHTAMOUNT 200//最大航班数#define SEATAMOUNT 500//最大座位数struct flightstruct{char flightnumber[20];//航班号char finishingline[20];//终点站char date[20]; //日期unsigned maxamount;//总票数unsigned remainders;//剩余票数unsigned seatstate[SEATAMOUNT];//座位数组,贮存座位信息}flight[FLIGHTAMOUNT];void main(){char flag;//提供选择菜单的变量void open(FILE *fp);//打开文件函数void save(FILE *fp);//保存信息函数void built(FILE *fp);//建立文件函数void manage();//输入、管理信息函数void insert(FILE *fp);//插入信息函数void remend(FILE *fp);//修改信息函数void delet(FILE *fp);//删除信息函数void delet_all(FILE *fp);//删除所有信息函数void scan();//浏览信息函数void select();//查询信息函数void booktickets();//订票函数void print_info(unsigned);//输出打印信息函数void sendbacktickets();//退票函数do{printf("\n\t************************飞机订票系统****************************\n");printf("\n\t----------------------------主菜单-------------------------------\n");printf("\t**************-1--信息管理信息浏览--2-****************\n");printf("\t**************-3--信息查询订票系统--4-****************\n");printf("\t**************-5--退票系统退出系统--0-****************\n");p rintf("\n\t-----------------------------------------------------------------\n");do{scanf("%c",&flag);}while(flag!='1'&&flag!='2'&&flag!='3'&&flag!='4'&&flag!='5'&&flag!='0');switch(flag){case '1':manage();break;case '2':scan();break;case '3':select();break;case '4':booktickets();break;case '5':sendbacktickets();break;case '0':;break;}}while(flag!='0');}/**********打开文件 "flightinfomaition.dat"***********/void open(FILE *fp){unsigned i;if((fp=fopen("flightinfomaition.dat","r"))==NULL)//以只读方式打开{printf(" 打开文件失败!\n");exit(0);}for(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0");i++) if(fread(&flight[i],sizeof(struct flightstruct),1,fp)!=1){printf(" 文件读取错误!\n");exit(0);}fclose(fp);}/***********************保存设置*******************/void save(FILE *fp){unsigned i;char incept;printf("是否保存?(Y/N):");do{incept=getchar();}while(!(incept=='Y'||incept=='y'||incept=='N'||incept=='n'));if(incept=='Y'||incept=='y'){if((fp=fopen("flightinfomaition.dat","r+"))==NULL)//以读写方式打开{printf(" 打开文件失败!\n");exit(0);}for(i=0;i<FLIGHTAMOUNT;i++)if(fwrite(&flight[i],sizeof(struct flightstruct),1,fp)!=1){printf(" 保存失败!\n");exit(0);}printf(" 保存成功!\n");}fclose(fp);}/*********************管理信息*********************/void manage(){FILE* fp=NULL;char incept;printf("**************************欢迎进入信息管理系统*********************\n");do{p rintf("\n--------------------------------------------------------------------\n");printf("请选择:\n\t 1--建立新文件\n\t 2--插入信息\n\t 3--修改信息\n\t 4--删除信息\n\t 5--删除全部\n\t 0--退出\n");p rintf("--------------------------------------------------------------------\n");do{incept=getchar();}while(incept!='1'&&incept!='2'&&incept!='3'&&incept!='4'&&incept!='5'&&incept!='0');switch(incept){case '1':built(fp);break;case '2':insert(fp);break;case '3':remend(fp);break;case '4':delet(fp);break;case '5':delet_all(fp);break;case '0':return;}printf("继续进行管理?(Y/N)");do{incept=getchar();}while(!(incept=='Y'||incept=='y'||incept=='N'||incept=='n'));}while(incept=='Y'||incept=='y');}/**********建立一个名为"flightinfomaition.dat"的文件************/void built(FILE*fp){unsigned i,j;//建立一个名为"flightinfomaition.dat"文件,用于存贮航班信息if((fp=fopen("flightinfomaition.dat","w"))==NULL){printf(" 文件建立失败!\n");exit(0);}elseprintf("文件建立成功!\n");//文件信息初始化for(i=0;i<FLIGHTAMOUNT;i++){ //将所有信息内容置为0strcpy(flight[i].flightnumber,"0");strcpy(flight[i].finishingline,"0");strcpy(flight[i].date,"0");flight[i].maxamount=0;for(j=0;j<flight[i].maxamount;j++)flight[i].seatstate[j]=0;}save(fp);//保存所改变的信息insert(fp);//插入航班信息}/***********************插入信息************************/ void insert(FILE *fp){unsigned i;char flightnumber[20];open(fp);//在系统可容纳的数据范围之内循环for(i=0;i<FLIGHTAMOUNT;i++)//当所循环到的位置为空时写入新信息if(strcmp(flight[i].flightnumber,"0")==0){printf("请输入航班号(输入“0”结束):");scanf("%s",flightnumber);if(strcmp(flightnumber,"0")==0)break;else{strcpy(flight[i].flightnumber,flightnumber);printf("请输入终点站 :");scanf("%s",flight[i].finishingline);printf("请输入日期 :");scanf("%s",flight[i].date);printf("请输入总票数 :");do{scanf("%d",&flight[i].maxamount);if(flight[i].maxamount<0||flight[i].maxamount>SEATAMOUNT)printf(" 输入错误!\n 请输入正确的数字:");}while(flight[i].maxamount<0||flight[i].maxamount>SEATAMOUNT);flight[i].remainders=flight[i].maxamount;}}save(fp);}/*******************************修改信息*****************************/void remend(FILE *fp){unsigned i,j,maxamount;char flag;char flightnumber[20],finishingline[20],date[20];open(fp);do{printf("查询航班号?(Y/N):");do{scanf("%c",&flag);}while(!(flag=='y'||flag=='Y'||flag=='N'||flag=='n'));if(flag=='y'||flag=='Y')select(fp);printf("请输入航班号:");scanf("%s",flightnumber);f or(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0")&&strcmp(flight[i].flightnumber, flightnumber);i++);if(!strcmp(flight[i].flightnumber,flightnumber)){printf("输入“0”将不做修改\n");printf("请输入新的航班号:");scanf("%s",flightnumber);if(strcmp(flightnumber,"0"))strcpy(flight[i].flightnumber,flightnumber);printf("请输入新的终点站:");scanf("%s",finishingline);if(strcmp(finishingline,"0"))strcpy(flight[i].finishingline,finishingline);printf("请输入新的时间:");scanf("%s",date);if(strcmp(date,"0"))strcpy(flight[i].date,date);printf("请输入新的票数:");do{scanf("%d",&maxamount);if(maxamount<0||maxamount>SEATAMOUNT){printf("输入错误!请重新输入票数:");}}while(maxamount<0||maxamount>SEATAMOUNT);if(maxamount!=0)flight[i].maxamount=maxamount;flight[i].remainders=flight[i].maxamount;for(j=0;j<flight[i].maxamount;j++)flight[i].seatstate[j]=0;save(fp);}elseprintf("没有找到“%s”次航班!",flightnumber); printf("是否继续?(Y/N):");do{scanf("%c",&flag);}while(!(flag=='y'||flag=='Y'||flag=='N'||flag=='n'));}while(flag=='y'||flag=='Y');}/************************************删除信息***********************************/ void delet(FILE *fp){unsigned i;char flag;char flightnumber[20];open(fp);do{printf("查询航班号?(Y/N):");do{scanf("%c",&flag);}while(!(flag=='y'||flag=='Y'||flag=='N'||flag=='n'));if(flag=='y'||flag=='Y')select(fp);printf("请输入航班号:");scanf("%s",flightnumber);f or(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0")&&strcmp(flight[i].flightnumber, flightnumber);i++);if(!strcmp(flight[i].flightnumber,flightnumber)){for(;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0");i++){strcpy(flight[i].flightnumber,flight[i+1].flightnumber);strcpy(flight[i].finishingline,flight[i+1].finishingline);strcpy(flight[i].date,flight[i+1].date);flight[i].maxamount=flight[i+1].maxamount;flight[i].remainders=flight[i+1].remainders;}printf("删除成功!\n");save(fp);}elseprintf("删除是败!没有找到“%s”航班!",flightnumber);printf("是否继续?(Y/N):");do{scanf("%c",&flag);}while(!(flag=='y'||flag=='Y'||flag=='N'||flag=='n'));}while(flag=='y'||flag=='Y');}/*****************删除所有信息**********************/void delet_all(FILE *fp){char incept;unsigned i,j;printf(" 这个操作将删除所有信息!\n");printf("是否继续?(Y/N)");do{incept=getchar();}while(!(incept=='Y'||incept=='y'||incept=='N'||incept=='n'));if(incept=='Y'||incept=='y'){open(fp);for(i=0;i<FLIGHTAMOUNT;i++){strcpy(flight[i].flightnumber,"0");strcpy(flight[i].finishingline,"0");strcpy(flight[i].date,"0");flight[i].maxamount=0;for(j=0;j<flight[i].maxamount;j++)flight[i].seatstate[j]=0;}save(fp);}}/***************************浏览信息*****************************/void scan(){FILE *fp=NULL;unsigned i;open(fp);printf("***********************欢迎进入信息浏览系统************************************\n\n");printf("序号| 航班号 | 终点站 | 时间 |票数|剩余|\n");for(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0");i++){p uts("------------------------------------------------------------------------------");p rintf("%4d|%-20s|%-20s|%-20s|%-4d|%-4d|\n",i+1,flight[i].flightnumber,flight[i].finishing line,flight[i].date,flight[i].maxamount,flight[i].remainders);}puts("------------------------------------------------------------------------------\n");}/*********************查询信息************************************/void select(){FILE *fp=NULL;unsigned i;int j;char incept;char flightnumber[20],finishingline[20],date[20];open(fp);printf("\n*************************欢迎进入信息查询系统*************************\n");do{j=0;p uts("----------------------------------------------------------------------\n");printf("请选择一种查询方式:\n");printf("\t 1--航班号\n\t 2--终点站\n\t 3--时间\n\t 4--浏览全部\n\t 0--退出\n");p uts("----------------------------------------------------------------------\n");do{incept=getchar();}while(!(incept=='1'||incept=='2'||incept=='3'||incept=='4'||incept=='0'));switch(incept){case '1':{printf("请输入航班号:");scanf("%s",flightnumber);for(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0")!=0;i++)if(strcmp(flight[i].flightnumber,flightnumber)==0){print_info(i);j=1;}if(j==0)printf("对不起!没有找到“%s”航班.\n",flightnumber);}break;case '2':{printf("请输入终点站:");scanf("%s",finishingline);for(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0");i++) if(!strcmp(flight[i].finishingline,finishingline)){print_info(i);j=1;}if(j==0)printf("对不起!飞往“%s”的航班没有找到.\n",finishingline);}break;case '3':{printf("请输入日期:");scanf("%s",date);for(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,"0");i++) if(!strcmp(flight[i].date,date)){print_info(i);j=1;}if(j==0)printf("对不起!“%s”的航班没有找到.\n",date);};break;case '4':scan();break;case '0':return;}printf("是否继续查询?(Y/N)");do{incept=getchar();}while(!(incept=='Y'||incept=='y'||incept=='N'||incept=='n'));}while(incept=='Y'||incept=='y');}/*****************用于select函数输出打印提示信息*********************/void print_info(unsigned i){puts("------------------------------------------------------------------------------");printf("序号| 航班号 | 终点站 | 时间 |票数|剩余|\n");puts("------------------------------------------------------------------------------");printf("%4d|%-20s|%-20s|%-20s|%-4d|%-4d|\n",i+1,flight[i].flightnumber,flight[i].finishingline,flight[i].date,flight[i].maxamount,flig ht[i].remainders);puts("------------------------------------------------------------------------------");}/****************************订票函数****************************/void booktickets(){FILE *fp=NULL;unsigned amount,i,j;char flag,flightnumber[20];printf("****************************欢迎进入订票系统******************************\n");do{open(fp);printf("输入“s”查询(任意键跳过):");getchar();//接收上面语句的回车scanf("%c",&flag);if(flag=='s')select(fp);printf("输入“y”退出订票(任意键继续):");getchar();scanf("%c",&flag);if(flag=='y')break;printf("请输入航班号:");scanf("%s",flightnumber);for(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,flightnumber);i++);if(!strcmp(flight[i].flightnumber,flightnumber)){if(flight[i].remainders==0)printf("对不起!没有票.\n");else{printf("请输入订票数量:");do{scanf("%d",&amount);if(amount<0||amount>flight[i].remainders)printf(" 输入错误!\n 请输入正确的数据:");}while(amount<0||amount>flight[i].remainders);for(j=0;j<flight[i].maxamount&&(amount--)>0;j++)if(flight[i].seatstate[j]==0){flight[i].seatstate[j]=1;flight[i].remainders--;}save(fp);}}elseprintf("没有找到“%s”航班!\n",flightnumber);printf("是否继续订票?(Y/N):");do{flag=getchar();}while(!(flag=='Y'||flag=='y'||flag=='N'||flag=='n'));}while(flag=='y'||flag=='Y');}/****************************退票函数******************************/void sendbacktickets(){FILE *fp=NULL;unsigned i,j,seatnumber;char flag,flightnumber[20];printf("****************************欢迎进入退票系统***********************\n");do{open(fp);printf("请输入航班号:");scanf("%s",flightnumber);for(i=0;i<FLIGHTAMOUNT&&strcmp(flight[i].flightnumber,flightnumber);i++);if(!strcmp(flight[i].flightnumber,flightnumber)){printf("请输入座位号:");do{scanf("%d",&seatnumber);if(seatnumber<0||seatnumber>flight[i].maxamount)printf("输入错误!\n请重新输入座位号:");}while(seatnumber<0||seatnumber>flight[i].maxamount);for(j=0;j<flight[i].maxamount&&seatnumber!=j+1;j++);if((seatnumber==j+1)&&(flight[i].seatstate[j]==1)){flight[i].seatstate[j]=0;flight[i].remainders++;save(fp);}elseprintf(" 输入错误!\n");}elseprintf(" 没有找到“%s”航班!\n",flightnumber);printf("是否继续退票?(Y/N):");do{flag=getchar();}while(!(flag=='Y'||flag=='y'||flag=='N'||flag=='n'));}while(flag=='y'||flag=='Y');}五、效果图1.主菜单以及信息管理界面2.信息浏览界面3订票系统界面.4.退票系统界面六、总结和体会通过本次实践我们收获颇多。
某公司每天有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、对航班信息进行排序与查找。
三、运行环境CPU:奔腾3;操作系统:Windows 98;编程工具:TC2.0。
四、算法设计思想1、设计思路根据题目所要求,程序必须实现航班信息的录入和查询。
程序首先定义了一个用于储存航班信息的数据类型,再由用户录入航班数据,在录入的同时并对数据进行排序,最后执行数据查询和检索。
在查询设计中,使用二分查找法对排好序的航班数据按航班号实现快速查找,按起点站、终点站、起飞时间、到达时间查找的则采用顺序查询方法。
2、流程图3、各函数说明(1)、一趟数字字符分配函数void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e)(2)、一趟数字字符收集函数void collect(slnode *sl,int i,arrtype_n f,arrtype_n e)(3)、一趟字母字符分配函数void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e)(4)、一趟字母字符收集函数void collect_c(slnode *sl,int i,arrtype_c f,arrtype_c e)(5)、链式基数排序函数void radixsort(sllist &l)(6)、按指针链重新整理静态链表void arrange(sllist &l)//重新整理(7)、二分查找函数int binsearch(sllist l,keytype key[]) (8)、顺序查找函数void seqsearch(sllist l,keytype key[],int i) (9)、查询检索菜单控制程序void searchcon(sllist l)(10)、录入航班数据函数void inputdata(sllist &l)(11)、主函数void main()五、源代码#include "stdafx.h"#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];int keynum;int length;}sllist;typedef int arrtype_n[radix_n];typedef int arrtype_c[radix_c];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;}}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<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;}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;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;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,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):");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%-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\n\n 再见\n\n\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(){sllist l;l.keynum=6;l.length=0;inputdata(l);searchcon(l);}六、运行结果1、录入航班信息编译后运行,显示:航班号起点站终点站航班期起飞时间到达时间机型票价录入:MU4594昆明西安 1.3.5.6 10151140 3281160↙显示:继续输入吗?y/n:录入:y↙显示:航班号起点站终点站航班期起飞时间到达时间机型票价录入:SC7425青岛海口 1.3.6 19202120 DH41630↙显示:继续输入吗?y/n:录入:n↙2、航班信息查询录入航班信息后,屏幕显示:********************* 航班信息查询系统********************** 1.航班号** 2.起点站** 3.终点站** 4.起飞时间** 5.到达时间** 0.退出系统*********************请选择(0-5):录入:1↙显示:输入要查询的航班号(字母要大写):录入:MU4594↙显示:航班号起点站终点站航班期起飞时间到达时间机型票价MU4594-昆明-西安-1.3.5.6 -1015 -1140 -328 -1160 录入:2↙显示:输入要查询的航班起点站名:录入:青岛↙显示:航班号起点站终点站航班期起飞时间到达时间机型票价SC7425-青岛-海口-1.3.6 -1920-2120 -DH4-1630↙录入:2↙显示:输入要查询的航班起点站名:录入:广州↙显示:* 无此航班信息,可能是输入错误!*七、收获与体会本设计的重点和难点是在于对航班数据的排序和查找,以链式基数排序为主线,用到了二分查找和顺序查找等知识,还有建立静态链表等。
航空公司航班信息管理系统设计一、航空公司航班信息管理系统设计航空公司是一个庞大的运行系统,需要有效的管理和跟踪航班信息。
为了满足这个需求,设计一个高效的航班信息管理系统是至关重要的。
本文将详细介绍航空公司航班信息管理系统的设计。
二、系统概述航空公司航班信息管理系统是一个集中管理和监控航班信息的系统。
它主要包括航班信息录入、查询和统计分析等功能。
通过该系统,航空公司能够实时查看航班信息、管理航班计划、进行航班调度和安排,并提供准确的航班信息给乘客和其他相关人员。
三、系统功能设计航空公司航班信息管理系统具备以下功能:1.航班信息录入:系统操作员可以录入航班信息,包括出发地、目的地、起飞时间、到达时间、航班号、机型等。
录入信息时要求填写必要的信息,并对信息进行有效性检查。
2.航班信息查询:系统用户可以通过航班号、出发地、目的地、起飞时间等关键字进行航班信息查询。
查询结果包括航班详情、机型、座位数、预计到达时间等。
3.航班信息统计:系统能够根据时间段、航班号等维度进行航班信息统计和分析。
统计结果可以通过图表和报表的形式展示,方便航空公司管理层对航班数据进行分析和决策。
4.航班状态更新:系统能够及时更新航班的状态信息,如航班延误、取消等。
系统会自动发送通知给相关人员,如机组人员、地面服务人员以及乘客。
5.乘客信息管理:系统可以管理乘客的个人信息、预订记录和乘坐航班的记录。
乘客可以通过系统进行航班预订、座位选择和票务管理。
6.机组信息管理:系统可以管理机组人员的信息和排班情况。
系统可以根据航班计划自动生成机组排班,并实时更新机组人员的航班信息。
四、系统设计与实现航空公司航班信息管理系统采用客户端-服务器架构进行设计与实现。
具体实现方式可以采用Java或C#等编程语言开发,使用MySQL等数据库存储航班信息和乘客信息。
系统的客户端包括操作员端和乘客端。
操作员端提供录入、查询和统计分析等功能;乘客端提供航班查询、订票、座位选择、退票等功能。
掌上东航项目介绍流程掌上东航是中国东方航空公司推出的一款手机应用程序,旨在为乘客提供更便捷、高效的航空服务体验。
通过掌上东航,乘客可以实现在线选座、值机、订餐、查询航班信息等多种功能,极大地提升了乘客出行的便利性和舒适度。
下面我们将介绍掌上东航的使用流程,帮助大家更好地了解和使用这款应用程序。
1. 下载与注册首先,乘客需要在手机应用商店中搜索“掌上东航”,并下载安装到手机中。
安装完成后,打开应用程序,按照提示进行注册和登录。
注册时需要填写个人信息和联系方式,并设置登录密码,注册完成后即可登录掌上东航。
2. 查询航班信息登录后,乘客可以在首页上方的搜索栏中输入航班号或航线信息,即可查询到所需航班的详细信息,包括起降时间、舱位情况、机型等。
乘客还可以通过“我的航班”功能添加关注的航班,方便随时了解航班动态。
3. 在线选座在航班信息页面,乘客可以选择“在线选座”功能,根据自己的喜好和需求,在机舱平面图上选择合适的座位。
选择完成后,系统会自动为乘客预留所选座位,方便乘客在值机时快速取得登机牌。
4. 值机与电子登机牌乘客可以在航班起飞前24小时内进行在线值机,选择座位并支付相应费用后,系统会生成电子登机牌,乘客可以通过掌上东航保存和查看电子登机牌,方便快捷地完成登机手续。
5. 订餐服务在航班信息页面,乘客可以选择“订餐服务”,根据航班时间和个人口味,预订喜欢的餐食。
支付完成后,系统会将订餐信息同步到航班服务系统中,乘客在飞行途中即可享用到订购的美食。
6. 积分查询与兑换通过掌上东航,乘客可以方便地查询自己的东方万里行会员积分,并进行积分兑换。
在“我的账户”页面,乘客可以查看积分明细和兑换记录,并进行相应的积分兑换操作。
7. 客户服务与反馈在使用过程中,如果乘客遇到问题或有意见建议,可以通过掌上东航的客户服务功能进行咨询和反馈。
客户服务人员会及时处理乘客的问题和意见,并提供相应的帮助和解决方案。
总结通过上述流程的介绍,我们可以看到,掌上东航为乘客提供了多种便捷的航空服务功能,极大地提升了乘客的出行体验。
中航信的ICS、CRS和DCS系统什么是GDS,全称是Global Distribution System,即全球分销系统,是基于计算机技术支持下的大规模销售网络。
目前国际上的GDS分二类:1.既可以销售航空公司的产品(机票)也可以销售酒店的产品(客房),如SABRE、GALILEO、AMADEUS、WORLDSPAN和中国民航GDS系统(中航信Travelsky)。
2.只可以销售酒店产品,如:UTELL、ACCOR和一些酒店集团自己的销售网络,如:假日集团、喜来登、希尔顿。
中航信GDS系统的运行方式说明CRS全称是Computer Reservation System,即计算机分销系统。
CRS主要功能是为代理人提供航班可利用情况查询、航段销售、订座记录、电子客票预订,旅游产品等服务。
ICS全称是Inventory Control System,即航空公司人员使用的航空公司订座系统。
ICS是一个集中式、多航空公司的系统。
每个航空公司享有自己独立的数据库、独立的用户群、独立的控制和管理方式,各种操作均可以加以个性化,包括航班班期、座位控制、运价及收益管理、航空联盟、销售控制参数等信息和一整套完备的订座功能引擎。
DCS全称是Departure Control System,即机场人员使用的离港控制系统。
DCS 是为机场提供旅客值机、配载平衡、航班数据控制、登机控制联程值机等信息服务,可以满足值机控制、装载控制、登机控制以及信息交换等机场旅客服务所需的全部功能。
根据上面图示,一名旅客来代理处购机票。
1.此时机票代理处首先要做的就是在CRS系统为旅客查询航班信息,那么CRS系统的航班信息是从何而来的呢。
CRS系统航班信息是由ICS系统得来,ICS系统的主要功能就是建立,控制和销售航班,所以航空公司就会把所建立好的航班信息传送到CRS以便代理人查询销售航班。
2.旅客这时要购票,代理处需要在CRS系统为其建立旅客订座信息,当我们建立好记录并封口后,旅客的订座信息会传送到ICS系统,告知航空公司有旅客订取了某某航班的某某舱位。
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. 功能模块3.1 航班查询用户可以通过输入航班号码、出发地、目的地以及日期等信息进行航班查询。
系统将根据用户提供的条件进行快速检索,并显示相关的航班信息,包括航班号码、起降时间、航班状态等。
3.2 航班推荐系统根据用户的历史查询记录以及喜好进行智能分析,提供符合用户习惯的航班推荐。
这一功能可以帮助用户节省时间,避免不必要的重复操作。
3.3 票价查询用户可以查询特定航班的票价信息,包括经济舱、商务舱等不同舱位的价格。
系统将实时获取该航班的票价数据,并呈现给用户。
3.4 预订功能用户可以选择心仪的航班,并进行预订。
系统支持多种支付方式,包括信用卡、支付宝等,以提供便捷的购票体验。
4. 技术实现4.1 前端设计系统的前端采用用户友好的界面设计,通过直观的页面布局、清晰的标签分类以及简洁的操作流程,使用户能够快速上手并轻松完成各种操作。
4.2 后台开发系统的后台采用高效的服务器架构和数据库设计。
服务器端采用高性能的框架,保证数据交互的速度和稳定性。
数据库采用面向对象的设计,保证数据的完整性和一致性。
4.3 数据同步机制为了保证航班信息的实时性,系统采用数据同步机制。
系统会定期与航空公司的数据库进行同步,以获取最新的航班信息,并及时更新到系统的数据库中。
5. 使用方法使用者只需下载并安装航班信息查询与检索系统的应用程序,然后打开应用程序即可。
用户可以通过简单的注册和登录过程完成个人信息的录入。
一旦用户登录成功,系统将展示主页面,用户可以自由选择查询航班,查看航班详情并进行预订、购票等操作。
客舱网统一登录概述:随着数字化时代的到来,互联网技术在旅行和航空业务领域的应用日益普及。
航空公司为了提供更好的旅行体验和方便的管理操作,开始引入客舱网统一登录系统。
客舱网统一登录系统是一个集成多个航空公司服务的平台,旨在为乘客提供一站式的登录和管理解决方案。
通过客舱网统一登录系统,乘客可以方便地访问航空公司的各种服务,如查询航班信息、预订机票、选座、办理在线值机等操作。
特点:1. 统一登录:客舱网统一登录系统允许乘客使用一个账号和密码登录,即可访问多个航空公司的服务。
无需记住多个账号和密码,大大提高了用户体验。
2. 一站式服务:客舱网统一登录系统整合了多家航空公司的服务,通过一个平台即可满足乘客的各种需求。
无需跳转多个网站或应用程序,节省了时间和精力。
3. 个性化推荐:客舱网统一登录系统可以根据乘客的历史记录和偏好,提供个性化的服务和推荐。
通过分析乘客的行为数据,系统可以向乘客推荐适合的机票、酒店和旅行服务,提高了用户满意度。
4. 多平台适配:客舱网统一登录系统可以在多种终端上使用,包括电脑、手机和平板电脑。
无论乘客在哪个终端上登录,都能够方便地获取航空公司的服务。
实施步骤:1. 航空公司接入:航空公司需要与客舱网统一登录系统提供商进行合作,将自身的服务接入系统中。
这包括航班信息、机票预订、值机、选座等服务内容。
2. 用户注册:乘客需要在客舱网统一登录系统上注册一个账号,填写相关个人信息并设置账号密码。
注册完成后,乘客可以使用该账号登录系统。
3. 航班查询和预订:乘客登录后,可以查看不同航空公司的航班信息,包括航班时刻表、航班状态、航线等。
乘客可以根据需求选择适合自己的航班,并进行在线预订。
4. 办理在线值机:乘客可以通过客舱网统一登录系统办理在线值机手续。
乘客可以选择座位、打印登机牌等操作,提前完成值机,避免排队等待。
5. 各类服务管理:乘客可以在客舱网统一登录系统上管理自己的航空服务。
包括修改个人信息、查看历史订单、申请退票等功能。
eterm操作流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!以下是一般情况下使用 Eterm 系统的操作流程:1. 登录系统:打开 Eterm 客户端软件。
非常准航班查询《非常准航班查询》随着全球化的快速发展和人们生活水平的提高,越来越多的人选择旅行。
而航班作为人们出行的首选交通工具之一,也受到越来越多人的青睐。
准确地查询航班信息,对于旅客来说是至关重要的。
而现如今,有了非常准航班查询系统的出现,让旅客可以更加方便地获得航班相关信息。
非常准航班查询系统是一种利用现代信息技术,提供航班查询服务的工具。
通过该系统,旅客可以在任何时间、任何地点查询各航空公司的航班信息,包括起飞时间、到达时间、班次、机票价格等。
相比传统的查询方式,非常准航班查询系统具有许多优势。
首先,非常准航班查询系统的查询结果非常准确可靠。
系统会与各航空公司建立实时的信息交互通道,获取最新的航班信息。
这意味着旅客可以获得最准确、最实时的航班信息,避免了因为误差而导致的不必要麻烦。
无论是航班延误、调整还是取消,旅客都能第一时间得知,并进行及时的行程调整。
其次,非常准航班查询系统具有极高的查询速度和便捷性。
旅客只需在电脑、手机等设备上输入出发地和目的地,点击查询按钮,系统就可以快速地呈现结果。
旅客不再需要花费大量时间在电话、柜台等地方进行查询,节省了等待和排队的时间。
同时,系统支持多种查询方式,如按航空公司、出发时间段、航班号等进行筛选,让旅客能够更加方便地找到满足自己需求的航班。
此外,非常准航班查询系统还提供了更多的服务功能。
旅客在查询航班信息的同时,还可以了解各航班所属航空公司的介绍、机票预订、机场实时信息等。
系统会根据用户的需求,给出相应的推荐和指导,方便旅客更好地安排行程。
系统还支持在线购票和在线值机等功能,让旅客足不出户就能完成航班相关事务。
非常准航班查询系统是一种为旅客提供方便、快捷服务的好工具。
然而,系统也存在一些问题需要关注。
首先,系统的数据安全问题需要得到保证,避免个人信息被泄露。
其次,系统需要经常更新和维护,以确保查询结果的准确性和实时性。
最后,用户界面的友好性也需要进一步优化,让旅客能够更加轻松地使用。
飞机航班信息查询2篇第一篇:机票查询系统的使用随着旅游业的发展,越来越多的人开始选择乘飞机出行,因此查询飞机航班信息成为了其出行前必须要做的功课。
而如何使用机票查询系统来查询所需要的航班信息,则是解决出行问题的第一步。
机票查询系统是一种查询航班信息的工具,它可以帮助我们找到最佳的航班选择,包括航班号、航班时间、航班路径、机场等信息。
现在几乎所有的航空公司和在线旅游平台都提供了自己的航班查询系统,这些系统以其便捷快速的特点收到了广大用户的欢迎。
使用机票查询系统,我们只需要按照以下步骤即可轻松查询所需的航班信息:1. 打开查询系统首先需要选择一家航空公司或在线旅游平台,然后打开它的航班查询页面。
2. 输入查询条件接着我们需要输入查询条件,包括出发地、目的地、出行日期等信息。
如果需要返程机票,则还需要选择返程日期。
3. 搜索航班信息在输入完查询条件后,机票查询系统会自动搜索与所输入条件匹配的航班信息。
此时,我们可以根据自己的需求进一步筛选和排序搜索结果,以找到最适合自己的航班选择。
4. 选择航班当找到所需的航班时,我们可以直接点击预订按钮,然后输入个人信息并付款即可完成预订。
总之,使用机票查询系统查询航班信息是一种非常方便和快捷的方式,它不仅可以大大缩短我们查询航班信息的时间,而且可以帮助我们找到最佳的航班选择。
无论您是旅游、商务出差或探亲访友,机票查询系统都会是你出行前必不可少的工具。
第二篇:如何获取最新的航班信息在乘坐飞机时,获取最新的航班信息是非常重要的。
因为航班信息的变更可能会对我们的出行造成影响,而了解最新的航班信息也能帮助我们更好地安排出行计划。
那么,如何获取最新的航班信息呢?1. 查询航空公司网站或APP航空公司通常会在其官方网站或APP上发布最新的航班信息。
通过登录这些网站或APP,我们可以随时了解航班的起飞时间、到达时间、延误情况、取消情况等信息。
此外,还可以通过航空公司客服电话咨询最新的航班信息。
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■,已。
航班动态管理系统设计与实现随着航空旅游的普及和航空运输的发展,航班数量以及旅客数量都在不断增加,对于航空公司而言,航班动态管理是非常重要的一项工作。
航班动态管理系统是一个能够实时监控、调度航班的重要工具和平台。
本文将讨论航班动态管理系统的设计和实现,包括系统的架构、功能、技术支持等方面的内容。
一、系统架构航班动态管理系统的架构一般包括前端、后端和数据库三个部分。
前端主要负责与用户的交互和数据的展示,后端则负责航班数据的获取和更新,数据库则存储系统所需的各种数据信息。
前端和后端的数据传递通常采用RESTful API架构。
前端一般采用Web端设计,通过前端技术(HTML、CSS、JS等)与用户进行交互,同时展示数据。
前端还需要实现用户认证、权限管理、展示航班动态等功能。
后端主要负责航班数据的获取与更新,包括航班计划、班次、机位、终端等各种信息。
同时,后端还需要实现各种算法和规则,比如航班延误的判断与处理、航班调度优化等。
后端通常采用Java、Python等编程语言开发。
数据库是整个系统的核心,存储着系统所需的各种数据信息。
在设计数据库时,需要充分考虑数据的完备性、逻辑结构、数据冗余等问题。
数据库通常采用MySQL、Oracle、MongoDB等关系型或非关系型数据库。
二、系统功能1. 航班查询系统需要提供航班查询功能,包括航班状态、计划时间、实际时间、机位、终端等信息的查询。
用户可以通过不同的维度进行查询,如起飞地、目的地、航班号、日期等。
2. 航班调度系统需要对航班进行调度和管理,包括起降时间的规划、航班的候机楼、机位的安排等。
同时,系统还需要对航班的延误情况进行监控和处理,如提前调整航班时间、更换机位等。
3. 航班计划管理系统需要对航班计划进行管理,包括计划时间的制定、班次的安排、机位的分配等。
同时,系统还需要对计划变更的情况进行处理,如航班取消、航班调整等。
4. 航班资源管理系统需要对航班资源进行管理,包括机位、候机楼、终端等资源的分配、调整和协调。
基于web的航班信息查询系统设计与实现的开题报告一、选题背景随着航空业的飞速发展,越来越多的人选择乘坐飞机出行。
为了更好地满足旅客对航班信息的需求,航空公司和机场需要提供高效、精准的航班信息查询服务。
传统的航班信息查询方式多为电话咨询或到机场柜台查询,对于旅客来说不够便捷、高效。
因此,基于Web的航班信息查询系统得到了越来越广泛的应用。
二、选题意义随着互联网技术的普及,越来越多的人使用互联网查询航班信息。
基于Web的航班信息查询系统能够快速、方便地为用户提供航班信息服务,提高了处理查询请求的效率和精度,大大方便了用户的生活。
对于航空公司和机场来说,基于Web的航班信息查询系统是一种重要的客服渠道,更好地服务旅客。
三、设计方案1.系统需求分析:本航班信息查询系统提供了航班信息的多功能搜索,让用户更加方便、快捷地查询到信息。
系统能够根据用户的搜索条件,自动筛选出满足用户条件的航班信息,并展示其详细信息。
同时,系统还提供了可以通过筛选条件筛选出符合要求的航班信息的功能,方便用户快速找到满足自己要求的航班。
2.系统设计方案:(1)系统架构设计:本系统采用B/S架构,由前端页面、服务器端处理程序和数据库三部分组成。
前端页面采用HTML、CSS、JavaScript等技术实现,服务器端采用Java语言开发,Hibernate框架进行ORM操作,并采用Spring框架进行系统集成、事务管理和面向接口设计等,同时使用MySQL数据库进行数据存储。
(2)系统功能设计:系统共有用户和管理员两种角色,其中用户可以查询航班信息、修改个人信息等功能。
管理员则可以对系统的航班信息进行增删改、对用户信息进行审核和管理等功能。
四、预期成果通过本项目的实现,预期达到以下目标:(1)实现基于Web的航班信息查询系统。
(2)提高航班信息查询的效率和精度。
(3)提高航空公司和机场的服务水平。
五、进度计划本项目预计总时长为20周,按以下进度计划进行:(1)前期准备:1周(2)需求分析与设计:2周(3)系统框架搭建与数据库设计:2周(4)前端页面设计与程序编写:4周(5)后端程序编写与测试:6周(6)系统集成测试与调试:3周(7)系统上线与验收:2周以上就是本项目的开题报告,期待能够顺利地完成该项目,实现预期成果。
航班查询系统一、背景、目的和意义二、主要功能描述三、软/硬件环境四、数据库设计五、界面设计六、编程过程中所遇难题七、分工协作八、收获一、背景:学习了数据库软件SQL 2005和Microsoft Visual Studio 2008后想到了用这2个软件做这个航班查询系统,通过ASP做出SQL的界面并导入存储过程对功能进行实现!目的和意义:机票查询系统是为机场工作人员和客户提供机票信息查询等与机票相关内容和管理的系统,它具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的优点.它除克服了存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性。
它为企业的决策层提供准确、精细、迅速的机票销售信息,为乘客出行提供方便,便于机场工作人员对机票信息进行管理,提高了机场工作人员对机票管理的工作效率。
为便于旅客通过代售点查询航班信息,要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
航班查询系统需要完成功能主要有:(1)管理员对航班信息的输入、修改和查询,对用户信息的查询。
(2)旅客信息的注册和登录及对航班信息的查询。
数据分析航班信息(航班号,机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)旅客信息(用户名,密码,性别,年龄)用户活动分析用户通过系统查询航班信息。
用户活动图:二、主要功能描述航班信息维护模块提供航班信息的录入、删除、修改。
可以录入航班情况。
机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数。
当航班信息改变时可以修改航班信息数据库。
航班业务处理模块提供查询航班剩余票数功能。
客户可以登录航班购票系统进行查询;如果该航班已经无票,可以换乘。
系统功能图系统流程图数据流图1:三、软/硬件环境:使用Microsoft Visual Studio 2008和Microsoft SQL Server 2005电脑是windows7 64bit操作系统。
4、数据字典1)数据项表2-1数据项名含义说明数据类型长度说明航班号机型航班信息航班信息varcharvarchar5010航班号码航班所属机型航空公司航线信息char10航班所属公司起飞城市到达城市起飞时间到达时间总票数剩余票数UsernamePswSexAge ulevel 航线信息航线信息航班信息航班信息航班信息航班信息用户信息用户信息用户信息用户信息用户信息charcharcharcharvarcharvarcharcharcharcharcharchar1010101050501010101010飞机起飞城市飞机到达城市飞机起飞时间飞机到达时间航班的总票数航班的剩余票数用户名密码性别年龄用户等级2)数据结构表2-2名称简述组成company ticket 定义公司相关信息定义机票相关信息公司名,公司地址,公司代码,公司电话机票号,座位,票价,航班号Flight air 定义航班相关信息定义飞机相关信息航班号,出发地,到达地,出发时间,到达时间,公司代码,航班号航程,飞机号,票价3) 数据流4) 数据存储表2-3名称简述组成Company Flight ticket 定义公司相关信息定义机票相关信息CID,Cname, Caddress, CphoneticketID,price,seat number,Flight numberCustomer Air 定义旅客相关信息定义飞机相关信息ID number,name,Pnumber,AddressAir number, Voyage, price5)处理过程5、概念结构设计概念结构设计的方法概念设计阶段采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。
对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
概念结构设计的步骤第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。
因此我们们先逐一的设计分E-R图。
第二步是进行视图的集成:各子系统的E-R图设计好之后,下一步就是要将所有的分E-R 图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。
概念模型设计E—R图逻辑设计将ER图转换为关系模式顾客(用户名,密码,性别,年龄)。
航班(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)。
Customer(Username,psw,sex,age,ulevel)Flight(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)下划线标注的属性为主码。
以上关系模式均为BCNF。
物理设计一、为了提高在表中搜索元祖的速度,在实际实现的时候应该基于码机建立索引。
各表中简历索引的表项:(1)Customer(Username)(2)Flight(航班号)二、[用SQL实现设计]1、建立Customer表CREATE TABLE [dbo].[用户表]([username] [char](10)COLLATE Chinese_PRC_CI_AS NOT NULL,[psw] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[sex] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[age] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[ulevel] [char](10)COLLATE Chinese_PRC_CI_AS NULL,CONSTRAINT [PK_用户表] PRIMARY KEY CLUSTERED([username] ASC)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY])ON [PRIMARY]2、建立Airplane表CREATE TABLE [dbo].[Airplane]([航班号] [varchar](50)COLLATE Chinese_PRC_CI_AS NOT NULL,[机型] [varchar](10)COLLATE Chinese_PRC_CI_AS NULL,[航空公司] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[起飞城市] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[到达城市] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[起飞时间] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[到达时间] [char](10)COLLATE Chinese_PRC_CI_AS NULL,[总票数] [varchar](50)COLLATE Chinese_PRC_CI_AS NULL,[剩余票数] [varchar](50)COLLATE Chinese_PRC_CI_AS NULL,CONSTRAINT [PK_Airplane] PRIMARY KEY CLUSTERED([航班号] ASC)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY])ON [PRIMARY]3、顾客操作(1) 注册 (register)INSERT INTO 用户表(Username,psw,sex,age,ulevel)VALUES(#Username,#psw,#sex,#age,#ulevel);(2) 注销 (unregister)DELETE CustomerWHERE(Username=#Username);本系统涉及到的存储过程:这是注册界面,代码如下:using System;using ;using ;using ;using ;using ;using partial class Default2 : protected void Page_Load(object sender, EventArgs e) {();}protected void Button2_Click(object sender, EventArgs e){("");}protected void Button1_Click(object sender, EventArgs e){string Add = "注册";string constr = ["sss"].ToString();SqlConnection conn = new SqlConnection();= constr;if !={();}SqlCommand cmd = new SqlCommand(Add, conn);= ; 注册](@username char(10),@psw char(10),@sex char(10),@age char(10),@ulevel char(10))asbegininsert into用户表(username,psw,sex,age,ulevel)values(@username,@psw,@sex,@age,@ulevel)endGOSET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO这是登录界面登录时必须选对用户等级,不然会报错,登录界面代码如下:using System;using ;using ;using ;using ;using partial class_Default : protected void Page_Load(object sender, EventArgs e) {();}protected void Button2_Click(object sender, EventArgs e){("");}protected void Button1_Click(object sender, EventArgs e){string Add = "CheckUser";string constr = ["sss"].ToString();SqlConnection conn = new SqlConnection();= constr;if !={();}SqlCommand cmd = new SqlCommand(Add, conn);= ;SqlParameter Parameter1 = new SqlParameter("@username", , 10);SqlParameter Parameter2 = new SqlParameter("@psw", , 10);SqlParameter Parameter3 = new SqlParameter("@ulevel", , 10);= ;= ;= ;DataTable table = new DataTable();SqlDataAdapter adapter = new SqlDataAdapter(cmd);(table);SqlDataReader dr = (); CheckUser]@username char(10),@psw char(10),@ulevel char(10)ASBEGINselect*from用户表where username=@username and psw=@psw and ulevel=@ulevel END管理员进去之后可以查询航班表,用户表和管理航班,对信息进行添加修改这里是通过拉控件方式做的,如下图:通过拉FormView和SqlDataSource两个控件,用FormView绑定SqlDataSource,然后在SqlDataSource中配置数据源,然后新建连接如下图:选择存储过程点击完成即可,用户表则是GridView和SqlDataSource控件,方法类似就不再列举!管理员界面这里涉及到2个存储过程:dbo.查看航班表dbo.查看用户表航班表的程序:<asp:SqlDataSource ID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>"SelectCommand="查看航班表" SelectCommandType="StoredProcedure"></asp:SqlDataSource>用户表的程序:<asp:SqlDataSource ID="SqlDataSource2"runat="server"ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>"SelectCommand="查看用户表" SelectCommandType="StoredProcedure"></asp:SqlDataSource>这是航班管理界面通过新建可以插入新的信息!管理航班的程序:<asp:SqlDataSource ID="SqlDataSource1"runat="server"ConflictDetection="CompareAllValues"ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>"DeleteCommand="DELETE FROM [Airplane] WHERE [航班号] = @original_航班号 AND (([机型] = @original_机型) OR ([机型] IS NULL AND @original_机型 IS NULL)) AND (([航空公司] =@original_航空公司) OR ([航空公司] IS NULL AND @original_航空公司 IS NULL)) AND (([起飞城市] = @original_起飞城市) OR ([起飞城市] IS NULL AND @original_起飞城市 IS NULL)) AND (([到达城市] = @original_到达城市) OR ([到达城市] IS NULL AND @original_到达城市 IS NULL)) AND (([起飞时间] = @original_起飞时间) OR ([起飞时间] IS NULL AND @original_起飞时间 IS NULL)) AND (([到达时间] = @original_到达时间) OR ([到达时间] IS NULL AND @original_到达时间 IS NULL)) AND (([总票数] = @original_总票数) OR ([总票数] IS NULL AND @original_总票数 IS NULL)) AND (([剩余票数] =@original_剩余票数) OR ([剩余票数] IS NULL AND @original_剩余票数 IS NULL))"InsertCommand="INSERT INTO [Airplane] ([航班号], [机型], [航空公司], [起飞城市], [到达城市], [起飞时间], [到达时间], [总票数], [剩余票数]) VALUES (@航班号, @机型, @航空公司, @起飞城市, @到达城市, @起飞时间, @到达时间, @总票数, @剩余票数)"OldValuesParameterFormatString="original_{0}"SelectCommand="查看信息"UpdateCommand="UPDATE [Airplane] SET [机型] = @机型, [航空公司] = @航空公司, [起飞城市] = @起飞城市, [到达城市] = @到达城市, [起飞时间] = @起飞时间, [到达时间] = @到达时间, [总票数] = @总票数, [剩余票数] = @剩余票数 WHERE [航班号] = @original_航班号 AND (([机型] =@original_机型) OR ([机型] IS NULL AND @original_机型 IS NULL)) AND (([航空公司] = @original_航空公司) OR ([航空公司] IS NULL AND @original_航空公司 IS NULL)) AND (([起飞城市] = @original_起飞城市) OR ([起飞城市] IS NULL AND @original_起飞城市 IS NULL)) AND (([到达城市] = @original_到达城市) OR ([到达城市] IS NULL AND @original_到达城市 IS NULL)) AND (([起飞时间] = @original_起飞时间) OR ([起飞时间] IS NULL AND @original_起飞时间 IS NULL)) AND (([到达时间] = @original_到达时间) OR ([到达时间] IS NULL AND @original_到达时间 IS NULL)) AND (([总票数] = @original_总票数) OR ([总票数] IS NULL AND @original_总票数 IS NULL)) AND (([剩余票数] = @original_剩余票数) OR ([剩余票数] IS NULL AND @original_剩余票数 IS NULL))"SelectCommandType="StoredProcedure"><DeleteParameters><asp:Parameter Name="original_航班号"Type="String"/><asp:Parameter Name="original_机型"Type="String"/><asp:Parameter Name="original_航空公司"Type="String"/><asp:Parameter Name="original_起飞城市"Type="String"/><asp:Parameter Name="original_到达城市"Type="String"/><asp:Parameter Name="original_起飞时间"Type="String"/><asp:Parameter Name="original_到达时间"Type="String"/><asp:Parameter Name="original_总票数"Type="String"/><asp:Parameter Name="original_剩余票数"Type="String"/></DeleteParameters><UpdateParameters><asp:Parameter Name="机型"Type="String"/><asp:Parameter Name="航空公司"Type="String"/><asp:Parameter Name="起飞城市"Type="String"/><asp:Parameter Name="到达城市"Type="String"/><asp:Parameter Name="起飞时间"Type="String"/><asp:Parameter Name="到达时间"Type="String"/><asp:Parameter Name="总票数"Type="String"/><asp:Parameter Name="剩余票数"Type="String"/><asp:Parameter Name="original_航班号"Type="String"/><asp:Parameter Name="original_机型"Type="String"/><asp:Parameter Name="original_航空公司"Type="String"/><asp:Parameter Name="original_起飞城市"Type="String"/><asp:Parameter Name="original_到达城市"Type="String"/><asp:Parameter Name="original_起飞时间"Type="String"/><asp:Parameter Name="original_到达时间"Type="String"/><asp:Parameter Name="original_总票数"Type="String"/><asp:Parameter Name="original_剩余票数"Type="String"/></UpdateParameters><InsertParameters><asp:Parameter Name="航班号"Type="String"/><asp:Parameter Name="机型"Type="String"/><asp:Parameter Name="航空公司"Type="String"/><asp:Parameter Name="起飞城市"Type="String"/><asp:Parameter Name="到达城市"Type="String"/><asp:Parameter Name="起飞时间"Type="String"/><asp:Parameter Name="到达时间"Type="String"/><asp:Parameter Name="总票数"Type="String"/><asp:Parameter Name="剩余票数"Type="String"/></InsertParameters></asp:SqlDataSource>这里是系统自动生成的导入存储过程的代码有Update,Delete,Insert插入,删除,修改这些功能的代码这是用户登陆后的界面,,输入条件后会成功显示如下图:按机型查询的过程:<asp:SqlDataSource ID="SqlDataSource1"runat="server"ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>"SelectCommand="机型"SelectCommandType="StoredProcedure"><SelectParameters><asp:ControlParameter ControlID="TextBox1"Name="机型"PropertyName="Text"Type="String"/></SelectParameters></asp:SqlDataSource>按航班号查询的过程<asp:SqlDataSource ID="SqlDataSource2"runat="server"ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>"SelectCommand="航班号"SelectCommandType="StoredProcedure"><SelectParameters><asp:ControlParameter ControlID="TextBox2"Name="航班号"PropertyName="Text"Type="String"/></SelectParameters></asp:SqlDataSource>按目的地查询的过程<asp:SqlDataSource ID="SqlDataSource3"runat="server"ConnectionString="<%$ ConnectionStrings:AirplaneConnectionString %>"SelectCommand="目的地"SelectCommandType="StoredProcedure"><SelectParameters><asp:ControlParameter ControlID="TextBox3"Name="到达城市"PropertyName="Text"Type="String"/></SelectParameters></asp:SqlDataSource>这3个过程涉及到3个存储过程:机型的存储过程:create proc [dbo].[机型](@机型char(10))asselect*from Airplane where(机型=@机型)return航班号的存储过程:create proc [dbo].[航班号](@航班号char(10))asselect*from Airplane where(航班号=@航班号)return目的地的存储过程:create proc [dbo].[目的地](@到达城市char(10))asselect*from Airplane where(到达城市=@到达城市)return六、编程过程中所遇难题:编程过程中遇到各种各样的问题,其中有3个大问题:1、导入数据库后连接不上数据库,查了1个小时的网,对远程连接做了修改并将regedit中star的键值修改为2才解决。