C语言火车票管理系统_第1页
C语言火车票管理系统_第2页
C语言火车票管理系统_第3页
C语言火车票管理系统_第4页
C语言火车票管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include<conio.h> #define N 1000 typedef struct TICKET /定义新结构体TICKETchar num10; /车次char hour3; char min3; char from10; char to10; float hours; int max; /车载容量 int now; /已售票数 CLASS;int c

2、lass_num=0; CLASS recordsN; int system_time(); void message(); void ShowTable1(); void ShowTable2(int i); void Display(); void add(); void save(); void load(); / 按班次查询void search(); /查询void change(); /修改void quit(); /退出void buyticket(); /售票void deleteticket(); /取消int menu_select(); /菜单int whether(in

3、t); /判断购买时间void find(char s1,char s2); /按起点终点查询void deletemessage(); /删除int findnum(char s1); /班次查询void get(int,int); /修改及增加班次char *menu=" 欢迎使用车票查询系统 ","n*菜单*","n 1. 录入班次 ","n 2. 浏览班次信息 ","n 3. 查询路线 ","n 4. 增加班次 ","n 5. 售票 ","

4、;n 6. 退票 ","n 7. 修改班次 ","n 8. 删除班次 ","n 9. 退出 " ; int main()system("cls"); while(1) switch(menu_select() /菜单case 1: message();break; case 2: Display();break; case 3: search();break; case 4: add();break; case 5: buyticket();break; case 6: deleteticket();br

5、eak; case 7: change();break; case 8: deletemessage();break; case 9: quit();break; int menu_select() /菜单char s5; int c,i; system("cls"); for(i=0;i<11;i+)printf("%s",menui); /输出菜单 i=0; while(c<0|c>9) printf("n"); printf("n请输入选项(1-9): ");scanf("%s&q

6、uot;,s);c=atoi(s); /输出菜单return c; void message() /录入 int i=0,j=5,h; char s5;FILE *fp; /定义文件型指针变量system("cls"); /刷屏if(fp=fopen("d:车票管理系统0.dat","rb")!=NULL) /fopen打开文件 printf("增加信息n");printf("请输入任意键返回n");scanf("%s",s);i=1; if(i=0) system(&quo

7、t;cls"); /刷屏printf("请输入班次总数:n");scanf("%d",&class_num); /指向班次指针system("cls"); /刷屏for(i=0;i<class_num;i+) system("cls"); /刷屏printf("请输入%d班次信息:n",i+1);h=-1;for(;h!=i;) /循环输出printf("请输入班次:n");scanf("%s",recordsi.num);for(

8、h=0;h<i;h+)if(strcmp(recordsh.num,recordsi.num)=0) printf("该班次已存在n");break; get(i,j); /修改及增加班次j=5;save(); /调用保存函数/*显示所有函数*/void Display() /显示所有函数int i,j;system("cls"); /刷屏load(); / 按班次查询ShowTable1(); for(i=0,j=0;i<class_num;i+,j+=2) /按班次顺序输出 if(whether(i) /判断时间是否超出printf(&q

9、uot;|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);else printf("|%10s| 已发车 |%10s|%10s|%8.1f|%8d|%8d|",recordsi.num,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);

10、ShowTable2(j); printf("n按任意键继续n");getch(); void ShowTable1() int i=2;system("cls"); /刷屏printf(" 班次信息 n");printf("n|-|-|-|-|-|-|-|n"); printf("n| 班次 | 发车时间 | 起点站 | 终点站 |行车时间|额定载量| 已售票 |n");void ShowTable2(int i) printf("n|-|-|-|-|-|-|-|n");v

11、oid search() /查询班次int i;char s110='0',s210='0'system("cls"); /刷屏printf("1. 按班次查询n");printf("2. 按终点站查询n");printf("3. 退出n");printf("请选择(1-3):n");scanf("%d",&i);load(); /按班次查询switch(i) case 1: printf("请输入要查询的班次:n"

12、); scanf("%s",s1);find(s1,s2); break;case 2:printf("请输入要查询终点站:n"); scanf("%s",s2);find(s1,s2); break; case 3: break;default : printf("输入错误!n");break;printf("按任意键继续n");getch(); void find(char s1,char s2)int i,h=0,m;ShowTable1(); if(s20='0')m=1

13、; else m=0;for(i=0;i<class_num;i+)if(strcmp(s1,recordsi.num)=0|strcmp(s2,recordsi.to)=0) printf("n");printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);h+=2;if(m=1)break;S

14、howTable2(h); if(h=0)printf("查找的班次不存在n");void add() int i,j=5;load(); system("cls"); printf("1. 增加班次n");printf("2. 返回n");printf("请选择(1-2)n");scanf("%d",&i);if(i=1)system("cls"); printf("1. 输入要增加的班次:n");scanf("%s

15、",recordsclass_num.num);for(i=0;i<class_num;i+)if(strcmp(recordsclass_num.num,recordsi.num)=0) printf("输入错误n");getch(); break;if(i=class_num) get(i,j); class_num+; save(); void buyticket() int i;char num10;system("cls"); printf("1. 售票n");printf("2. 返回n"

16、;);printf("请选择(1-2):n");scanf("%d",&i);if(i=1)load(); / 按班次查询search(); printf("请输入要订票的班次(若无请输入0):n");scanf("%s",num);for(i=0;i<class_num;i+)if(strcmp(num,recordsi.num)=0) if(recordsi.max>recordsi.now&&whether(i)=1) recordsi.now+; printf("

17、;通向%s班次为%s的票订票成功n",recordsi.to,recordsi.num);save(); getch(); break;elseprintf("该班次已满或已发出!n");getch(); void deleteticket() int i;char num10;system("cls"); printf("1. 退票n");printf("2. 返回n");printf("请选择(1-2)n:");scanf("%d",&i);if(i=1

18、)system("cls"); load(); printf("请输入要退票的班次:n");scanf("%s",num);i=findnum(num); if(strcmp(num,recordsi.num)=0) if(whether(i) printf("是否确认");scanf("%s",num);if(num0='y'|num0='Y') recordsi.now-; printf("退票成功n");save(); getch();

19、elseprintf("该班车已发出,无法退票n");getch(); if(i=class_num)printf("输入错误n");getch(); void change() char num10,s10;int h=0,j=13,i;load(); system("cls"); printf("请输入要修改的班次:n");scanf("%s",num);i=findnum(num); if(i=class_num)printf("输入错误n");getch(); els

20、eprintf("确认修改n");scanf("%s",s);if(s0='y'|s0='Y')get(i,j); save(); void deletemessage() int i,h=0;char num10;system("cls"); printf("1. 删除班次n");printf("2. 返回n");printf("请选择(1-2):n");scanf("%d",&i);if(i=1)system(&

21、quot;cls"); printf("请输入要删除的班次:n");scanf("%s",num);i=findnum(num); if(i=class_num)printf("输入错误n");getch(); elseprintf("是否确认n");scanf("%s",num);if(num0='y'|num0='Y')for(;i<class_num-1;i+) recordsi=recordsi+1;class_num-; save();

22、printf("删除成功n");getch();int findnum(char s1) int i,h=0;ShowTable1(); for(i=0;i<class_num;i+)if(strcmp(s1,recordsi.num)=0) printf("|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|",recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now

23、);h+=2; break;ShowTable2(h); return i;void save() FILE *fp1,*fp2; if(fp1=fopen("d:车票管理系统.dat","wb")=NULL) /打开文件printf("文件打开错误!n");exit(0);if(fp2=fopen("d:车票管理系统0.dat","wb")=NULL) printf("文件打开错误!n");exit(0);fwrite(&class_num,sizeof(int),

24、1,fp2); fwrite(records,sizeof(CLASS),class_num,fp1);fclose(fp1);fclose(fp2); void load() FILE *fp1,*fp2;if(fp1=fopen("d:车票管理系统.dat","rb")=NULL)system("cls"); printf("文件打开错误n");getch(); exit(0);if(fp2=fopen("d:车票管理系统0.dat","rb")=NULL)system(

25、"cls"); printf("文件打开错误n");getch(); exit(0); fread(&class_num,sizeof(int),1,fp2); fread(records,sizeof(CLASS),class_num,fp1);fclose(fp1);fclose(fp2); void quit() char s5; printf("确认退出n");scanf("%s",s);if(s0='y'|s0='Y')exit(0);void get(int i,int j) for(;)printf("请输入发车时间(xx xx)");scanf("%s%s",recordsi.hour,recordsi.min);if(atoi(recordsi.hour)<24&&atoi(reco

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论