火车订票系统c++程序_火车订票系统c语言
火车订票系统c++程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“火车订票系统c语言”。
/* 头文件 */ #include //标准输入、输出头文件
#include //包含字符串函数处理头文件
#include //包含动态存储与释放函数头文件 /* 宏定义 */ #define GESHI “ 车次 站数 起始站 终点站 开车时间 到达时间 票数n” //输出表头 #define PRINT “ %5s%10s%10s%10s%13s%13s%10dn”,s[i].code,s[i].data,s[i].lp,s[i].ap,s[i].lt,s[i].at,s[i].count //输出记录格式 #define N 1000 //最大列车组数 /* 结构定义 */ struct train //定义结构体数组 { char code[10];//车次 char data[10];//站数 char lp[20];//起始站 char ap[20];//终点站
char lt[10];//开车时间 char at[10];//到达时间 int count;//票数 }s[N];/* 全局变量 */ int i;//输入计数器 int m=0;//合计计数器 char l[20];//纠错空间 /* 函数声明 */ void INPUT();//输入车次信息 void PRINTF();//输出车次信息 void save();//保存车次信息 void read();//读取车次信息 void search();//查找车次信息 void dingpiao();//订票信息 void tuipiao();//退票信息 void WRONG();//纠错模块
///////////////////////////////////////////////////////////////////////////////////////主函数 void main(){
int j;do { system(“cls”);//清屏语句 printf(“ *************************************************************n”);printf(“ 欢迎进入火车票务管理系统 n”);printf(“ *************************************************************”);printf(“ n
请输入选项 nn”);printf(“ 1.添加列车信息 nn” “
2.查找 nn” “
3.订票 nn” “
4.退票 nn” “
5.退出 nn”);printf(“ *************************************************************nn”);printf(“请选择: ”);scanf(“%d”,&j);gets(l);
switch(j){ case 1: INPUT();//调用输入模块 break;case 2:search();//调用查找模块 break;case 3:dingpiao();//调用订票模块 break;case 4:tuipiao();//调用退票模块 break;case 5:;break;default:WRONG();break;} }while(j!=5);//判断结束
printf(“n
王志强
1241班 201210913124 n ”);printf(“n--------”);
printf(“n 正在退出,请按任意键退出”);
printf(“n--------n ”);}//主函数结束
//////////////////////////////////////////////////////////////////////////////////////////输入模块 void INPUT(){
int y;
system(“cls”);printf(“n ====================欢迎进入 录入火车时刻信息 界面====================nn”);for(i=0;i
printf(“请输入车次号: ”);scanf(“%s”,&s[i].code);//读取车次号 printf(“请输入站数: ”);scanf(“%s”,&s[i].data);//读取站数 printf(“请输入起始站: ”);scanf(“%s”,s[i].lp);//读取起始站 printf(“请输入终点站: ”);scanf(“%s”,s[i].ap);//读取终点站 printf(“请输入开车时间: ”);scanf(“%s”,s[i].lt);//读取开车时间 printf(“请输入到达时间: ”);scanf(“%s”,s[i].at);//读取到达时间 printf(“请输入车票数: ”);scanf(“%d”,&s[i].count);//读取票数 m++;
printf(“第%d个信息已经输完.按任意键继续,按 0 结束: ”,m);scanf(“%d”,&y);gets(l);if(y==0){ save();//将结构体信息存盘 PRINTF();//输出输入的列车信息
printf(“n 按任意键返回上级菜单: ”);gets(l);break;} }
} ////////////////////////////////////////////////////////////////////////保存模块程序 void save(){ FILE *fp,*fp1;//定义文件指针
if((fp=fopen(“chen.dat”,“wb”))==NULL)//打开文件并判断是否出错 { printf(“创建文件失败!nn”);//打印出错提示 getchar();return;} if((fp1=fopen(“hao.dat”,“wb”))==NULL)//打开文件并判断是否出错 { printf(“创建文件失败!nn”);//打印出错提示 getchar();return;}
for(i=0;i
printf(“向文件输入数据失败!nn”);fprintf(fp1,“%d”,m);fclose(fp);//关闭文件 fclose(fp1);//关闭文件 }
///////////////////////////////////////////////////////////////////////文件读取模块 void read(){ FILE *fp,*fp1;//定义文件指针
if((fp=fopen(“chen.dat”,“rb”))==NULL)//打开文件,并判断是否出错 { printf(“出错,请检查文件是否存在,按任意键返回住菜单”);//打印出错提示
getchar();} if((fp1=fopen(“hao.dat”,“rb”))==NULL)//打开文件并判断是否出错 { printf(“创建文件失败!nn”);//打印出错提示 getchar();return;} fscanf(fp1,“%d”,&m);fclose(fp1);//关闭文件 for(i=0;i
//////////////////////////////////////////////////////////////////////////////查询模块 void search(){ char name1[20];char name2[20];char ii[10];int nk;char no[10];do { system(“cls”);//清屏语句
printf(“nn ====================欢迎进入 查询火车时刻信息 界面====================n”);
printf(“n
++++++++++++++++++请选择查找方式++++++++++++++++++nn”);
printf(“
----1.显示所有列车信息
2.按车次查询 3.按始发站查询----n”);
printf(“
-----4.按终点站查询
5.返回主菜单----n”);
printf(“n 请选择: ”);scanf(“%d”,&nk);//读取查找方式 gets(l);if(nk==5)break;
switch(nk){ case 1:PRINTF();//调用打印模块 break;case 2: printf(“请输入车次号:n”);scanf(“%s”,&no);//车次号 break;case 3: printf(“请输入始发站名称:n”);scanf(“%s”,name1);//读取始发站 break;case 4: printf(“请输入终点站名称:n”);scanf(“%s”,name2);//终点站 break;default:
WRONG();
break;} read();//调用读取函数 for(i=0;i>是否继续查找?(y/n)
search();//调用查询模块
printf(“请输入您要订的车票数以回车键结束:”);scanf(“%d”,&n);//读取所订机票数 if(n
break;} if(s[i].count!=0&&s[i].count>=n)//判断是否出错 { s[i].count=s[i].count-n;//调用保存函数
system(“cls”);printf(“订票成功!nn”);printf(“ntt按任意键返回主菜单: ”);scanf(“%s”,l);
break;} if(s[i].count
break;} printf(“是否继续?(y/n):n”);//判断是否继续订票 scanf(“%s”,a);}while(!strcmp(a,“y”));//判断结束
} ///////////////////////////////////////////////////////////////////////////////退票模块 void tuipiao(){ int n;char a;do { search();//调用查询模块
printf(“请输入您要退的机票数目:n”);scanf(“%d”,&n);//输入所退票数
gets(l);if(n
{
WRONG();
break;} s[i].count=s[i].count+n;do
{
system(“cls”);//借鉴而来的清屏语句,好用!
printf(“nn-->退票成功继续 y,返回主菜单 n
a=getchar();
gets(l);
if(a!='y'&&a!='n')
WRONG();
}while(a!='y'&&a!='n');}while(a!='n');//判断并跳出循环 } ///////////////////////////////////////////////////////////////////////////////////////纠错模块 void WRONG(){ system(”cls“);//借鉴而来的清屏语句,好用!
printf(”nn--->!!输入错误,请按任意键返回!!