为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

航空订票系统

2017-10-07 13页 doc 32KB 43阅读

用户头像

is_219945

暂无简介

举报
航空订票系统航空订票系统 #include #include #include struct airlineInformation//存储航线信息的结构,初始为三条航线 { char flightNum[20]; char planeNum[20]; char destination[20]; int bookTicketNum; int spareTicketNum; int seat[100];//表示该航班的座位是否有人坐的情况 }airline[3]={{"0001","china-001","BeiJin...
航空订票系统
航空订票系统 #include #include #include struct airlineInformation//存储航线信息的结构,初始为三条航线 { char flightNum[20]; char planeNum[20]; char destination[20]; int bookTicketNum; int spareTicketNum; int seat[100];//示该航班的座位是否有人坐的情况 }airline[3]={{"0001","china-001","BeiJing",1,99,0}, {"0002","china-002","ShangHai",1,99,0}, {"0003","china-003","Guangzhou",1,99,0}}; struct clientInformation//存储客户信息的结构,初始为三位客户 { char clientName[20]; char clientFlightNum[20]; int seatNum; }client[300]={{"zhangsan","0001",1},{"lisi","0002",1},{"wangwu","0003",1}}; int enterChoice(void); void airLine(FILE * cfPtr1 , FILE * cfPtr2);//进行航线信息与客户信息的储存的函数原型 void bookTicket(FILE * cfPtr1 , FILE * cfPtr2);//订票的函数原型 void cancelTicket(FILE * cfPtr1 , FILE * cfPtr2);//退票的函数原型 void printInformation(FILE * cfPtr1 , FILE * cfPtr2);//打印航线信息与客户信息的函数原型 int main() { FILE * cfPtr1; FILE * cfPtr2; int choice,i,j; for(i=0;i<=2;i++)//开始时只有每次航班的第一个座有人坐 { for(j=0;j<=99;j++) airline[i].seat[j]=0; airline[i].seat[0]=1; } if ((cfPtr1=fopen("airline.dat","wb+"))==NULL) printf("非常抱歉~\n存储航线信息的文件不能打开~\n请稍候((((((\n"); else if((cfPtr2=fopen("customer.dat","wb+"))==NULL) printf("非常抱歉~\n存储客户信息的文件不能打开~\n请稍候((((((\n"); else { airLine(cfPtr1,cfPtr2); for(i=1;i<=30;i++) printf("*"); printf("\n欢迎使用南航订票系统!\n有何疑问详询800-800-800~\n"); while((choice=enterChoice())!=5)//对操作的选择,当选择5时,操作结束 { switch (choice) { case 1: airLine(cfPtr1,cfPtr2); printInformation(cfPtr1,cfPtr2); break; case 2: bookTicket(cfPtr1,cfPtr2); break; case 3: cancelTicket(cfPtr1,cfPtr2); break; case 4: printInformation(cfPtr1,cfPtr2); break; } } } printf("\n"); for(i=1;i<=30;i++) printf("*"); printf("\n"); printf("谢谢您使用本系统~\n欢迎您下次再次使用~\n再见~\n"); for(i=1;i<=30;i++) printf("*"); printf("\n"); fclose(cfPtr1); fclose(cfPtr2); system("pause"); return 0; } int enterChoice(void) { int i; int menuChoice; for(i=1;i<=30;i++) printf("*"); printf("\n"); printf("\n请输入您想进行的操作:\n" "1-航线信息及客户信息的存储\n" "2-订票\n" "3-退票\n" "4-查询信息\n" "5-退出系统\n"); printf("\n"); for(i=1;i<=30;i++) printf("*"); printf("\n"); scanf("%d",&menuChoice); for(i=1;i<=20;i++) printf("*"); printf("\n"); return menuChoice; } void airLine(FILE * cfPtr1 , FILE * cfPtr2) { int i; if ((cfPtr1=fopen("airline.dat","rb+"))==NULL) printf("非常抱歉~\n存储航线信息的文件不能打开~\n请稍候((((((\n"); else if((cfPtr2=fopen("customer.dat","rb+"))==NULL) printf("非常抱歉~\n存储客户信息的文件不能打开~\n请稍候((((((\n"); else { for(i=0;i<=2;i++)//将目前airline结构数组中的每一项都储存在航线信息中 fwrite(&airline[i],sizeof(struct airlineInformation),1,cfPtr1); for(i=0;i<=299;i++)//将目前client结构数组中的每一项都储存在客户信息中 fwrite(&client[i],sizeof(struct clientInformation),1,cfPtr2); } fclose(cfPtr1); fclose(cfPtr2); } void bookTicket(FILE * cfPtr1 , FILE * cfPtr2) { char Name[20]; char flightnum[20]; int i,j,ok=0;//ok为是否订上票的标记值,0表示没订上,1表示订上 if ((cfPtr1=fopen("airline.dat","rb+"))==NULL) printf("非常抱歉~\n存储航线信息的文件不能打开~\n请稍候((((((\n"); else if((cfPtr2=fopen("customer.dat","rb+"))==NULL) printf("非常抱歉~\n存储客户信息的文件不能打开~\n请稍候((((((\n"); else { getchar(); printf("尊敬的客户,欢迎您订票~\n"); for(i=1;i<=30;i++) printf("*"); printf("\n请输入您的姓名:\n"); gets(Name); printf("%s先生/女士,请输入您想乘坐的航班号:\n",Name); gets(flightnum); printf("操作正在进行中,请稍后......\n"); for(i=1;i<=30;i++) printf("*"); printf("\n"); for(i=0;i<=2;i++)//查找与客户相同的航班号的信息 if(strcmp(airline[i].flightNum,flightnum)==0)//航班号相同 if(airline[i].spareTicketNum>0)//并且有余票 { ok=1; airline[i].bookTicketNum++; airline[i].spareTicketNum--; break; } if(ok==1) { for(j=0;j<=99;j++)//为客户选择一座位 if(airline[i].seat[j]==0) { airline[i].seat[j]=1; break; } printf("恭喜您~\n您已经订上了%s次航班的%d座位," "您的目的地为%s(\n",flightnum,j+1,airline[i].destination); for(i=0;i<=299;i++)//储存客户信息 if(strcmp(client[i].clientName,"")==0)//该条原先为空,写入客户信息 { strcpy(client[i].clientName,Name); strcpy(client[i].clientFlightNum,flightnum); client[i].seatNum=j+1; break; } } else if(i > 2) printf("对不起~\n这里没有该次航班,请检查后再次输入~\n"); else printf("抱歉~\n您所要坐的%s航班由于客满,不能为您办理~\n",flightnum); } for(i=1;i<=30;i++) printf("*"); printf("\n"); //将此时的信息储存 airLine(cfPtr1,cfPtr2); fclose(cfPtr1); fclose(cfPtr2); } void cancelTicket(FILE * cfPtr1 , FILE * cfPtr2) { char Name[20]; char flightnum[20]; int i,j,ok=0,ok1=0;//ok表示是否退票成功,ok1表示是否有该客户 if ((cfPtr1=fopen("airline.dat","rb+"))==NULL) printf("非常抱歉~\n存储航线信息的文件不能打开~\n请稍候((((((\n"); else if((cfPtr2=fopen("customer.dat","rb+"))==NULL) printf("非常抱歉~\n存储客户信息的文件不能打开~\n请稍候((((((\n"); else { getchar(); printf("尊敬的客户,欢迎您退票~\n"); for(i=1;i<=30;i++) printf("*"); printf("\n请输入您的姓名:\n"); gets(Name); printf("%s先生/女士,请输入您想退掉的航班号:\n",Name); gets(flightnum); for(i=1;i<=30;i++) printf("*"); printf("\n"); printf("操作正在进行中,请稍后......\n"); for(i=1;i<=20;i++) printf("*"); printf("\n"); for(i=0;i<=299;i++)//检查是否有该客户 if(strcmp(client[i].clientName,Name)==0)//有该客户 { ok1=1; for(j=0;j<=2;j++)//检查其输入的航班号是否真确 if(strcmp(airline[j].flightNum,flightnum)==0) { ok=1; airline[j].bookTicketNum--; airline[j].spareTicketNum++; airline[j].seat[client[i].seatNum]=0; break; } if(ok==1)//退票成功,删除客户信息 { strcpy(client[i].clientName,""); strcpy(client[i].clientFlightNum,""); client[i].seatNum=0; break; } } if(ok1==0) printf("抱歉~\n您还没有订票~\n"); else if(ok==1) printf("恭喜您~\n您已经退票成功~\n"); else printf("抱歉~\n您订的不是这次航班,请检查后再次输入~\n"); } for(i=1;i<=30;i++) printf("*"); printf("\n"); airLine(cfPtr1,cfPtr2); fclose(cfPtr1); fclose(cfPtr2); } void printInformation(FILE * cfPtr1 , FILE * cfPtr2) { int i; struct airlineInformation airline; struct clientInformation client; if ((cfPtr1=fopen("airline.dat","rb+"))==NULL) printf("非常抱歉~\n存储航线信息的文件不能打开~\n请稍候((((((\n"); else if((cfPtr2=fopen("customer.dat","rb+"))==NULL) printf("非常抱歉~\n存储客户信息的文件不能打开~\n请稍候((((((\n"); else { printf("\n"); for(i=1;i<=50;i++) printf("*"); printf("\n"); printf("航线信息:\n航班号 飞机号 目的地 定票数 余票数\n"); fread(&airline,sizeof(struct airlineInformation),1,cfPtr1); while(!feof(cfPtr1)) { printf("%-7s%-10s%-10s%7d%7d\n",airline.flightNum,airline.planeNum,airline.d estination,airline.bookTicketNum,airline.spareTicketNum); fread(&airline,sizeof(struct airlineInformation),1,cfPtr1); } for(i=1;i<=50;i++) printf("*"); printf("\n"); for(i=1;i<=30;i++) printf("*"); printf("\n"); printf("客户信息:\n姓名 航班号 座位号\n"); fread(&client,sizeof(struct clientInformation),1,cfPtr2); while(!feof(cfPtr2)) { if(strcmp(client.clientName,"")!=0) { printf("%-10s%-7s%7d\n",client.clientName,client.clientFlightNum,client.seatNum) ; } fread(&client,sizeof(struct clientInformation),1,cfPtr2); } for(i=1;i<=30;i++) printf("*"); printf("\n"); } fclose(cfPtr1); fclose(cfPtr2); }
/
本文档为【航空订票系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索