C语言课程设计火车票管理系统方案.docx

上传人:b****1 文档编号:12518449 上传时间:2023-04-19 格式:DOCX 页数:19 大小:17.23KB
下载 相关 举报
C语言课程设计火车票管理系统方案.docx_第1页
第1页 / 共19页
C语言课程设计火车票管理系统方案.docx_第2页
第2页 / 共19页
C语言课程设计火车票管理系统方案.docx_第3页
第3页 / 共19页
C语言课程设计火车票管理系统方案.docx_第4页
第4页 / 共19页
C语言课程设计火车票管理系统方案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言课程设计火车票管理系统方案.docx

《C语言课程设计火车票管理系统方案.docx》由会员分享,可在线阅读,更多相关《C语言课程设计火车票管理系统方案.docx(19页珍藏版)》请在冰豆网上搜索。

C语言课程设计火车票管理系统方案.docx

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

二、设计容

设计一个火车票务管理系统,用C语言实现。

对该系统的要求如下:

需求描述:

1.系统功能

(1)火车时刻信息录入。

包括车次、日期、起点、终点、开车时间、到达时间、票价。

数据存入数据文件hchsk.dat或hchsk.txt中。

(2)火车时刻信息查询。

按照车次查询

按终点查询

按起点查询

按终点和日期查询

(3)统计

按终点统计每日的车次数

按起点统计每日的车次数

2.系统主界面应有以下功能选项

录入火车时刻信息

查询火车时刻信息

统计火车车次

退出

三、详细设计说明

#include

#include

#include

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

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

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

{

fread(&T[i],sizeof(structTrain),1,fp);

}

fclose(fp);

}

///////////////////////////////////////////////////////////////////////////////////////打印模块

voidPRINT()

{

charch[10];

READ();

printf("\n===========================================================================\n");

printf(GeShi);

for(i=0;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

{

if(strcmp(T[i].code,name1)==0)

{

printf("\n按车次查找列车信息成功!

\n");

printf("\n===========================================================================\n");

printf(GeShi);

break;

}

}

for(i=0;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

{

if(strcmp(T[i].ap,name2)==0)

{

printf("\n按终点查找列车信息成功!

\n");

printf("\n===========================================================================\n");

printf(GeShi);

break;

}

}

for(i=0;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

{

if(strcmp(T[i].lp,name3)==0)

{

printf("\n按起点查找列车信息成功!

\n");

printf("\n===========================================================================\n");

printf(GeShi);

break;

}

}

for(i=0;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

{

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

{

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

{

if(strcmp(T[i].lp,name1)==0)

{

printf("\n按终点统计列车信息成功!

\n");

break;

}

}

for(i=0;i

{

if(strcmp(T[i].lp,name1)==0)

k++;

}

printf("\n-->共查询到%d趟列车信息,请按任意键返回<--",k);

gets(l);

}

if(t==2)

{

k=0;

for(i=0;i

{

if(strcmp(T[i].lp,name2)==0)

{

printf("\n按起点统计列车信息成功!

\n");

break;

}

}

for(i=0;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);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1