还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
火车票务管理系统
1、课题内容和要求设计目标设计一个火车票务管理系统,用C语言实现对该系统的要求如下需求描述
1.系统功能1火车时刻信息录入包括车次、日期、起点、终点、开车时间、到达时间、票价数据存入数据文件hchsk.dat或hchsk.___中2火车时刻信息查询按照车次查询按终点查询按起点查询按终点和日期查询3统计按终点统计每日的车次数按起点统计每日的车次数
2.系统主界面应有以下功能选项录入火车时刻信息查询火车时刻信息统计火车车次退出注建议用VC环境__用户界面结果形式提交程序设计报告和可演示的系统软件
二、需求分析系统主界面应有以下功能选项1.录入火车时刻信息2.查询火车时刻信息3.统计火车车次
4.退出1火车时刻信息录入包括车次、日期、起点、终点、开车时间、到达时间、票价数据存入数据文件hchsk.dat或hchsk.___中2火车时刻信息查询按照车次查询按终点查询按起点查询按终点和日期查询3统计按终点统计每日的车次数按起点统计每日的车次数
2、概要设计voidSearchTrainNum;//按照车次查询voidSearchToPla__;//按终点查询voidSearchFromPla__;//按起点查询voidSearchToPla__AndDate;//按终点和日期查询voidCountToPla__;//按终点统计每日的车次数voidCountFromPla__;//按起点统计每日的车次数
三、详细设计程序的源代码与注释#includestdio.h#includestring.h#includestdlib.hvoidSearchTrainNum;voidSearchToPla__;voidSearchFromPla__;voidSearchToPla__AndDate;voidCountToPla__;voidCountFromPla__;voidStar;structTRAIN{chartrainNum
[10];chardate
[30];charfromPla__
[20];chartoPla__
[20];charinTime
[30];charoutTime
[30];doublepri__;};structTRAINtrain
[30];int__in{intrequest;charch=Y;inti=0;doublemypri__;FILE*fp;repeat:Star;printf火车管理系统界面\n;printf
1.录入火车时刻信息.\n;printf
2.查询火车时刻信息.\n;printf
3.统计火车车次.\n;printf
4.退出.\n;Star;printf\n;printf请输入:;scanf%drequest;switchrequest//利用case分支结构{case1:{fp=fopen.\\train.recwb;//利用文件与流if!fp{printfFilecannotbeopened\n;exit1;}do{printfEnter车次日期起点终点开车时间到达时间票价\n;scanf%s%s%s%s%s%s%lftrain[i].trainNumtrain[i].datetrain[i].fromPla__,train[i].toPla__train[i].inTimetrain[i].outTimemypri__;train[i].pri__=mypri__;fwritetrain[i]sizeofstructTRAIN1fp;i++;printfcontinueY/NNtoend;getchar;scanf%cch;}whilech!=N;fclosefp;printf返回主界面吗Y返回;getchar;scanf%cch;ifch==Y{printf\n\n;gotorepeat;}}break;case2:{printf\n\n;printf火车时刻信息查询\n;printf
1.按车次查询.\n;printf
2.按终点查询.\n;printf
3.按起点查询.\n;printf
4.按终点和日期查询.\n;printf
5.退出.\n;printf请输入:;scanf%drequest;switchrequest{case1:SearchTrainNum;break;case2:SearchToPla__;break;case3:SearchFromPla__;break;case4:SearchToPla__AndDate;break;case5:exit0;break;}printf返回主界面吗Y返回;getchar;scanf%cch;ifch==Y{printf\n\n;gotorepeat;}}break;case3:{printf\n\n;printf火车车次统计系统\n;printf
1.按终点统计每日的车次数.\n;printf
2.按起点统计每日的车次数.\n;printf
3.退出.\n;printf请输入:;scanf%drequest;switchrequest{case1:CountToPla__;break;case2:CountFromPla__;break;case3:exit0;break;}printf返回主界面吗Y返回;getchar;scanf%cch;ifch==Y{printf\n\n;gotorepeat;}}break;case4:{Star;printf欢迎下次使用拜拜~~\n;Star;}exit0;break;default:printfIncorrectnumentered.;printfEnteranewnum.\n;break;}return0;}voidSearchTrainNum{FILE*fp1;charnum
[20];charch;inti=0;fp1=fopen.\\train.recr+;if!fp1{printfFilecannotbeopened\n;exit1;}do{rewindfp1;//文件指针的操作,到文件头部函数printf输入你要查找的车次号.\n;scanf%snum;while!feoffp1{freadtrain[i]sizeofstructTRAIN1fp1;ifstrcmpnumtrain[i].trainNum==0{printf%-4s%-12s%-8s%-10s%-10s%-8s%.2lftrain[i].trainNumtrain[i].datetrain[i].fromPla__train[i].toPla__train[i].inTimetrain[i].outTimetrain[i].pri__;printf\n;}i++;}printfcontinueY/NNtoend;getchar;scanf%cch;}whilech!=N;printf\n;fclosefp1;}voidSearchToPla__{FILE*fp2;charnum
[20];charch;inti=0;fp2=fopen.\\train.recr+;if!fp2{printfFilecannotbeopened\n;exit1;}do{rewindfp2;printf输入你要查询的终点.\n;scanf%snum;while!feoffp2{freadtrain[i]sizeofstructTRAIN1fp2;ifstrcmpnumtrain[i].toPla__==0{printf%-4s%-12s%-8s%-10s%-10s%-8s%.2lftrain[i].trainNumtrain[i].datetrain[i].fromPla__train[i].toPla__train[i].inTimetrain[i].outTimetrain[i].pri__;printf\n;}i++;}printfcontinueY/NNtoend;getchar;scanf%cch;}whilech!=N;printf\n;fclosefp2;}voidSearchFromPla__{FILE*fp3;charnum
[20];charch;inti=0;fp3=fopen.\\train.recr+;if!fp3{printfFilecannotbeopened\n;exit1;}do{rewindfp3;printf输入你要查询的起点.\n;scanf%snum;while!feoffp3{freadtrain[i]sizeofstructTRAIN1fp3;ifstrcmpnumtrain[i].fromPla__==0{printf%-4s%-12s%-8s%-10s%-10s%-8s%.2lftrain[i].trainNumtrain[i].datetrain[i].fromPla__train[i].toPla__train[i].inTimetrain[i].outTimetrain[i].pri__;printf\n;}i++;}printfcontinueY/NNtoend;getchar;scanf%cch;}whilech!=N;printf\n;fclosefp3;}voidSearchToPla__AndDate{FILE*fp4;charnum
[20];charnum1
[20];charch;inti=0;fp4=fopen.\\train.recr+;if!fp4{printfFilecannotbeopened\n;exit1;}do{rewindfp4;printf输入你要查询的终点与日期.\n;scanf%snum;scanf%snum1;while!feoffp4{freadtrain[i]sizeofstructTRAIN1fp4;ifstrcmpnumtrain[i].toPla__==0strcmpnum1train[i].date==0{printf%-4s%-12s%-8s%-10s%-10s%-8s%.2lftrain[i].trainNumtrain[i].datetrain[i].fromPla__train[i].toPla__train[i].inTimetrain[i].outTimetrain[i].pri__;printf\n;}i++;}printfcontinueY/NNtoend;getchar;scanf%cch;}whilech!=N;printf\n;fclosefp4;}voidCountToPla__{FILE*fp5;charnum
[20];charch;inti=0;intj=0;fp5=fopen.\\train.recr+;if!fp5{printfFilecannotbeopened\n;exit1;}do{rewindfp5;printf输入你要统计的车次数的终点.\n;scanf%snum;j=0;while!feoffp5{freadtrain[i]sizeofstructTRAIN1fp5;ifstrcmpnumtrain[i].toPla__==0{j++;}i++;}printf当日终点%s的车次数:%dnumj;printf\n;printfcontinueY/NNtoend;getchar;scanf%cch;}whilech!=N;fclosefp5;}voidCountFromPla__{FILE*fp6;charnum
[20];charch;inti=0;intj=0;fp6=fopen.\\train.recr+;if!fp6{printfFilecannotbeopened\n;exit1;}do{rewindfp6;printf输入你要统计的车次数的起点.\n;scanf%snum;j=0;while!feoffp6{freadtrain[i]sizeofstructTRAIN1fp6;ifstrcmpnumtrain[i].fromPla__==0{j++;}i++;}printf当日起点%s的车次数:%dnumj;printf\n;printfcontinueY/NNtoend;getchar;scanf%cch;}whilech!=N;fclosefp6;}voidStar{inti;fori=0;i20;i++{printf*;}printf\n;}-。