首页 C语言课程设计--火车票管理系统

C语言课程设计--火车票管理系统

举报
开通vip

C语言课程设计--火车票管理系统二、设计内容设计一个火车票务管理系统,用C语言实现。对该系统的要求如下:需求描述:1.系统功能(1)火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价。数据存入数据文件hchsk.dat或hchsk.txt中。(2)火车时刻信息查询。按照车次查询按终点查询按起点查询按终点和日期查询(3)统计按终点统计每日的车次数按起点统计每日的车次数2.系统主界面应有以下功能选项录入火车时刻信息查询火车时刻信息统计火车车次退出三、详细设计说明#include<stdio.h>#include<...

二、设计内容设计一个火车票务管理系统,用C语言实现。对该系统的要求如下:需求描述:1.系统功能(1)火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价。数据存入数据文件hchsk.dat或hchsk.txt中。(2)火车时刻信息查询。按照车次查询按终点查询按起点查询按终点和日期查询(3)统计按终点统计每日的车次数按起点统计每日的车次数2.系统主界面应有以下功能选项录入火车时刻信息查询火车时刻信息统计火车车次退出三、详细设计说明#include<stdio.h>#include<string.h>#include<stdlib.h>intMENU();//菜单模块voidINPUT();//输入模块voidSEARCH();//查询模块voidSELECT();//统计模块voidWRITE();//文件记录模块voidPRINT();//打印模块voidREAD();//文件读取模块voidWRONG();//纠错模块#defineN1000//最大列车组数#definePrint"%s%13s%10s%10s%12s%15s%11s\n",T[i].code,T[i].data,T[i].lp,T[i].ap,T[i].lt,T[i].at,T[i].price//输出记录格式#defineWrong"\n!!!!!!!!!!!输入错误,请重新输入!!!!!!!!!!!\n"#defineGeShi"车次日期起点终点开车时间到达时间票价\n"structTrain{charcode[10];//车次chardata[10];//日期charlp[10];//leftplace起点charap[10];//arriveplace终点charlt[10];//lefttime开车时间charat[10];//arrivetime到达时间charprice[10];//票价}T[N];/*全局变量*/inti=0;//输入计数器intn=0;//合计计数器charl[20];//纠错空间///////////////////////////////////////////////////////////////////////////////////////主函数intmain(){intx;do{x=MENU();switch(x){case1:INPUT();break;case2:SEARCH();break;case3:SELECT();break;case4:printf("\n---------------------------------------");printf("\n正在退出,请按任意键退出");printf("\n\n");printf("\n---------------------------------------\n");break;default:WRONG();break;}}while(x!=4);return0;}///////////////////////////////////////////////////////////////////////////////////////菜单模块intMENU(){intchoice;system("cls");printf("\n----------------------------------------------\n");printf("----------------------------------------------\n");printf("------\n");printf("---欢迎进入火车票务管理系统---\n");printf("------\n");printf("----------------------------------------------\n");printf("----------------------------------------------\n\n");printf("\n--------------请输入选项-------------\n");printf("1.录入火车时刻信息\n");printf("2.查询火车时刻信息\n");printf("3.统计火车车次\n");printf("4.退出\n");printf("-----------------------------------------\n");printf("请选择:");scanf("%d",&choice);gets(l);returnchoice;}///////////////////////////////////////////////////////////////////////////////////////输入模块voidINPUT(){charch;do{system("cls");printf("\n\n====================欢迎进入录入火车时刻信息界面====================\n");do{printf("\n新建列车信息?(y/n)");scanf("%c",&ch);gets(l);if(ch!='y'&&ch!='n')WRONG();}while(ch!='y'&&ch!='n');if(ch=='n')break;printf("---------------------");printf("\n录入第%d趟列车信息\n",n+1);printf("车次");gets(T[i].code);printf("日期");gets(T[i].data);printf("起点");gets(T[i].lp);printf("终点");gets(T[i].ap);printf("开车时间");gets(T[i].lt);printf("到达时间");gets(T[i].at);printf("票价");gets(T[i].price);n++;i++;}while(i<N);WRITE();system("cls");printf("\n");printf("--------------------------------\n");printf("系统记载的列车信息如下\n");printf("--------------------------------\n\n");PRINT();}///////////////////////////////////////////////////////////////////////////////////////文件记录模块voidWRITE(){FILE*fp,*fp1;if((fp=fopen("hchsk.txt","w"))==NULL){printf("无法创建文件!\n\n");getchar();return;}if((fp1=fopen("N.txt","w"))==NULL)//用于记录共几趟车{printf("无法创建文件!\n");getchar();return;}for(i=0;i<n;i++)if(fwrite(&T[i],sizeof(structTrain),1,fp)==0)printf("写入数据失败!\n\n");fprintf(fp1,"%d",n);fclose(fp);fclose(fp1);}///////////////////////////////////////////////////////////////////////////////////////文件读取模块voidREAD(){FILE*fp,*fp1;if((fp=fopen("hchsk.txt","r"))==NULL){printf("无法打开文件\n");getchar();return;}if((fp1=fopen("N.txt","r"))==NULL){printf("无法打开文件!\n\n");getchar();return;}fscanf(fp1,"%d",&n);fclose(fp1);for(i=0;i<n;i++){fread(&T[i],sizeof(structTrain),1,fp);}fclose(fp);}///////////////////////////////////////////////////////////////////////////////////////打印模块voidPRINT(){charch[10];READ();printf("\n===========================================================================\n");printf(GeShi);for(i=0;i<n;i++)printf(Print);printf("===========================================================================\n");printf("\n按任意键返回上级菜单:");gets(ch);}///////////////////////////////////////////////////////////////////////////////////////查询模块voidSEARCH(){charname1[10];//车次charname2[10];//终点charname3[10];//起点charname41[10];//终点charname42[10];//日期charchoice;intj;intk;do{system("cls");printf("\n\n====================欢迎进入查询火车时刻信息界面====================\n");printf("\n++++++++++++++++++请选择查找方式++++++++++++++++++\n\n");printf("----1.显示所有列车信息2.按车次查询3.按终点查询----\n");printf("-----4.按起点查询5.按终点和日期查询6.返回上级菜单----\n");printf("\n请选择:");scanf("%d",&j);gets(l);switch(j){case1:PRINT();break;case2:printf("\n---请输入车次---:");gets(name1);break;case3:printf("\n---请输入终点---:");gets(name2);break;case4:printf("\n---请输入起点---:");gets(name3);break;case5:printf("\n---请输入终点---:");gets(name41);printf("\n---请输入日期---:");gets(name42);break;case6:break;default:WRONG();break;}READ();k=0;if(j==2){for(i=0;i<n;i++){if(strcmp(T[i].code,name1)==0){printf("\n按车次查找列车信息成功!\n");printf("\n===========================================================================\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].code,name1)==0){printf(Print);k++;}}printf("===========================================================================\n");printf("\n-->共查询到%d趟列车信息,请按任意键返回<--",k);gets(l);}if(j==3){for(i=0;i<n;i++){if(strcmp(T[i].ap,name2)==0){printf("\n按终点查找列车信息成功!\n");printf("\n===========================================================================\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].ap,name2)==0){printf(Print);k++;}}printf("===========================================================================\n");printf("\n-->共查询到%d趟列车信息,请按任意键返回<--",k);gets(l);}if(j==4){for(i=0;i<n;i++){if(strcmp(T[i].lp,name3)==0){printf("\n按起点查找列车信息成功!\n");printf("\n===========================================================================\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].lp,name3)==0){printf(Print);k++;}}printf("===========================================================================\n");printf("\n-->共查询到%d趟列车信息,请按任意键返回<--",k);gets(l);}if(j==5){for(i=0;i<n;i++){if(strcmp(T[i].ap,name41)==0&&strcmp(T[i].data,name42)==0){printf("\n按终点和日期查找列车信息成功!\n");printf("\n===========================================================================\n");printf(GeShi);break;}}for(i=0;i<n;i++){if(strcmp(T[i].ap,name41)==0&&strcmp(T[i].data,name42)==0){printf(Print);k++;}}printf("===========================================================================\n");printf("\n-->共查询到%d趟列车信息,请按任意键返回<--",k);gets(l);}do{system("cls");printf("\n\n-->继续查找(1),返回主菜单(2)<--");choice=getchar();gets(l);if(choice!='1'&&choice!='2')WRONG();}while(choice!='1'&&choice!='2');}while(choice!='2');}///////////////////////////////////////////////////////////////////////////////////////统计模块voidSELECT(){charname1[10];//终点charname2[10];//起点intt,k;charchoice;do{system("cls");printf("\n\n====================欢迎进入统计火车车次界面====================\n");printf("\n-|--|--|--|-请选择统计方式-|--|--|--|-\n\n");printf("1.按终点统计每日的车次数\n");printf("2.按起点统计每日的车次数\n");printf("\n请选择:");scanf("%d",&t);gets(l);switch(t){case1:printf("请输入终点:");gets(name1);break;case2:printf("请输入起点:");gets(name2);break;default:WRONG();break;}READ();if(t==1){k=0;for(i=0;i<n;i++){if(strcmp(T[i].lp,name1)==0){printf("\n按终点统计列车信息成功!\n");break;}}for(i=0;i<n;i++){if(strcmp(T[i].lp,name1)==0)k++;}printf("\n-->共查询到%d趟列车信息,请按任意键返回<--",k);gets(l);}if(t==2){k=0;for(i=0;i<n;i++){if(strcmp(T[i].lp,name2)==0){printf("\n按起点统计列车信息成功!\n");break;}}for(i=0;i<n;i++){if(strcmp(T[i].lp,name2)==0)k++;}printf("\n-->共查询到%d趟列车信息,请按任意键返回<--",k);gets(l);}do{system("cls");printf("\n\n-->继续统计(1),返回主菜单(2)<--");choice=getchar();gets(l);if(choice!='1'&&choice!='2')WRONG();}while(choice!='1'&&choice!='2');}while(choice!='2');}///////////////////////////////////////////////////////////////////////////////////////纠错模块voidWRONG(){system("cls");printf("\n\n--->!!!输入错误,请按任意键返回!!!<---");gets(l);}29
本文档为【C语言课程设计--火车票管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
双喜
人民教育工作者
格式:doc
大小:61KB
软件:Word
页数:
分类:工学
上传时间:2019-07-19
浏览量: