车票管理系统.docx
- 文档编号:24826285
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:16
- 大小:17.06KB
车票管理系统.docx
《车票管理系统.docx》由会员分享,可在线阅读,更多相关《车票管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
车票管理系统
//车票系统3.cpp:
定义控制台应用程序的入口点。
//
#include"stdafx.h"
#include
#include
#include
#include
#include
#include
constintMAX=50;
constintN=100;
constintMAXFILENAME=100;
enum{FALSE,TRUE};
structtime
{
inthour;
intminutes;
};
structticket
{
intNumber;
structtimeSetOut;
charStart[MAX];
charFinish[MAX];
floatLastTime;
intFixNumber;
intFixedNumber;
}car[N];
intRecordNumber;
intFLAG=FALSE;
/**********************************************/
intShow(void);//载入原始数据
voidmainmenu(void);//主菜单
voidInput(void);//录入班次信息
voidSearchMenu(void);//查询路线子菜单
voidSearchByNumber(void);//按班次号查询
voidSearchByAddress(void);//按终点站查询
voidManagement(void);//车票售出与退回
voidOrder(void);//售票
voidDelete(void);//退票
voidexit(void);//退出该系统
/********************************************/
intmain(void)
{
printf("********************************************************************************\n\n\n");
printf("┌────────────────────────┐\n");
printf("│┌──────────────────────┐│\n");
printf("││欢迎使用车票管理系统!
││\n");
printf("│└──────────────────────┘│\n");
printf("└────────────────────────┘\n");
printf("\n\n\n");
printf("********************************************************************************\n");
printf("是否要进入用户界面[是:
Y(y),否:
N(n)]\n\n");
printf("********************************************************************************");
chari;
scanf("%s",&i);
getchar();
if(i=='Y'||i=='y')
{
RecordNumber=Show();
if
(1)
do{
mainmenu();
}while(FLAG==FALSE);
return0;
}
else
{
printf("谢谢使用!
\n\n");
exit(0);
}
}
voidmainmenu(void)
{
system("color1f");
system("modecon:
cols=110lines=80");
charfunction;
printf("*********************************************车票管理系统*************************************************\n\n\n\n");
printf("制作人:
朱勇;学号:
10064120\n");
printf("日期:
2011/12/8\n");
printf("**************************************************************************************************************\n");
printf("┌────────────────────────┐\n");
printf("│┌──────────────────────┐│\n");
printf("││1.录入车票信息2.浏览车票信息││\n");
printf("││3.查询行车路线4.售票退票系统││\n");
printf("││5.退出系统││\n");
printf("│└──────────────────────┘│\n");
printf("└────────────────────────┘\n");
printf("**************************************************************************************************************\n");
printf("请选择你所需要的功能:
");
scanf("%c",&function);
switch(function)
{
case'1':
{
Input();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case'2':
{
Show();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case'3':
{
SearchMenu();
printf("\n按任意键回主菜单......\n");
getchar();
getchar();
}
break;
case'4':
{
Management();
getchar();
getchar();
}
break;
case'5':
FLAG=TRUE;exit();break;
default:
{
printf("警告!
!
!
!
!
\n输入错误,请确保你的输入为1--5.\n");
printf("按任意键回主菜单......\n");
getchar();
getchar();
}
}//switchends
FLAG=FALSE;
}
voidInput(void)
{
FILE*fp;
charfilename[MAXFILENAME];
inti;
printf("请输入文件名或者文件路径名:
");
scanf("%s",filename);
if((fp=fopen(filename,"a"))==NULL)
{
printf("文件%s不可读,请确认文件%s存在或者文件路径正确.\n\n",filename,filename);
mainmenu();
}
for(i=RecordNumber;!
feof(fp)&&!
ferror(fp);i++)
{
fscanf(fp,"%d%d%d",&car[i].Number,&car[i].SetOut.hour,&car[i].SetOut.minutes);
fscanf(fp,"%s%s%f%d%d",&car[i].Start,&car[i].Finish,&car[i].LastTime,&car[i].FixNumber,&car[i].FixedNumber);
}
intcount=i;
printf("班次\t发车时间\t起点\t终点\t行车时间\t额定载量\t已定票人数\n");
for(i=0;i { printf("%d\t%d: %d\t\t",car[i].Number,car[i].SetOut.hour,car[i].SetOut.minutes); printf("%s\t%s\t\t%.1f\t%d\t\t%d\n",car[i].Start,car[i].Finish,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber); } fclose(fp); } intShow(void) { intm; FILE*fp; if((fp=fopen("add.txt","r"))==NULL) { printf("读取数据失败,请检查文件add.txt是否存在.\n"); exit(-1); } for(m=0;! feof(fp)&&! ferror(fp);m++) { fscanf(fp,"%d%d%d",&car[m].Number,&car[m].SetOut.hour,&car[m].SetOut.minutes); fscanf(fp,"%s%s%f%d%d",&car[m].Start,&car[m].Finish,&car[m].LastTime,&car[m].FixNumber,&car[m].FixedNumber); } intcount=m; printf("\n|-----------|-----------|-----------|-----------|---------|----------|---------|\n"); printf("\t班次\t发车时间\t起点\t终点\t行车时间额定载量已定票人数\n"); for(m=0;m { printf("\n|-----------|-----------|-----------|-----------|---------|----------|---------|\n"); printf("\t%d\t%d: %d\t",car[m].Number,car[m].SetOut.hour,car[m].SetOut.minutes); printf("%s\t%s\t%.1f\t%d\t\t%d\n",car[m].Start,car[m].Finish,car[m].LastTime,car[m].FixNumber,car[m].FixedNumber); } returncount; } voidSearchMenu(void) { system("colorf"); system("modecon: cols=90lines=30"); charfunction; printf("查询子菜单\n"); printf("******************************************************************************************\n"); printf("┌────────────────────────┐\n"); printf("│┌──────────────────────┐│\n"); printf("││1.按班次号查询││\n"); printf("││2.按终点站查询││\n"); printf("││3.返回主菜单││\n"); printf("│└──────────────────────┘│\n"); printf("└────────────────────────┘\n"); printf("******************************************************************************************\n"); printf("请选择你所需要的功能: "); scanf("%*c%c",&function); switch(function) { case'1': SearchByNumber();break; case'2': SearchByAddress();break; case'3': getchar(); mainmenu(); break; default: printf("输入错误,请确保你的输入为1--3.\n"); printf("按任意键回查询子菜单......\n"); getchar(); getchar(); SearchMenu(); } } voidSearchByNumber(void) { intSearchNumber; printf("请输入要查询的班次号: "); scanf("%d",&SearchNumber); printf("\n|-----------|-----------|-----------|-----------|---------|----------|---------|\n"); printf("\t班次\t发车时间\t起点\t终点\t行车时间额定载量已定票人数\n"); printf("\t%d\t%d: %d\t",car[SearchNumber-1].Number,car[SearchNumber-1].SetOut.hour,car[SearchNumber-1].SetOut.minutes); printf("%s\t%s\t%.1f\t%d\t\t%d\n",car[SearchNumber-1].Start,car[SearchNumber-1].Finish,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].FixedNumber); } voidSearchByAddress(void) { inti; charAddress[MAX]; printf("请输入终点站的名称: "); scanf("%s",&Address); printf("\n|-----------|-----------|-----------|-----------|---------|----------|---------|\n"); printf("\t班次\t发车时间\t起点\t终点\t行车时间额定载量已定票人数\n"); for(i=0;i { //对比终点站记录,找到并输出 if((strcmp(Address,car[i].Finish))==0) { printf("\n|-----------|-----------|-----------|-----------|---------|----------|---------|\n"); printf("\t%d\t%d: %d\t",car[i].Number,car[i].SetOut.hour,car[i].SetOut.minutes); printf("%s\t%s\t%.1f\t%d\t\t%d\n",car[i].Start,car[i].Finish,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber); } } } voidManagement(void) { charfunction; system("colorf"); system("modecon: cols=90lines=30"); printf("订票与退票菜单\n"); printf("******************************************************************************************\n"); printf("******************************************************************************************\n"); printf("┌────────────────────────┐\n"); printf("│┌──────────────────────┐│\n"); printf("││1.订票││\n"); printf("││2.退票││\n"); printf("││3.返回主菜单││\n"); printf("│└──────────────────────┘│\n"); printf("└────────────────────────┘\n"); printf("******************************************************************************************\n"); printf("选择你需要的功能: "); scanf("%*c%c",&function); switch(function) { case'1': { Order(); //getchar(); //getchar(); } break; case'2': Delete();break; case'3': { getchar(); mainmenu(); } break; default: { printf("输入错误,请确保你的输入为1--3.\n"); printf("按任意键回主菜单......\n"); getchar(); getchar(); mainmenu(); } } } voidOrder(void) { inti; printf("请输入要订购的车票的班次: "); scanf("%d",&i); if(i<0||i>RecordNumber) { printf("对不起,今天没有这趟车,请明天再来,谢谢使用! \n"); printf("按任意键回主菜单......\n"); getchar();//getchar(); Management(); } time_ttval; structtm*now; tval=time(NULL); now=localtime(&tval); if((now->tm_hour==car[i-1].SetOut.hour&&now->tm_min { if(car[i-1].FixedNumber { car[i-1].FixedNumber++; printf("您的订票成功,请按时上车,谢谢使用! \n"); } elseprintf("对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作! \n"); } elseprintf("对不起,今天的这趟车已发出,请明天再来,谢谢合作! \n"); printf("\n|-----------|-----------|-----------|-----------|---------|----------|---------|\n"); printf("\t班次\t发车时间\t起点\t终点\t行车时间额定载量已定票人数\n"); printf("\t%d\t%d: %d\t",car[i-1].Number,car[i-1].SetOut.hour,car[i-1].SetOut.minutes); printf("%s\t%s\t%.1f\t%d\t\t%d\n",car[i-1].Start,car[i-1].Finish,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber); //printf("按任意键回主菜单......\n"); //getchar();getchar(); } voidDelete(void) { intn; printf("请输入要退购的车票的班次: "); scanf("%d",&n); if(n<0||n>RecordNumber) { printf("对不起,今天没有这趟车,无法完成退票.谢谢使用! \n"); getchar(); //getchar(); Management(); getchar(); } time_ttval; structtm*now; tval=time(NULL); now=localtime(&tval); if((now->tm_hour==car[n-1].SetOut.hour&&now->tm_min { if(car[n-1].FixedNumber>=1) { car[n-1].FixedNumber--; printf("退订车票成功,谢谢使用! \n"); } elseprintf("对不起,今天的这趟车的票尚未卖出,无法完成退票! \n"); } elseprintf("对不起,今天的这趟车已发出,无法完成退票! \n"); printf("\n|-----------|-----------|-----------|-----------|---------|----------|---------|\n"); printf("\t班次\t发车时间\t起点\t终点\t行车时间额定载量已定票人数\n"); printf("\t%d\t%d: %d\t",car[n-1].Number,car[n-1].SetOut.hour,car[n-1].SetOut.minutes); pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车票 管理 系统