航班查询系统
航班信息查询系统
《数据结构》课程设计书---飞机订票系统班级:完成人:指导老师:开始时间:完成时间:一、任务内容制作一个简单的飞机订票系统二、功能要求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.航班信息统计:系统能够根据时间段、航班号等维度进行航班信息统计和分析。
统计结果可以通过图表和报表的形式展示,方便航空公司管理层对航班数据进行分析和决策。
4.航班状态更新:系统能够及时更新航班的状态信息,如航班延误、取消等。
系统会自动发送通知给相关人员,如机组人员、地面服务人员以及乘客。
5.乘客信息管理:系统可以管理乘客的个人信息、预订记录和乘坐航班的记录。
乘客可以通过系统进行航班预订、座位选择和票务管理。
6.机组信息管理:系统可以管理机组人员的信息和排班情况。
系统可以根据航班计划自动生成机组排班,并实时更新机组人员的航班信息。
四、系统设计与实现航空公司航班信息管理系统采用客户端-服务器架构进行设计与实现。
具体实现方式可以采用Java或C#等编程语言开发,使用MySQL等数据库存储航班信息和乘客信息。
系统的客户端包括操作员端和乘客端。
操作员端提供录入、查询和统计分析等功能;乘客端提供航班查询、订票、座位选择、退票等功能。
中航信三大系统:ICSCRS和DCS
中航信三大系统:ICSCRS和DCS中航信三大系统:ics、crs和dcs中航信的ics、crs和dcs系统什么就是gds,全称就是globaldistributionsystem,即为全球分销系统,就是基于计算机技术积极支持下的大规模销售网络。
目前国际上的gds分后二类:1.既可以销售航空公司的产品(机票)也可以销售酒店的产品(客房),例如sabre、galileo、amadeus、worldspan和中国民航gds系统(中航信travelsky)。
2.只可以销售酒店产品,例如:utell、accor和一些酒店集团自己的销售网络,例如:假日集团、喜来登、希尔顿。
中航信gds系统的运转方式表明ics全称是inventorycontrolsystem,即航空公司人员使用的航空公司订座系统。
ics是一个集中式、多航空公司的系统。
每个航空公司享有自己独立的数据库、独立的用户群、独立的控制和管理方式,各种操作均可以加以个性化,包括航班班期、座位控制、运价及收益管理、航空联盟、销售控制参数等信息和一整套完备的订座功能引擎。
dcs全称就是departurecontrolsystem,即为机场人员采用的离港控制系统。
dcs就是为机场提供更多旅客值机、人座均衡、航班数据掌控、登机掌控联程值机等信息服务,可以满足用户值机掌控、装载掌控、登机掌控以及信息互换等机场旅客服务所需的全部功能。
根据上面图示,一名旅客去代理处换购机票。
1.此时机票代理处首先要做的就是在crs系统为旅客查询航班信息,那么crs系统的航班信息是从何而来的呢。
crs系统航班信息是由ics系统得来,ics系统的主要功能就是创建,掌控和销售航班,所以航空公司就可以把所创建不好的航班信息传输至crs以便代理人查阅销售航班。
2.旅客这时要购票,代理处需要在crs系统为其建立旅客订座信息,当我们建立好记录并封口后,旅客的订座信息会传送到ics系统,告知航空公司有旅客订取了某某航班的某某舱位。
航班信息查询信息分析
航班信息查询系统分析航班信息查询系统当今乘飞机的人越来越多,人们需要关心了解各类航班的班次、时间、价格、机型等信息,设计一个航班信息查询系统,可供人们查询航班信息,该查询系统可按一个或者多个条件查询,航班信息表的部分内容如下:航班号起点站终点站起飞时间机型票价CA1544 合肥北京10:55 733 960 MU5341 上海重庆14:20 M90 1280 CZ3869 广州南京08:55 733 1010 MU3682 深圳桂林20:50 M90 1060 HUI1863 昆明西安10:15 738 1250 一、需求分析(余子轩、包灵美)制作一个航班信息查询系统,能够完整显示航班信息可以通过航班号、机型、起点站、到达站、起飞时间中的一个或多个条件查询并显示航班动态。
要求进入查询系统后,可以按要求选择需要更新的操作,并按提速输入要更新的航班数据,更新操作完成后返回初始界面。
在选择查询时,能显示输入查询条件的界面并提示输入信息(航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号及票价),若输入的信息符合要求则显示相对应的航班信息,否则显示“没有相关航班”并返回输入界面。
如果主要想实现查询功能,就可以采用顺序的存储结构;想实现更新操作,采用链式存储结构;相比之下,这次主要想实现的功能是查询功能,因此采用顺序存储结构。
考虑到此航班信息查询系统查询功能用到的比较多而更新操作使用的比较少,为了使操作简便,程序利用效率高,使用顺序表来存储航班信息。
本系统采用二分查找法、基数排序法、最高位优先法。
二分查找法也称为折半查找法:将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。
如果x<a[n/2],则我们只要在数组a的左半部继续搜索x (这里假设数组元素呈升序排列)。
如果x>a[n/2],则我们只要在数组a的右半部继续搜索x。
基数排序法:其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。
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还可以提供实时更新,免费提供行李托运查询、机票查找、座位选择等服务。
总结:航班信息查询是我们出行前的一项必要准备工作,通过以上方式,我们可以获得快速、准确、实用的航班信息。
在选择查询方式时,我们需要考虑一些因素,如信息来源的准确性、可靠性,航班信息的及时性以及自身出行的需要等。
航班查询系统
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();
《ACARS航班信息及动态查询系统》飞行员操作手册
ACARS查询航班信息和动态
------------使用说明一.以机尾号查询动态
在ACARS 的FREE TEXT à AIRLINE 中输入
“//SOC REG 机尾号”,
然后发送。
如图:
系统返回的报文如例图。
其中:
AIR 表示实际起飞时间
ON 表示实际落地时间
SCH 表示计划起飞时间ETD 表示预计起飞时间ETA 表示预计落地时间
时间由日期和时刻组成
如果有停机位信息,
停机位将显示在时间之后。
二.以航班号查询航班信息
在ACARS 的FREE TEXT à AIRLINE 中输入
“//SOC FLT 航班号”,
然后发送。
如图:
系统返回报文如例图:
报文中包含了动态信息,
停机位,飞行计划中的油量部分(如果飞行计划已经生成),航班的
订座信息,饮用水加水信息。
GDS系统用户手册
GDS系统用户手册本用户手册旨在帮助GDS系统的用户熟悉系统的功能和操作步骤,以便更高效地使用该系统完成工作任务。
1. 系统概述GDS系统是一种全球分销系统,为旅行社和航空公司提供在线预订和销售机票、酒店、租车等服务。
该系统具有以下主要功能:- 机票查询与预订:用户可以通过系统查询航班信息并进行机票的预订。
- 酒店预订:用户可以查找并预订全球范围内的酒店房间。
- 租车服务:用户可以查询并预订各地的租车服务。
- 支付和结算:用户可以通过该系统完成支付和结算流程。
- 报表生成:系统能够生成各类报表,供用户进行数据分析和决策。
2. 用户登录和权限用户需要使用个人账号和密码登录GDS系统。
不同的用户角色拥有不同的权限和功能访问权限。
系统管理员有权管理用户账号和权限设置。
3. 系统界面GDS系统的界面简洁直观,用户可以通过主界面轻松访问各项功能。
界面包括以下主要部分:- 搜索栏:位于界面顶部,用户可以在搜索栏中输入关键词进行查询。
- 主要功能区域:位于界面中央,显示各项功能的图标和快捷入口。
4. 操作步骤以下是常见操作的步骤示例:4.1 机票查询与预订1. 在系统主界面的导航菜单中选择“机票查询”功能。
2. 输入出发地、目的地、出发日期等必要信息。
3. 点击“查询”按钮,系统将显示符合条件的航班列表。
4. 选择合适的航班后,点击“预订”按钮进行预订。
5. 输入旅客信息和联系方式,并选择支付方式。
6. 确认预订信息并点击“提交”按钮,系统将生成订单并进行支付流程。
4.2 酒店预订1. 在系统主界面的导航菜单中选择“酒店预订”功能。
2. 输入目的地、入住日期、退房日期等必要信息。
3. 点击“查询”按钮,系统将显示符合条件的酒店列表。
4. 选择合适的酒店后,点击“预订”按钮进行预订。
5. 输入旅客信息和联系方式,并选择支付方式。
6. 确认预订信息并点击“提交”按钮,系统将生成订单并进行支付流程。
4.3 租车服务1. 在系统主界面的导航菜单中选择“租车服务”功能。
航班信息的查询与检索系统
航班信息查询与检索一、问题描述实现对飞机航班信息进行排序和查找,可按照航班号、起点站、到达站、起飞时间和到达时间等信息进行查询。
航班信息表的样式如下:航班号起点站终点站班期起飞时间到达时间机型票价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■,已。
非常准航班查询
非常准航班查询《非常准航班查询》随着全球化的快速发展和人们生活水平的提高,越来越多的人选择旅行。
而航班作为人们出行的首选交通工具之一,也受到越来越多人的青睐。
准确地查询航班信息,对于旅客来说是至关重要的。
而现如今,有了非常准航班查询系统的出现,让旅客可以更加方便地获得航班相关信息。
非常准航班查询系统是一种利用现代信息技术,提供航班查询服务的工具。
通过该系统,旅客可以在任何时间、任何地点查询各航空公司的航班信息,包括起飞时间、到达时间、班次、机票价格等。
相比传统的查询方式,非常准航班查询系统具有许多优势。
首先,非常准航班查询系统的查询结果非常准确可靠。
系统会与各航空公司建立实时的信息交互通道,获取最新的航班信息。
这意味着旅客可以获得最准确、最实时的航班信息,避免了因为误差而导致的不必要麻烦。
无论是航班延误、调整还是取消,旅客都能第一时间得知,并进行及时的行程调整。
其次,非常准航班查询系统具有极高的查询速度和便捷性。
旅客只需在电脑、手机等设备上输入出发地和目的地,点击查询按钮,系统就可以快速地呈现结果。
旅客不再需要花费大量时间在电话、柜台等地方进行查询,节省了等待和排队的时间。
同时,系统支持多种查询方式,如按航空公司、出发时间段、航班号等进行筛选,让旅客能够更加方便地找到满足自己需求的航班。
此外,非常准航班查询系统还提供了更多的服务功能。
旅客在查询航班信息的同时,还可以了解各航班所属航空公司的介绍、机票预订、机场实时信息等。
系统会根据用户的需求,给出相应的推荐和指导,方便旅客更好地安排行程。
系统还支持在线购票和在线值机等功能,让旅客足不出户就能完成航班相关事务。
非常准航班查询系统是一种为旅客提供方便、快捷服务的好工具。
然而,系统也存在一些问题需要关注。
首先,系统的数据安全问题需要得到保证,避免个人信息被泄露。
其次,系统需要经常更新和维护,以确保查询结果的准确性和实时性。
最后,用户界面的友好性也需要进一步优化,让旅客能够更加轻松地使用。
航班信息查询实训报告
航班信息查询实训报告航班信息查询实训报告一、实训目的和意义航班信息查询系统是一种为乘客方便查询和了解航班信息的工具。
随着航空业的发展,人们对航班信息的需求越来越高,传统的咨询方式已经无法满足人们的需求。
航班信息查询系统可以提供航班的起降时间、航班状态、机票价格等信息,方便乘客选择和了解自己需要的航班信息。
本次实训的目的是学习和掌握航班信息查询系统的开发和实现过程,为今后的工作和学习提供便利。
二、实训过程和方法本次实训利用了Python编程语言和MySQL数据库进行航班信息查询系统的开发。
首先,我们使用Python编程语言搭建了系统的框架,包括用户登录界面、航班查询界面和数据库连接界面等。
然后,我们利用MySQL数据库存储了航班信息,包括航班号、起降时间、航班状态和机票价格等。
最后,我们通过Python代码实现了航班信息的查询和显示功能,乘客可以输入航班号或起降时间来查询相应的航班信息。
三、实训结果和分析经过几天的不断努力和改进,我们最终实现了一个简单、稳定和易用的航班信息查询系统。
乘客可以通过输入航班号或起降时间来查询相应的航班信息,并可以看到航班的起降时间、航班状态和机票价格等。
系统的界面简洁明了,查询结果准确可靠,用户体验良好。
四、实训心得和收获通过本次实训,我学到了很多关于航班信息查询系统的知识和技能。
我不仅学习到了Python编程语言的基本语法和用法,还学习到了MySQL数据库的使用方法和航班信息的存储和查询过程。
我深刻体会到了系统开发的重要性和复杂性,需要综合运用多种技术和工具来完成一个功能完善的系统。
此外,本次实训还培养了我的问题解决能力和团队合作精神。
在开发过程中,我遇到了很多问题和难题,但是通过和同学们的合作和讨论,最终解决了这些问题。
这不仅提高了我的解决问题的能力,还培养了我与他人合作的能力。
综上所述,本次实训使我收获颇丰。
我不仅学到了很多关于航班信息查询系统的知识和技能,还培养了我的问题解决能力和团队合作精神。
航班信息管理系统
航班信息管理系统1、合同主体11 甲方:____________________________111 法定代表人:____________________________112 地址:____________________________113 联系方式:____________________________12 乙方:____________________________121 法定代表人:____________________________122 地址:____________________________123 联系方式:____________________________2、合同标的21 本合同的标的为航班信息管理系统的开发、安装、调试、维护及相关服务。
22 航班信息管理系统应具备以下功能:实时航班信息查询、航班动态更新、航班预订管理、乘客信息管理、统计分析等。
23 系统应满足稳定性、安全性、易用性等要求,并能够与甲方现有相关系统进行有效对接。
3、权利义务31 甲方权利义务311 甲方有权对乙方的工作进行监督和检查,提出合理的改进意见和要求。
312 甲方应按照合同约定向乙方支付相应的费用。
313 甲方应提供乙方开发和实施系统所需的必要资料和协助。
32 乙方权利义务321 乙方有权按照合同约定获取相应的报酬。
322 乙方应按照合同要求,按时、高质量地完成航班信息管理系统的开发、安装和调试工作。
323 乙方应负责系统的维护和升级,确保系统的正常运行。
324 乙方应保证系统的安全性和稳定性,对系统可能出现的问题及时进行处理。
325 乙方应对甲方提供的资料和信息严格保密,不得泄露给第三方。
4、违约责任41 若甲方未按照合同约定支付费用,每逾期一天,应按照未支付金额的X%向乙方支付违约金。
逾期超过X天的,乙方有权解除合同,并要求甲方支付已完成工作的费用及相应的违约金。
42 若乙方未按照合同约定的时间完成系统开发、安装或调试工作,每逾期一天,应按照合同总金额的X%向甲方支付违约金。
航班信息查询与检索系统
课程设计报告课程设计名称:数据结构课程设计题目:设计并实现一个航班信息查询与检索系统院系:计算机学院专业:班级:学号:姓名:指导教师:学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。
尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。
与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。
报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。
本人签名: 日期:年月日目录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. 个性化推荐:客舱网统一登录系统可以根据乘客的历史记录和偏好,提供个性化的服务和推荐。
通过分析乘客的行为数据,系统可以向乘客推荐适合的机票、酒店和旅行服务,提高了用户满意度。
4. 多平台适配:客舱网统一登录系统可以在多种终端上使用,包括电脑、手机和平板电脑。
无论乘客在哪个终端上登录,都能够方便地获取航空公司的服务。
实施步骤:1. 航空公司接入:航空公司需要与客舱网统一登录系统提供商进行合作,将自身的服务接入系统中。
这包括航班信息、机票预订、值机、选座等服务内容。
2. 用户注册:乘客需要在客舱网统一登录系统上注册一个账号,填写相关个人信息并设置账号密码。
注册完成后,乘客可以使用该账号登录系统。
3. 航班查询和预订:乘客登录后,可以查看不同航空公司的航班信息,包括航班时刻表、航班状态、航线等。
乘客可以根据需求选择适合自己的航班,并进行在线预订。
4. 办理在线值机:乘客可以通过客舱网统一登录系统办理在线值机手续。
乘客可以选择座位、打印登机牌等操作,提前完成值机,避免排队等待。
5. 各类服务管理:乘客可以在客舱网统一登录系统上管理自己的航空服务。
包括修改个人信息、查看历史订单、申请退票等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
航班查询系统(代码+截图)程序源代码:# 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("没有航班信息要删除。
\n");return head;}if(strcmp(p->fltNum,fltNum)==0&&p==head){head=p->next;printf("删除成功!\n");return head;}while(p!=Null){if(strcmp(p->next->fltNum,fltNum)==0){s=p;q=p->next;p->next=q->next;free(q);}p=p->next;}if(s==Null)printf("找不到相应的航班信息。
\n");elseprintf("删除成功!\n");return head;}struct flight *bubblesort(struct flight *head){struct flight *p,*q,*tail,*s;tail=NULL;while(head->next!=tail){p=head;q=p->next;while(q->next!=tail){if(strcmp(p->next->fltNum,q->next->fltNum)<0){s=q->next;p->next=q->next;q->next=q->next->next;p->next->next=q;q=s;}p=p->next;q=q->next;}tail=q;}return head;}struct flight *browse(struct flight *head){struct flight*p;p=head;printf("航班号起点站终点站起飞时间到达时间机型价格\n");while(p!=Null)printf("%-8s",p->fltNum);printf("%-10s",p->StartingPoint);printf("%-10s",p->Terminal);printf("%-12s",p->DepartureTime);printf("%-12s",p->ArrivalTime);printf("%-8s",p->AircraftType);printf("%-5d",p->price);p=p->next;printf("\n");}return head;}struct flight *fltNumSearch(struct flight *head,charfltNum[15]){struct flight *p,*q;p=head;while(p!=Null){if(strcmp(p->fltNum,fltNum)==0){q=p;printf("航班号起点站终点站起飞时间到达时间机型价格\n");printf("%-8s",p->fltNum);printf("%-10s",p->StartingPoint);printf("%-10s",p->Terminal);printf("%-12s",p->DepartureTime);printf("%-12s",p->ArrivalTime);printf("%-8s",p->AircraftType);printf("%-5d",p->price);printf("\n");}p=p->next;}if(q==NULL)printf("找不到航班信息!\n");return head;}struct flight *DepartureTimeSearch(struct flight *head,charDepartureTime[15]) {struct flight *p,*q;p=head;while(p!=Null)if(strcmp(p->DepartureTime,DepartureTime)==0){q=p;printf("航班号起点站终点站起飞时间到达时间机型价格\n");printf("%-8s",p->fltNum);printf("%-10s",p->StartingPoint);printf("%-10s",p->Terminal);printf("%-12s",p->DepartureTime);printf("%-12s",p->ArrivalTime);printf("%-8s",p->AircraftType);printf("%-5d",p->price);printf("\n");}p=p->next;}if(q==NULL)printf("找不到航班信息!\n");return head;}struct flight *ArrivalTimeSearc(struct flight *head,charArrivalTime[15]){struct flight *p,*q;p=head;while(p!=Null){if(strcmp(p->ArrivalTime,ArrivalTime)==0){q=p;printf("航班号起点站终点站起飞时间到达时间机型价格\n");printf("%-8s",p->fltNum);printf("%-10s",p->StartingPoint);printf("%-10s",p->Terminal);printf("%-12s",p->DepartureTime);printf("%-12s",p->ArrivalTime);printf("%-8s",p->AircraftType);printf("%-5d",p->price);printf("\n");}p=p->next;}if(q==NULL)printf("找不到航班信息!\n");return head;}struct flight *StartingPointSearch(struct flight *head,charStartingPoint[20]) {struct flight *p,*q;p=head;while(p!=Null){if(strcmp(p->StartingPoint,StartingPoint)==0){q=p;printf("航班号起点站终点站起飞时间到达时间机型价格\n");printf("%-8s",p->fltNum);printf("%-10s",p->StartingPoint);printf("%-10s",p->Terminal);printf("%-12s",p->DepartureTime);printf("%-12s",p->ArrivalTime);printf("%-8s",p->AircraftType);printf("%-5d",p->price);printf("\n");}p=p->next;}if(q==NULL)printf("找不到航班信息!");return head;}struct flight *TerminalSearch(struct flight *head,char Terminal[15]){struct flight *p,*q;p=head;while(p!=Null){if(strcmp(p->Terminal,Terminal)==0){printf("航班号起点站终点站起飞时间到达时间机型价格\n");printf("%-8s",p->fltNum);printf("%-10s",p->StartingPoint);printf("%-10s",p->Terminal);printf("%-12s",p->DepartureTime);printf("%-12s",p->ArrivalTime);printf("%-8s",p->AircraftType);printf("%-5d",p->price);printf("\n");}p=p->next;}if(q==NULL)printf("找不到航班信息!\n");return head;}void Clear(){system("pause");system("cls");}void menu(){printf("请选择:\n");printf("***1--按航班号查询***\n");printf("***2--按起飞时间查询***\n");printf("***3--按到达时间查询***\n");printf("***4--按起点站查询***\n");printf("***5--按终点站查询***\n");printf("***0--返回上一级***\n");}void main(){charch;int n=0;struct flight *head;print();while((ch=tolower(getchar()))!='7'){switch(ch){case '1':{printf("请问有多少个航班的资料需要输入?:\n");scanf("%d",&n);system("cls");print();head=init(n);break;}case '2':{printf("请输入航班信息:\n");insert(head);system("cls");print();printf("插入成功!");break;}case '3':{charfltNum[15];printf("请输入要删除航班的航班号:");scanf("%s",&fltNum);system("cls");print();head=delet(head,fltNum);break;}case '4':{printf("排序结果如下:\n");head=bubblesort(head);system("cls");print();head=browse(head);break;}case '5':{system("cls");print();head=browse(head);break;}case '6':{char info[20];int m;system("cls");menu();while(1){scanf("%d",&m);if (m==0){system("cls");print();break;}switch(m){case 1:{printf("请输入按航班号:");scanf("%s",&info);system("cls");menu();head=fltNumSearch(head,info);break;}case 2:{printf("请输入飞机起飞时间:");scanf("%s",&info);system("cls");menu();head=DepartureTimeSearch(head,info);break;}case 3:{printf("请输入飞机降落时间:");scanf("%s",&info);system("cls");menu();head=DepartureTimeSearch(head,info);break;}case 4:{printf("请输入起点站:");scanf("%s",&info);system("cls");menu();head=StartingPointSearch(head,info);break;}case 5:{printf("请输入终点站:");scanf("%s",&info);system("cls");menu();head=TerminalSearch(head,info);break;}}}default: break;}}}if((ch=tolower(getchar()))='7')printf("安全退出系统!");}运行结果截图:。