1、C语言飞机订票系统设计#include /标准输入、输出头文件#include /包含字符串函数处理头文件#include /包含动态存储与释放函数头文件#define N 10000 struct air /定义结构体数组int num;char start20;char over20;char time10;int count;sN;int i;int m=0;#define PRINT %-d%12s%12s%10s%12dn,si.num,si.start,si.over,si.time,si.count /定义输出格式void input(); /输入航班信息void print()
2、; /输出航班信息void save(); /保存航班信息 void read(); /读取航班信息void search(); /查找航班信息void shanchu(); /删除航班信息void dingpiao(); /订票信息void tuipiao(); /退票信息void xiugai(); /修改信息void main()int j;printf( -您好,欢迎进入中国民航管理系统!-n); printf(=n); doprintf( - 1.输入航班信息 - nn - 2.浏览航班信息 - nn - 3.修改航班信息 - nn - 4.查找航班信息 - nn - 5.删除航班信
3、息 - nn - 6.订票信息 - nn - 7.退票信息 - nn - 0.退出 - nn); printf(=n);printf(请在0-7中选择以回车键结束:nn);scanf(%d,&j);switch(j)case 1: input();/调用输入模块break;case 2:print();/调用打印模块break;case 3:xiugai();/调用修改模块break;case 4:search();/调用查找模块break;case 5:shanchu(); /调用删除模块break;case 6:dingpiao();/调用订票模块break;case 7:tuipiao(
4、);/调用退票模块break;case 0:;break;while(j!=0); /判断结束printf(谢谢使用,再见!n);/主函数结束void input()/打印模块程序 char f=2008china; /设置密码int y;printf(请输入密码并以回车键结束:nn);scanf(%s,f); /读取密码if(strcmp(f,2008china)=0)printf(请依次输入航班信息(机票数位0结束输入):nn 完成输入信息请键入w以回车键结束nn); /打印提示信息printf(-n); for(i=0;iN;i+) printf(请输入航班号:n); scanf(%d,
5、&si.num); /读取航班号printf(请输入起始站:n); scanf(%s,si.start);/读取起始站printf(请输入终点站:n); scanf(%s,si.over);/读取终点站printf(请输入时间:n); scanf(%s,si.time);/读取时间printf(请输入机票数(机票数为0结束输入):n,m); scanf(%d,&si.count);/读取机票数m+;printf(第%d个信息已经输完是否继续?按任意键继续,按 0结束,m);scanf(%d,&y);if(y=0)save();/将结构体信息存盘print();/输出输入的航班信息break;
6、elseprintf(输入密码错误!请检查您的密码是否正确!谢谢!再见!nn);void save()/保存模块程序 FILE *fp,*fp1;/定义文件指针if(fp=fopen(chen.dat,wb)=NULL)/打开文件并判断是否出错 printf(创建文件失败!nn);/打印出错提示getchar();return;if(fp1=fopen(hao.dat,wb)=NULL)/打开文件并判断是否出错 printf(创建文件失败!nn);/打印出错提示getchar();return;for(i=0;im;i+)if(fwrite(&si,sizeof(struct air),1,f
7、p)=0)/向文件写入数据,并判断是否出错printf(向文件输入数据失败!nn);fprintf(fp1,%d,m);fclose(fp);/关闭文件fclose(fp1);/关闭文件void read()/从文件读取信息模块FILE *fp,*fp1;/定义文件指针if(fp=fopen(chen.dat,rb)=NULL)/打开文件,并判断是否出错printf(出错,请检查文件是否存在,按任意键返回住菜单);/打印出错提示getchar();if(fp1=fopen(hao.dat,rb)=NULL)/打开文件并判断是否出错 printf(创建文件失败!nn);/打印出错提示getcha
8、r();return;fscanf(fp1,%d,&m);fclose(fp1);/关闭文件for(i=0;im;i+)fread(&si,sizeof(air),1,fp);/从文件中读取信息fclose(fp);/关闭文件void print()/打印模块char w10;read();/调用读取文件函数printf(航班号 起始站 终点站 时间 机票数n);for(i=0;im;i+) printf(PRINT);/打印信息printf(请按任意键回车键结束返回上层菜单以:n);scanf(%s,w);void search()/查询模块char name120;char name220
9、;char ii10;int n,no;doprintf(请选择查找方式:nn);/打印查询方式菜单printf(1.按航班号查找nn 2.按终点站查找nn 3.按航线查找nn 0.返回nn);printf(请在0-3中选择:nn 按其他键以回车键结束返回主菜单:nn);scanf(%d,&n);/读取查找方式if(n=0)break;switch(n)case 1:printf(请输入航班号:n);scanf(%d,&no);/航班号break;case 2:printf(请输入终点站名称:n);scanf(%s,name2);/读取终点站break;case 3:printf(请输入起始站
10、名称:n);scanf(%s,name1);/读取起始站printf(请输入终点站名称:n);scanf(%s,name2);/终点站break;read();/调用读取函数for(i=0;im;i+) if(strcmp(si.over,name1)=0|strcmp(si.over,name2)=0)/按终点站起始站判断输出条件printf(n查找航班信息成功!n);printf(航班号 起始站 终点站 时间 机票数n);printf(PRINT);/打印信息break;if(si.num=no)/按航班号判断输出条件 printf(n查找航班信息成功!n);printf(航班号 起始站
11、终点站 时间 机票数n);printf(PRINT);/打印信息break; no=0;/将航班号赋值为0printf(没有您需要的信息或查找完毕:nn 是否继续查找?请键入yes或no以回车键结束n);scanf(%s,ii);while(strcmp(ii,yes)=0);/判断结束void shanchu()/删除模块char name120;char name220;char ii10;char f=2008china;/设置密码int no,n; printf(请输入密码并以回车键结束:nn);scanf(%s,f);/读取密码if(strcmp(f,2008china)=0) /判
12、断密码是否正确do printf(请选择删除以方式回车键结束:nn);/打印删除方式菜单printf(*1.按航班号删除nn *2.按航线删除nn *0.返回nn);printf(请在0-2中选择以回车键结束:n);scanf(%d,&n);/读取删除方式if(n=0)break; /跳出循环switch(n)case 1:printf(请输入航班号:n);scanf(%d,&no);/读取航班号read();/调用读取函数break;/跳出循环case 2:printf(请输入起始站 名称:n);scanf(%s,name1);/读取起始站printf(请输入终点站名称:n);scanf(%
13、s,name2);/读取终点站read();/调用读取函数break;/跳出循环for(i=0;im;i+)if(si.num=no|strcmp(si.start,name1)=0&strcmp(si.over,name2)=0)/判断输入信息是否存在si=sm-1;m-;printf(查找完毕或没有这个信息nn); printf(是否继续删除n); printf(请键入yes或no以回车键结束n);scanf(%s,ii); /读取是否继续信息save(); /调用读取函数if(!strcmp(ii,yes)/判断是否继续删除 printf(请按任意键以回车键结束返回上层菜单:n);bre
14、ak;while(n!=1&n!=2&n!=3&n!=4&n!=0); /判断结束elseprintf(对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!nn); void dingpiao()/订票模块int n;char a10;dosearch();/调用查询模块printf(请输入您要订的机票数以回车键结束:n);scanf(%d,&n);/读取所订机票数if(n=n)/判断是否出错si.count=si.count-n;save();/调用保存函数printf(订票成功!nn);break;if(si.countn)/判断是否出错printf(请输入有效的机票数:n); b
15、reak;printf(是否继续? 请输入yes或no以回车键结束:n);/判断是否继续订票scanf(%s,a);while(!strcmp(a,yes);/判断结束void tuipiao()/退票模块int n;char a10;dosearch();/调用查询模块printf(请输入您要退的机票数目:n);scanf(%d,&n);/输入所退票数if(n0) /判断票数是否有效printf(请输入有效的机票数!n);si.count=si.count+n;save();/调用保存模块printf(退票成功!nn);printf(是否继续? 请键入yes或no以回车键结束:nn);/判断
16、是否继续退票scanf(%s,a);while(!strcmp(a,yes);/判断并跳出循环getchar();void xiugai() /修改模块struct xiu /定义结构体 int no;char name120;char name220;char time20;int count;x1;char j10;char f=2008china;/设置密码int n;printf(请输入密码并以回车键结束:nn);scanf(%s,f);/读取密码if(strcmp(f,2008china)=0)/判断是否出错read();/调用读取模块doprintf( 请选择修改方式:nn *1,
17、按航班号修改:nn *2,按航线修改: nn);printf(请在1-2中修改以回车键结束:nn);scanf(%d,&n);/读取修改方式switch(n)case 1:printf(请输入航班号:n);scanf(%d,&x0.no);/读取航班号break;case 2:printf(请输入起始站:n);scanf(%s,x0.name1);/读取起始站printf(请输入终点站:n);scanf(%s,x0.name2);/读取终点站break;for(i=0;im;i+) if(strcmp(si.over,x0.name1)=0&strcmp(si.over,x0.name2)=0
18、)/判断输出条件printf(航班号 起始站 终点站 时间 机票数n);printf(PRINT);break; if(si.num=x0.no)/判断输出条件 printf(航班号 起始站 终点站 时间 机票数n);printf(PRINT);break;x0.no=0; /将结构体中的号为零printf(请输入新航班号、起始站、终点站、时间(星期几)、机票数:n);scanf(%d%s%s%s%d,&x0.no,x0.name1,x0.name2,x0.time,&x0.count);/定义输入格式 si.num=x0.no;/替换航班号 strcpy(si.start,x0.name1);/替换其始站 strcpy(si.over,x0.name2);/替换终点站 strcpy(si.time,x0.time);/替换时间 si.count=x0.count;/替换机票数 save();/调用保存模块 printf(是否继续?请键入yes或no以回车键结束:nn); scanf(%s,j);while(strcmp(j,yes)=0); /判断结束elseprintf(对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!nn);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1