/*菜单枚举 指针数组*/ char *menu[10]={"********************************************欢迎使用车票查询系统********************************************\n", "\n\t _____________________________________功能选项_____________________________________", "\n\n\t\t\t\t 1. 录入班次信息 ","\t\t 2. 增加班次 ", "\n\n\t\t\t\t 3. 查询路线 ","\t\t\t 4. 浏览班次信息 ", "\n\n\t\t\t\t 5. 售票 ","\t\t\t 6. 退票 ", "\n\n\t\t\t\t\t 0. 退出 ", "\n\t __________________________________________________________________________________"}; /*菜单函数*/ int menu_select(){ char s[5]; //定义要输入的数字功能 int c,i,f=0; system("cls"); //清屏 system("color F0"); //改变颜色(F为背景颜色为白色,0字体颜色为黑色) for(i=0;i<10;i++){ printf("%s",menu[i]); //输出菜单各项 } printf("\n\n\n请选择(0-6):"); scanf("%d",&c); return c; } /*函数声明*/ void entry_bata(); //录入 void add_bata(); //添加 void search_bata(); //查询 void search_num(); //按班次查询 void search_endstation(); //按终点站查询 void menu_a(); //搜索函数菜单 void exit(); //退出函数 void Look_through(); //浏览函数 void sell_ticket(); //售票 void return_ticket(); //退票 int hour_judge(int ); //时间比较 void Look_through_main(); //浏览函数的主函数 void save(); //保存函数 void out_or_buy_ticket(); //退售票函数 int add_or_entry(int , int); //录入与增加函数 int password(); //密码判断函数 /*录入函数*/ void entry_bata(){ int i=0,j; //i控制退出,n控制班次个数,j控制循环次数 system("cls"); if((password())==0){ //调用密码判断函数,并判断密码是否正确 printf("验证成功,正在载入..."); Sleep(1000); //为了效果更好,睡眠1s system("cls"); FILE *fp,*fp1; printf("请输入要录入的班次个数:"); scanf("%d",&CAR_num); system("cls"); printf("*************************************************班次录入系统********************************************\n\n\n"); add_or_entry(1,CAR_num); //调用录入与增加函数 fp1=fopen("CAR_num.txt","w"); fprintf(fp1,"%d",CAR_num); //写入车次数量文件信息 printf("文件写入完成按任意键退出..."); getch(); fclose(fp1); //关闭文件 } else{ printf("密码错误...\n"); getch(); } } /*增加班次*/ void add_bata(){ int i=0,j,t; //i控制退出,n控制班次个数,j控制循环次数 system("cls"); if((password())==0){ //调用密码函数,并判断密码是否正确 printf("验证成功,正在载入..."); Sleep(1000); system("cls"); FILE *fp,*fp1; fp=fopen("input_data.txt","a+"); //打开input_data.txt文件 if(fp==NULL) printf("文件打开失败"); printf("请输入要增加的班次个数:"); scanf("%d",&t); system("cls"); printf("*************************************************班次增加系统********************************************\n\n\n"); add_or_entry(0,t); //调用录入与增加函数 fp1=fopen("CAR_num.txt","r"); //读入文件中保存的CAR_num的数据 fscanf(fp1,"%d",&CAR_num); t=CAR_num+t; fclose(fp1); fp1=fopen("CAR_num.txt","w"); //改写CAR_num的数据 fprintf(fp1,"%d",t); //写入车次文件信息 printf("文件写入完成按任意键退出..."); getch(); fclose(fp1); //关闭文件 } else{ printf("密码错误...\n"); getch(); } } /*搜索函数*/ void search_bata(){ int t; //选择变量 system("cls"); printf("\n\t ________________________________________查询选项_________________________________________"); printf("\n\n\t\t\t\t1.按班次号查询"); printf("\t\t\t\t2.按终点站查询"); printf("\n\t\t\t\t\t\t 0.退出"); printf("\n\n请选择:"); scanf("%d",&t); switch(t){ case 1:search_num();break; //按班次查询 case 2:search_endstation();break; //按终点站查询 case 0:break; } } /*按班次号查询*/ void search_num(){ FILE *fp,*fp1; int num,t,i,ti; system("cls"); fp1=fopen("CAR_num.txt","r"); //读入车次数量文件 if(fp1==NULL) printf("文件打开失败"); rewind(fp1); fscanf(fp1,"%d",&CAR_num); CAR_num=CAR_num; if((fp=fopen("input_data.txt","r"))==NULL){ printf("文件打开失败,按任意键返回..."); getch(); exit(0); //退出 } rewind(fp); printf("请输入要查询的班次号:\n"); scanf("%d",&num); //输入查询班次号 system("cls"); menu_a(); //加载搜索菜单 for(i=0;isum[j].man)){ printf("|%10d|%s%s |%s |%s |%2.f |%10d|%10d|",sum[j].num,sum[j].time,sum[j].time_min,sum[j].start, sum[j].end,sum[j].hour,sum[j].Bearer,sum[j].man); //输出班次 printf(" 能购票 |\n"); printf("\n\n\n\t\t\t是否购票(1/0)? "); int check; scanf("%d",&check); //判断是否购票 getchar(); if(check==1){ sum[j].man=sum[j].man+1; save(); //比较妥协的保存方式 printf("购买完成\n"); } printf("按任意键返回..."); getch(); } else{ printf("\n\n\n未找到能够购票的车次..."); getch(); } } } } /*退票*/ void return_ticket(){ int j,t,u; out_or_buy_ticket(); printf("\n\n请选择你要退票的车次编号:"); scanf("%d",&t); for(j=0;jtm_hourtm_hour==atoi(sum[i].time)&&local->tm_min='0'&&sum[j].time[0]<='9'&&sum[j].time[1]>='0'&&sum[j].time[1]<='9'&&sum[j].time[2]==':'&&sum[j].time_min[0]>='0'&&sum[j].time_min[0]<='9'&&sum[j].time_min[1]<='9'&&sum[j].time_min[1]>='0'){ printf("请输入起点站:"); scanf("%s",sum[j].start); printf("请输入终点站:"); scanf("%s",sum[j].end); printf("请输入行车时间:"); scanf("%f",&sum[j].hour); printf("请输入额定载量:"); scanf("%d",&sum[j].Bearer); printf("请输入已订票人数:"); scanf("%d",&sum[j].man); //为了增强txt文件的可读性,运用了fprintf fprintf(fp,"%d %s%s %s %s %.2f %d %d\n",sum[j].num,sum[j].time,sum[j].time_min,sum[j].start,sum[j].end,sum[j].hour,sum[j].Bearer,sum[j].man); } else{ printf("输入格式错误"); } } fclose(fp); } /*密码判断*/ int password(){ char password[10]={NULL}; int i,f; printf("\n\n\n\n\t\t\t\t请输入管理员密码:\n"); for(i=0;i<6;i++) { password[i]=getch(); printf("*"); } password[i]='\0'; printf("\n"); f=strcmp(password,"123456"); Sleep(100); return f; }