C语言的火车票管理系统Word文件下载.docx
- 文档编号:1465444
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:20
- 大小:18.42KB
C语言的火车票管理系统Word文件下载.docx
《C语言的火车票管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言的火车票管理系统Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
//售票
voiddeleteticket();
//取消
intmenu_select();
//菜单
intwhether(int);
//判断购买时间
voidfind(chars1[],chars2[]);
//按起点终点查询
voiddeletemessage();
//删除
intfindnum(chars1[]);
//班次查询
voidget(int,int);
//修改及增加班次
char*menu[]={"
欢迎使用车票查询系统"
"
\n*******************菜单***********************"
\n1.录入班次"
\n2.浏览班次信息"
\n3.查询路线"
\n4.增加班次"
\n5.售票"
\n6.退票"
\n7.修改班次"
\n8.删除班次"
\n9.退出"
};
intmain()
{
system("
cls"
);
while
(1)
{
switch(menu_select())//菜单
{
case1:
message();
break;
case2:
Display();
case3:
search();
case4:
add();
case5:
buyticket();
case6:
deleteticket();
case7:
change();
case8:
deletemessage();
case9:
quit();
}
}
}
intmenu_select()//菜单
chars[5];
intc,i;
for(i=0;
i<
11;
i++)
printf("
%s"
menu[i]);
//输出菜单
i=0;
while(c<
0||c>
9)
{
\n"
printf("
\n请输入选项(1-9):
"
scanf("
s);
c=atoi(s);
}//输出菜单
returnc;
voidmessage()//录入
inti=0,j=5,h;
FILE*fp;
//定义文件型指针变量
//刷屏
if((fp=fopen("
d:
车票管理系统0.dat"
"
rb"
))!
=NULL)//fopen打开文件
增加信息\n"
请输入任意键返回\n"
i=1;
}
if(i==0)
system("
请输入班次总数:
%d"
&
class_num);
//指向班次指针
for(i=0;
class_num;
i++)
{
system("
printf("
请输入%d班次信息:
i+1);
h=-1;
for(;
h!
=i;
)///循环输出
{
printf("
请输入班次:
scanf("
records[i].num);
for(h=0;
h<
i;
h++)
if(strcmp(records[h].num,records[i].num)==0)
{
printf("
该班次已存在\n"
break;
}
}
get(i,j);
j=5;
save();
//调用保存函数
/*******************************显示所有函数********************************/
voidDisplay()//显示所有函数
inti,j;
load();
ShowTable1();
for(i=0,j=0;
i++,j+=2)//按班次顺序输出
if(whether(i))//判断时间是否超出
|%10s|%5s:
%-4s|%10s|%10s|%8.1f|%8d|%8d|"
records[i].num,records[i].hour,
records[i].min,records[i].from,records[i].to,records[i].hours,
records[i].max,records[i].now);
else
|%10s|已发车|%10s|%10s|%8.1f|%8d|%8d|"
records[i].num,
records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);
ShowTable2(j);
\n按任意键继续\n"
getch();
voidShowTable1()
inti=2;
班次信息\n"
\n|----------|----------|----------|----------|--------|--------|--------|\n"
\n|班次|发车时间|起点站|终点站|行车时间|额定载量|已售票|\n"
voidShowTable2(inti)
{
voidsearch()//查询班次
inti;
chars1[10]={'
\0'
},s2[10]={'
1.按班次查询\n"
2.按终点站查询\n"
3.退出\n"
请选择(1-3):
scanf("
i);
//按班次查询
switch(i)
case1:
请输入要查询的班次:
s1);
find(s1,s2);
break;
case2:
请输入要查询终点站:
s2);
case3:
break;
default:
输入错误!
按任意键继续\n"
voidfind(chars1[],chars2[])
inti,h=0,m;
if(s2[0]=='
)
m=1;
elsem=0;
if(strcmp(s1,records[i].num)==0||strcmp(s2,records[i].to)==0)
records[i].num,records[i].hour,records[i].min,
records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);
h+=2;
if(m==1)
break;
ShowTable2(h);
if(h==0)
查找的班次不存在\n"
voidadd()
inti,j=5;
1.增加班次\n"
2.返回\n"
请选择(1-2)\n"
if(i==1)
1.输入要增加的班次:
records[class_num].num);
if(strcmp(records[class_num].num,records[i].num)==0)
输入错误\n"
getch();
if(i==class_num)
get(i,j);
class_num++;
save();
voidbuyticket()
1.售票\n"
请选择(1-2):
{
load();
search();
请输入要订票的班次(若无请输入0):
num);
if(strcmp(num,records[i].num)==0)
if(records[i].max>
records[i].now&
&
whether(i)==1)
{
records[i].now++;
printf("
通向%s班次为%s的票订票成功\n"
records[i].to,records[i].num);
save();
getch();
break;
}
else
该班次已满或已发出!
voiddeleteticket()
1.退票\n"
请选择(1-2)\n:
请输入要退票的班次:
i=findnum(num);
if(strcmp(num,records[i].num)==0)
if(whether(i))
{
是否确认"
if(num[0]=='
y'
||num[0]=='
Y'
)
{
records[i].now--;
退票成功\n"
else
该班车已发出,无法退票\n"
if(i==class_num)
{printf("
getch();
voidchange()
charnum[10],s[10];
inth=0,j=13,i;
请输入要修改的班次:
i=findnum(num);
if(i==class_num)
getch();
else
确认修改\n"
if(s[0]=='
||s[0]=='
save();
voiddeletemessage()
inti,h=0;
1.删除班次\n"
请输入要删除的班次:
if(i==class_num)
else
是否确认\n"
scanf("
if(num[0]=='
for(;
class_num-1;
records[i]=records[i+1];
class_num--;
删除成功\n"
}
intfindnum(chars1[])
if(strcmp(s1,records[i].num)==0)
records[i].min,records[i].from,records[i].to,records[i].hours,records[i].max,records[i].now);
break;
ShowTable2(h);
returni;
voidsave()
FILE*fp1,*fp2;
if((fp1=fopen("
车票管理系统.dat"
wb"
))==NULL)//打开文件
文件打开错误!
exit(0);
if((fp2=fopen("
))==NULL)
fwrite(&
class_num,sizeof(int),1,fp2);
fwrite(records,sizeof(CLASS),class_num,fp1);
fclose(fp1);
fclose(fp2);
voidload()
))==NULL)
文件打开错误\n"
fread(&
fread(records,sizeof(CLASS),class_num,fp1);
voidquit()
确认退出\n"
if(s[0]=='
voidget(inti,intj)
for(;
;
请输入发车时间(xxxx)"
scanf("
%s%s"
records[i].hour,records[i].min);
if((atoi(records[i].hour)<
24&
atoi(records[i].hour)>
=0)&
(atoi(records[i].min)<
60&
atoi(records[i].min)>
=0))
请输入起点站:
records[i].from);
请输入终点站:
records[i].to);
请输入行车时间:
%f"
records[i].hours);
请输入额定载量:
records[i].max);
请输入已售票数:
records[i].now);
if(records[i].now<
=records[i].max)
intwhether(inti)
structtm*local;
time_tt;
t=time(NULL);
//NULL在stdio.h中定义为0
local=localtime(&
t);
/////获取当前系统时间
if(local->
tm_hour<
atoi(records[i].hour)||local->
tm_hour==atoi(records[i].hour)&
local->
tm_min<
atoi(records[i].min))
//atoi将字符串转换成一个整数值
return1;
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 火车票 管理 系统