航班查询系统--C语言源程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includestdio.h#includestdlib.h#includestring.h#defineNODstructplane_liststructplane{charnumber[10];charstart[10];chararrive[10];chardate[10];charstarttime[10];chararrivingtime[10];charprice[10];charmodel[10];};NOD{charnumber[10];charstart[10];chararrive[10];chardate[10];charstarttime[10];chararrivingtime[10];charprice[10];charmodel[10];NOD*next;};FILE*fp;/*由文件中的数据生成一个飞机航班的链表,如果文件不存在,则是一个空链表*/NOD*load(charplanename[]){NOD*p,*q,*head;structplaneper;p=(NOD*)malloc(sizeof(NOD));q=head=NULL;if((fp=fopen(planename,rb))==NULL)returnhead;else{while(!feof(fp)){if(fread(&per,sizeof(structplane),1,fp)==1){p=(NOD*)malloc(sizeof(NOD));strcpy(p-number,per.number);strcpy(p-start,per.start);strcpy(p-arrive,per.arrive);strcpy(p-date,per.date);strcpy(p-starttime,per.starttime);strcpy(p-arrivingtime,per.arrivingtime);strcpy(p-price,per.price);strcpy(p-model,per.model);head=p;p-next=q;q=head;}}}fclose(fp);return(head);}/*输入*/NOD*insert(NOD*head){NOD*temp,*p;p=head;temp=(NOD*)malloc(sizeof(NOD));printf(\n\t请输入航班号:);scanf(%s,temp-number);printf(\n\t请输入起点站:);scanf(%s,temp-start);printf(\n\t请输入终点站:);scanf(%s,temp-arrive);printf(\n\t请输入起飞时间:);scanf(%s,temp-starttime);printf(\n\t请输入到达时间:);scanf(%s,temp-arrivingtime);printf(\n\t请输入班期:);scanf(%s,temp-date);printf(\n\t请输入票价:);scanf(%s,temp-price);printf(\n\t请输入航班型号:);scanf(%s,temp-model);head=temp;temp-next=p;returnhead;}/*保存*/voidsave(NOD*head,charfilename[]){NOD*p;structplaneper;if((fp=fopen(filename,wb))==NULL){printf(文件无法写入);exit(0);}else{p=head;while(p!=NULL){strcpy(per.number,p-number);strcpy(per.start,p-start);strcpy(per.arrive,p-arrive);strcpy(per.date,p-date);strcpy(per.starttime,p-starttime);strcpy(per.arrivingtime,p-arrivingtime);strcpy(per.price,p-price);strcpy(per.model,p-model);if(fwrite(&per,sizeof(structplane),1,fp)!=1){printf(文件不能写入数据,请检查后重新运行.\n);exit(0);}p=p-next;}fclose(fp);}}/*显示*/voiddisplay(NOD*head){NOD*p;p=head;while(p!=NULL){printf(航班号:%s\n,p-number);printf(起点站:%s\n,p-start);printf(终点站:%s\n,p-arrive);printf(班期:%s\n,p-date);printf(起飞时间:%s\n,p-starttime);printf(到达时间:%s\n,p-arrivingtime);printf(票价:%s\n,p-price);printf(飞机型号:%s\n,p-model);p=p-next;}}/*航班号查找*/voidfinda(NOD*head){NOD*p;charnumber[10];printf(请输入查找航班的编号:);scanf(%s,number);p=head;while(p!=NULL){if(strcmp(number,p-number)==0){printf(航班号:%s\n,p-number);printf(起点站:%s\n,p-start);printf(终点站:%s\n,p-arrive);printf(班期:%s\n,p-date);printf(起飞时间:%s\n,p-starttime);printf(到达时间:%s\n,p-arrivingtime);printf(票价:%s\n,p-price);printf(飞机型号:%s\n,p-model);break;}elsep=p-next;}if(p==NULL)printf(\n\t查无此航班\n);}/*起点站查找*/voidfindb(NOD*head){NOD*p;charstart[10];printf(请输入查找航班的起点站:);scanf(%s,start);p=head;while(p!=NULL){if(strcmp(start,p-start)==0){printf(航班号:%s\n,p-number);printf(起点站:%s\n,p-start);printf(终点站:%s\n,p-arrive);printf(班期:%s\n,p-date);printf(起飞时间:%s\n,p-starttime);printf(到达时间:%s\n,p-arrivingtime);printf(票价:%s\n,p-price);printf(飞机型号:%s\n,p-model);break;}elsep=p-next;}if(p==NULL)printf(\n\t查无此航班\n);}/*终点站查找*/voidfindc(NOD*head){NOD*p;chararrive[10];printf(请输入查找航班的终点站:);scanf(%s,arrive);p=head;while(p!=NULL){if(strcmp(arrive,p-arrive)==0){printf(航班号:%s\n,p-number);printf(起点站:%s\n,p-start);printf(终点站:%s\n,p-arrive);printf(班期:%s\n,p-date);printf(起飞时间:%s\n,p-starttime);printf(到达时间:%s\n,p-arrivingtime);printf(票价:%s\n,p-price);printf(飞机型号:%s\n,p-model);break;}elsep=p-next;}if(p==NULL)printf(\n\t查无此航班\n);}/*起飞时间查找*/voidfindd(NOD*head){NOD*p;charstarttime[10];printf(请输入查找航班的起飞时间:);scanf(%s,starttime);p=head;while(p!=NULL){if(strcmp(starttime,p-starttime)==0){printf(航班号:%s\n,p-number);printf(起点站:%s\n,p-start);printf(终点站:%s\n,p-arrive);printf(班期:%s\n,p-date);printf(起飞时间:%s\n,p-starttime);printf(到达时间:%s\n,p-arrivingtime);printf(票价:%s\n,p-price);printf(飞机型号:%s\n,p-model);break;}elsep=p-next;}if(p==NULL)printf(\n\t查无此航班\n);}/*到达时间查找*/voidfinde(NOD*head){NOD*p;chararrivingtime[10];printf(请输入查找航班的到达时间:);scanf(%s,arrivingtime);p=head;while(p!=NULL){if(strcmp(arrivingtime,p-arrivingtime)==0){printf(航班号:%s\n,p-number);printf(起点站:%s\n,p-start);printf(终点站:%s\n,p-arrive);printf(班期:%s\n,p-date);printf(起飞时间:%s\n,p-starttime);printf(到达时间:%s\n,p-arrivingtime);printf(票价:%s\n,p-price);printf(飞机型号:%s\n,p-model);break;}elsep=p-next;}if(p==NULL)printf(\n\t查无此航班\n);}/*删除*/NOD*dele(NOD*head){NOD*p,*q;charnumber[5];printf(:请输入要删除的航班编号);scanf(%s,number);p=q=head;while(p!=NULL){if(strcmp(number,p-number)==0){if(head==p)head=p-next;elseq-next=p-next;free(p);break;}else{q=p;p=p-next;}}if(p==NULL)printf(\n\t查无此航班\n);returnhead;}/*主函数*/voidmain(){NOD*head;charfnum[10];intchoise;printf(\n\t欢迎光临航班查询系统:);scanf(%s,fnum);head=load(fnum);while(1){printf(\n\t\t航班信息检索与查询\n);printf(\t\t********************************\n);printf(\t\t1.航班号查找\n);printf(\t\t2.起点站查找\n);printf(\t\t3.终点站查找\n);printf(\t\t4.起飞时间查找\n);printf(\t\t5.到达时间查找\n);printf(\t\t6.航班号删除\n);printf(\t\t7.增加新航班\n);printf(\t\t8.显示所有航班\n);printf(\t\t9.存盘并退出\n);printf(\n\t请选择1-9:);scanf(%d,&choise);switch(choise){ca

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功