#include typedef struct plane { char ID[10]; /*航班代号*/ char BePlace[10];/*飞机起飞地点*/ char EnPlace[10];/*飞机降落终点*/ char data[15];/*飞机起飞时间*/ int max;/*飞机最大乘客人数*/ int price;/*飞机票价*/ int num;/*飞机已售票数*/ }PLANE; PLANE ti[N]; int n;/*当前的航班数目*/ void menu(); void menu1(); void input(int i) { printf(\"请输入航班代号:\\n\"); scanf(\"%si[i].ID); printf(\"请输入起飞地点:\\n\"); scanf(\"%s\",ti[i].BePlace); printf(\"请输入降落地点:\\n\"); scanf(\"%si[i].EnPlace); printf(\"请输入起飞时间:\\n\"); scanf(\"%s\",ti[i].data); printf(\"请输入航班的最大载客人数:\\n\"); scanf(\"%d\&ti[i].max); printf(\"请输入航班的票价:\\n\"); scanf(\"%d\&ti[i].price); ti[i].num=0; } void enter() { int i; system( \"cls\" ); printf(\"请输入航班的数目(0-%d)?:\ scanf(\"%d\ /*要输入的记录个数*/ printf(\"\\n请输入数据\\n\\n\"); for(i=0;i getchar(); menu(); } void printf_one(int i) /*显示一个记录的函数*/ { printf(\"%11s %6s %10s %6s %6d %6d %6d\i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num); } void browse() { int i; system( \"cls\" ); puts(\"\\n--------------------------------------------------------------------\"); printf(\"\\n\航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数\\n\"); for(i=0;i printf(\"\\n\"); } getchar(); getchar(); menu(); } void order() /*排序模块(按平均成绩)*/ { int i,j; struct plane s; system( \"cls\" ); for(i=0;i s=ti[i]; ti[i]=ti[j]; ti[j]=s;} } browse(); } void search_time() { int i,m=0; struct plane s; system( \"cls\" ); printf(\"\\n\\nEnter the time:\"); scanf(\"%s\输入出发的时间*/ puts(\"\\n--------------------------------------------------------------------\"); printf(\"\\n\航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数\\n\"); for(i=0;i m++; if((m!=0)&&(m%10==0) /*目的是分屏显示*/ { printf(\"\\n\\nPress any key to contiune . . .\"); getchar(); puts(\"\\n\\n\"); } printf_one(i); printf(\"\\n\"); /*调用显示一个记录的函数*/ } } puts(\"\\n--------------------------------------------------------------------\"); getchar(); /*按任意健*/ getchar(); menu1(); } void serch_end() { int i,m=0; struct plane s; system( \"cls\" ); printf(\"\\n\\nEnter the end Place:\"); scanf(\"%s\ /*输入要到达的地方*/ puts(\"\\n--------------------------------------------------------------------\"); printf(\"\\n\航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数\\n\"); for(i=0;i m++; if((m!=0)&&(m%10==0)) /*目的是分屏显示*/ { printf(\"\\n\\nPress any key to contiune . . .\"); getchar(); puts(\"\\n\\n\"); } printf_one(i); printf(\"\\n\"); /*调用显示一个记录的函数*/ } } puts(\"\\n--------------------------------------------------------------------\"); getchar(); /*按任意健*/ getchar(); menu1(); } void menu1() { int n,w1; do { system( \"cls\" ); /*清屏*/ puts(\"\\\\ 飞机售票操作!\\n\\n\"); puts(\"\\*********************MENU*********************\\n\\n\"); puts(\"\\\\1.按照时间排序\"); puts(\"\\\\2.按照时间查找航班\"); puts(\"\\\\3.按照地点查找航班\"); puts(\"\\\\4.返回主菜单\"); puts(\"\\n\\n\\**********************************************\\n\"); printf(\"Choice your number(1-4): [ ]\\b\\b\"); scanf(\"%d\ if(n<1||n>4) /*对选择的数字作判断*/ { w1=1; printf(\"your choice is not between 1 and 4,Please input again:\"); getchar(); getchar(); } else w1=0; } while(w1==1); /*选择功能*/ switch(n) { case 1:order();break; case 2:search_time();break; case 3:serch_end();break; case 4:menu();break; } } int search()/*查找模块*/ { int i,k; struct plane s; k=-1; system( \"cls\" ); printf(\"\\n\\n请输入要订票的起飞地点:\"); scanf(\"%s\输入要到达的地方*/ printf(\"\\n\\n请输入要订票的降落地点:\"); scanf(\"%s\ printf(\"\\n\\n请输入要订票的起飞时间:\"); scanf(\"%s\ /*输入出发的时间*/ for(i=0;i k=i; /*找到要修改的记录*/ printf_one(k); break; /*调用显示一个记录的函数*/ } } if(k==-1) { printf(\"\\n\\nNO exist!\"); return -1; } else return k; } void book() { int i; system( \"cls\" ); printf(\"欢迎进入售票窗口!\\n\"); i=search(); if(i!=-1) { if(ti[i].num>=ti[i].max) { printf(\"\\n该趟航班票已售完!\"); } else { ti[i].num++; printf(\"\\n订票成功!\\n\"); } } else printf(\"该航班不存在!\\n\"); getchar(); getchar();/*按任意健*/ menu(); } void back() { int i,k=-1; struct plane s; system( \"cls\" ); printf(\"欢迎进入退票窗口!\\n\"); printf(\"\\n\\n输入航班代号:\"); scanf(\"%s\输入要到达的地方*/ for(i=0;i k=i; /*找到要修改的记录*/ printf_one(k); break; /*调用显示一个记录的函数*/ } } if(k==-1) { printf(\"\\n\\nNO exist!\"); } else { ti[i].num--; printf(\"\\n退票成功!\\n\"); } getchar(); /*按任意健*/ getchar(); /*按任意健*/ menu(); } void save() { int w=1; FILE *fp; int i; system( \"cls\" ); if((fp=fopen(\"D:\\\\我的文档\\\\桌面\\\icket.txt\以输出打开方式,在此前的记录被覆盖*/ { printf(\"\\nCannot open file\\n\"); return ; } for(i=0;i printf(\"file write error\\n\"); w=0; } if(w==1) { printf(\"file save ok!\\n\"); } fclose(fp); getchar(); getchar(); menu(); } void load() { FILE *fp; int i,w; w=1; system( \"cls\" ); if((fp=fopen(\"D:\\\\我的文档\\\\桌面\\\icket.txt\ { /* } void menu() { int n,w1; do { system( \"cls\" ); /*清屏*/ puts(\"\\\\ 飞机售票管理系统!\\n\\n\"); puts(\"\\*********************MENU*********************\\n\\n\"); puts(\"\\\\1.输入新航班\"); puts(\"\\\\2.浏览 \"); puts(\"\\\\3.航班操作\"); puts(\"\\\\4.订票\"); puts(\"\\\\5.退票\"); puts(\"\\\\6.保存\"); puts(\"\\\\7.载入\"); puts(\"\\\\8.退出\"); puts(\"\\n\\n\\**********************************************\\n\"); printf(\"Choice your number(1-8): [ ]\\b\\b\"); scanf(\"%d\ printf(\"\\nCan not open file\\n\"); w=0; return; } n=0; for(i=0;!feof(fp);i++) { fread(&ti[i],sizeof(struct plane),1,fp); n++; } n=n-1; fclose(fp); if(w==1) printf(\"Load file ok!\"); getchar(); getchar(); menu(); if(n<1||n>8) /*对选择的数字作判断*/ { w1=1; printf(\"your choice is not between 1 and 8,Please input enter to choice again:\"); getchar(); getchar(); } else w1=0; } while(w1==1); /*选择功能*/ switch(n) { case 1:enter();break; /*输入 case 2:browse();break; /*浏 case 3:menu1();break; /*查找 case 4:book();break; /*订票 case 5:back();break; /*退票 case 6:save();break; /*保存case 8:exit(0); } } void main() {menu();} case 7:load();break; /*加载 因篇幅问题不能全部显示,请点此查看更多更全内容