火车票务管理系统C语言.docx
- 文档编号:1677247
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:20
- 大小:85.40KB
火车票务管理系统C语言.docx
《火车票务管理系统C语言.docx》由会员分享,可在线阅读,更多相关《火车票务管理系统C语言.docx(20页珍藏版)》请在冰豆网上搜索。
火车票务管理系统C语言
火车票务管理系统
、课题内容和要求
设计目标:
设计一个火车票务管理系统,用C语言实现。
对该系统的要求如下:
需求描述:
1.系统功能
(1)火车时刻信息录入。
包括车次、日期、起点、终点、开车时间、到达时间、票价
数据存入数据文件hchsk.dat或hchsk.txt中。
(2)火车时刻信息查询。
按照车次查询
按终点查询
按起点查询
按终点和日期查询
(3)统计
按终点统计每日的车次数
按起点统计每日的车次数
2.系统主界面应有以下功能选项
录入火车时刻信息
查询火车时刻信息
统计火车车次
退出
注:
建议用VC环境开发用户界面。
结果形式:
提交程序设计报告和可演示的系统软件
二、需求分析
系统主界面应有以下功能选项
1•录入火车时刻信息
2•查询火车时刻信息
3.统计火车车次
4.退出
(1)火车时刻信息录入。
包括车次、日期、起点、终点、开车时间、到达时间、票价
数据存入数据文件hchsk.dat或hchsk.txt中。
(2)火车时刻信息查询。
按照车次查询
按终点查询
按起点查询
按终点和日期查询
⑶统计
按终点统计每日的车次数
按起点统计每日的车次数
概要设计
voidSearchTrainNum();〃按照车次查询
voidSearchToPlace();〃按终点查询
voidSearchFromPlace();〃按起点查询
voidSearchToPlaceAndDate();〃按终点和日期查询
voidCountToPlace();〃按终点统计每日的车次数
voidCountFromPlace();〃按起点统计每日的车次数
三、详细设计
程序的源代码与注释
#include
#includevstring.h>
#include
voidSearchTrainNum();
voidSearchToPlace();
voidSearchFromPlace();
voidSearchToPlaceAndDate();
voidCountToPlace();
voidCountFromPlace();
voidStar();
structTRAIN
{
chartrainNum[10];
chardate[30];
charfromPlace[20];
chartoPlace[20];
charinTime[30];
charoutTime[30];
doubleprice;
};
structTRAINtrain[30];
intmain()
{
intrequest;
charch='Y';
inti=0;
doublemyprice;
FILE*fp;
repeat:
Star();
printf("
火车管理系统界面\n");
printf("1.
录入火车时刻信息.\n");
printf("2.
查询火车时刻信息.\n");
printf("3.
统计火车车次.\n");
printf("4.
退出.\n");
Star();
printf("\n");
printf("
请输入:
");
scanf("%d",&request);
switch(request)//利用case分支结构
{
case1:
{fp=fopen(".\\train.rec","wb");//利用文件与流
if(!
fp)
{
printf("Filecannotbeopened\n");
exit
(1);
}
do
{
printf("Enter车次日期起点终点开车时间到达时间
票价\n>>>");
scanf("%s%s%s%s%s%s%lf",train[i].trainNum,train[i].date,train[i].fromPlace
,train[i].toPlace,train[i].inTime,train[i].outTime,&myprice);
train[i].price=myprice;
fwrite(&train[i],sizeof(structTRAIN),1,fp);
printf("continue(Y/N)(Ntoend)?
");getchar();
scanf("%c",&ch);
}while(ch!
='N');
fclose(fp);
printf("返回主界面吗?
(Y返回门;
getchar();
scanf("%c",&ch);
if(ch=='Y')
{
printf("\n\n");
gotorepeat;
}
}break;
case2:
{printf("\n\n");
printf(">>>>>火车时刻信息查询 printf("1. 按车次查询.\n"); printf("2. 按终点查询.\n"); printf("3. printf("4. 按起点查询.\n"); 按终点和日期查询.\n"); printf("5. 退出.\n"); printf(" 请输入: "); scanf("%d",&request); switch(request) case1: SearchTrainNum();break; case2: SearchToPlace();break; case3: SearchFromPlace();break; case4: SearchToPlaceAndDate();break; case5: exit(0);break; } printf("返回主界面吗? (Y返回)"); getchar(); scanf("%c",&ch); if(ch=='Y') { printf("\n\n"); gotorepeat; } }break; case3: { printf("\n\n"); printf(">>>>> 火车车次统计系统<vvvv\n"); printf("1. 按终点统计每日的车次数.\n"); printf("2. 按起点统计每日的车次数.\n"); printf("3. 退出.\n"); printf(" 请输入: "); scanf("%d",&request); switch(request) { case1: CountToPlace();break; case2: CountFromPlace();break; case3: exit(0);break; } printf("返回主界面吗? (Y返回)"); getchar(); scanf("%c",&ch); if(ch=='Y') { printf("\n\n"); gotorepeat; } }break; case4: { Star(); printf("欢迎下次使用,拜拜~~\n"); Star(); } exit(0);break; default: printf("Incorrectnumentered."); printf("Enteranewnum.\n"); break; } return0; voidSearchTrainNum() { FILE*fp1; charnum[20]; charch; inti=0; fp仁fopen(".\\train.rec","r+"); if(! fp1) { printf("Filecannotbeopened\n"); exit (1); } do { rewind(fp1);//文件指针的操作,到文件头部函数 printf("输入你要查找的车次号.\n>>>"); scanf("%s",num); while(! feof(fp1)) { fread(&train[i],sizeof(structTRAIN),1,fp1); if(strcmp(num,train[i].trainNum)==0) { printf("%-4s%-12s%-8s%-10s%-10s%-8s%.2lf",train[i].trainNum,train[i].date, train[i].fromPlace,train[i].toPlace, train[i].inTime,train[i].outTime,train[i].price); printf("\n"); } i++; } printf("continue(Y/N)(Ntoend)? "); getchar(); scanf("%c",&ch); }while(ch! ='N'); printf("\n"); fclose(fp1); } voidSearchToPlace() { FILE*fp2; charnum[20]; charch; inti=0; fp2=fopen(".\\train.rec","r+"); if(! fp2) { printf("Filecannotbeopened\n"); exit (1); } do rewind(fp2)八 鸯>w«14s枣凑Inr•云vvv) scanf(=%s=num)八 whi-e(一feof(fp2)) 宀 f「ead(£「ain=Lsizeof(snTRA-N)Afp2)八 if(sf「cmp(numkainm.fop-aceHHO) 宀 |3「5'斗(=%—45%二25%005%二05%二05%005%.25彳35'日.彳35'之1101匕3亘二0.3^ tain日.f「omp-acekain=Lfop-acp frainm.inTimekain三•oufHmeJrain三•price)八 prinmvl) +■+ prinff(=conHnue(Y、N)(Nfoend)2=)八geohapscanf(=%c=QOch)八)whi_e(chH・N)prinmvr)fc-ose(fp2)八voidsearchFrommaceo宀 F_LE-4P3-charnumKSol八charch八in二Ho八 fp3Hfopen(=三rairLrec==r+) ==h(一fp3) 宀 p「inff(=F=ecannofbeopenedw)八 exiox do 宀 rewind(fp3)八 priw鸯>w«14ss®lnr•云vvv)scanf(=%s=num)八 whi-e(一feof(fp3)) f「ead(£「ain=Lsizeof(snTRA-N)Afp3)八if(sfrcmp(numka5■日.f「0mP-aceHH0) 宀 |3「5'斗(=%—45%二25%005%二05%二05%005%.2_『^3亘二.寸35'之1101匕3亘二0.3(0匕3in三.from卫acekainm.fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火车票 管理 系统 语言