.. ..
}
fclose(fp);//关闭文件 }
void read()//从文件读取信息模块 {
FILE *fp;//定义文件指针
if((fp=fopen(\飞机票系统数据保存.txt\打开文件,并判断是否出错 printf(\创建文件失败! \打印出错提示 else
for(i=0;i fscanf(fp,\ \ printf(PRINT); } fclose(fp);//关闭文件 } void print()//打印模块 { char w[10]; printf(\航班号 起始站 终点站 时间 机票数 \\n\ read();//调用读取文件函数 /*for(i=0;i printf(PRINT);//打印信息 printf(\ }*/ printf(\请按任意键回车键结束返回上层菜单以: \\n\ scanf(\} void search()//查询模块 { char name1[20]; char name2[20]; char ii[10]; int n,no; do { printf(\请选择查找方式: \打印查询方式菜单 printf(\按航班号查找 \ \按终点站查找 \ \按航线查找 \ \返回 \ printf(\请在0-3中选择: \ \按其他键以回车键结束返回主菜单:\\n \ scanf(\读取查找方式 if(n==0) break; switch(n) ... . . .. .. { case 1: printf(\请输入航班号: \ scanf(\航班号 break; case 2: printf(\请输入终点站名称: \ scanf(\读取终点站 break; case 3: printf(\请输入起始站名称: \ scanf(\读取起始站 printf(\请输入终点站名称: \ scanf(\终点站 break; } printf(\航班号 起始站 终点站 时间 机票数 \\n\ read();//调用读取函数 for(i=0;i if(strcmp(s[i].over,name1)==0&&strcmp(s[i].over,name2)==0)//按终点站起始站判断输出条件 { printf(\对不起,没有您要的航班信息!\\n \ break; } if(strcmp(s[i].over,name2)==0) { printf(\航班号 起始站 终点站 时间 机票数 \\n\ printf(PRINT);//打印信息 break; } if(s[i].num==no)//按航班号判断输出条件 { printf(\查找航班信息成功!\\n \ printf(\航班号 起始站 终点站 时间 机票数 \\n\ printf(PRINT);//打印信息 break; } } no=0;//将航班号赋值为0 printf(\没有您需要的信息或查找完毕:\\n \ \是否继续查找?请键入yes或no以回车键结束\\n \ scanf(\ }while(strcmp(ii,\判断结束 } void Delete()//删除模块 { char name1[20]; char name2[20]; char ii[10]; char f[]=\设置密码 ... . . .. .. int no,n; printf(\请输入密码并以回车键结束: \\n\ scanf(\读取密码 if(strcmp(f,\判断密码是否正确 { do { printf(\请选择删除以方式回车键结束:\\n \打印删除方式菜单 printf(\按航班号删除 \ \按航线删除 \ \返回 \ printf(\请在0-2中选择以回车键结束: \\n\ scanf(\读取删除方式 if(n==0) break; //跳出循环 switch(n) { case 1: printf(\请输入航班号: \ scanf(\读取航班号 read();//调用读取函数 break;//跳出循环 case 2: printf(\请输入起始站 名称: \ scanf(\读取起始站 printf(\请输入终点站名称: \ scanf(\读取终点站 read();//调用读取函数 break;//跳出循环 } for(i=0;i if(s[i].num==no)//按航班号删除 { printf(\航班号 起始点 终点站 时间 票数 \\n\ for(int j=i;j s[j]=s[j+1]; } m--; for(int i=0;i printf(PRINT); } } if(strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0) { printf(\航班号 起始点 终点站 时间 票数 \\n\ for(int k=i;k s[k]=s[k+1]; ... . . .. .. } m--; for(int i=0;i printf(PRINT); } } } printf(\查找完毕或没有这个信息 \ printf(\是否继续删除 \\n\ printf(\请键入yes或no以回车键结束 \\n\ scanf(\读取是否继续信息 save(); //调用读取函数 if(!strcmp(ii,\判断是否继续删除 printf(\请按任意键以回车键结束返回上层菜单: \ break; }while(n!=1&&n!=2&&n!=0); //判断结束 } else printf(\对不起密码错误!您不是管理员,不能使用此项功能!!再见!\\n \ } void Booking()//订票模块 { int n; char a[10]; do { search();//调用查询模块 printf(\请输入您要订的机票数以回车键结束:\\n \ scanf(\读取所订机票数 if(n<0||s[i].count printf(\请输入有效的机票数! \判断机票数是否出错 } if(s[i].count!=0&&s[i].count>=n)//判断是否出错 { s[i].count=s[i].count-n; save();//调用保存函数 printf(\订票成功!\\n\\n \ } printf(\是否继续? 请输入yes或no以回车键结束: \\n\判断是否继续订票 scanf(\ }while(!strcmp(a,\判断结束 } void Refund()//退票模块 { int n; char a[10]; do ... . . .. .. { search();//调用查询模块 printf(\请输入您要退的机票数目: \ scanf(\输入所退票数 if(n<0) //判断票数是否有效 printf(\请输入有效的机票数! \else{ s[i].count=s[i].count+n; save(); //调用保存模块 printf(\退票成功! \} printf(\是否继续? 请键入yes或no以回车键结束: \判断是否继续退票 scanf(\ }while(!strcmp(a,\判断并跳出循环 } void Modify() //修改模块 { struct modify //定义结构体 { int mo; char start1[20]; char over1[20]; char time1[20]; int count1; }M[1]; char j[10]; char f[]=\设置密码 int n; printf(\请输入密码并以回车键结束: \ scanf(\读取密码 if(strcmp(f,\判断是否出错 { printf(\航班号 起始点 终点站 时间 票数 \\n\ read();//调用读取模块 do { printf( \请选择修改方式:\\n \ \按航班号修改: \\n\ \按航线修改:\\n \ printf(\请在1---2中修改以回车键结束: \\n\ scanf(\读取修改方式 switch(n) { case 1:printf(\请输入航班号: \ scanf(\读取航班号 break; case 2:printf(\请输入起始站: \ scanf(\读取起始站 printf(\请输入终点站: \ scanf(\读取终点站 break; ... . .