C语言的火车票管理系统.docx

上传人:b****2 文档编号:1246537 上传时间:2023-04-30 格式:DOCX 页数:20 大小:18.42KB
下载 相关 举报
C语言的火车票管理系统.docx_第1页
第1页 / 共20页
C语言的火车票管理系统.docx_第2页
第2页 / 共20页
C语言的火车票管理系统.docx_第3页
第3页 / 共20页
C语言的火车票管理系统.docx_第4页
第4页 / 共20页
C语言的火车票管理系统.docx_第5页
第5页 / 共20页
C语言的火车票管理系统.docx_第6页
第6页 / 共20页
C语言的火车票管理系统.docx_第7页
第7页 / 共20页
C语言的火车票管理系统.docx_第8页
第8页 / 共20页
C语言的火车票管理系统.docx_第9页
第9页 / 共20页
C语言的火车票管理系统.docx_第10页
第10页 / 共20页
C语言的火车票管理系统.docx_第11页
第11页 / 共20页
C语言的火车票管理系统.docx_第12页
第12页 / 共20页
C语言的火车票管理系统.docx_第13页
第13页 / 共20页
C语言的火车票管理系统.docx_第14页
第14页 / 共20页
C语言的火车票管理系统.docx_第15页
第15页 / 共20页
C语言的火车票管理系统.docx_第16页
第16页 / 共20页
C语言的火车票管理系统.docx_第17页
第17页 / 共20页
C语言的火车票管理系统.docx_第18页
第18页 / 共20页
C语言的火车票管理系统.docx_第19页
第19页 / 共20页
C语言的火车票管理系统.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言的火车票管理系统.docx

《C语言的火车票管理系统.docx》由会员分享,可在线阅读,更多相关《C语言的火车票管理系统.docx(20页珍藏版)》请在冰点文库上搜索。

C语言的火车票管理系统.docx

C语言的火车票管理系统

#include

#include

#include

#include

#include

#defineN1000

typedefstructTICKET//定义新结构体TICKET

{

charnum[10];//车次

charhour[3];

charmin[3];

charfrom[10];

charto[10];

floathours;

intmax;//车载容量

intnow;//已售票数

}CLASS;

intclass_num=0;

CLASSrecords[N];

intsystem_time();

voidmessage();

voidShowTable1();

voidShowTable2(inti);

voidDisplay();

voidadd();

voidsave();

voidload();//按班次查询

voidsearch();//查询

voidchange();//修改

voidquit();//退出

voidbuyticket();//售票

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();break;

case3:

search();break;

case4:

add();break;

case5:

buyticket();break;

case6:

deleteticket();break;

case7:

change();break;

case8:

deletemessage();break;

case9:

quit();break;

}

}

}

intmenu_select()//菜单

{

chars[5];

intc,i;

system("cls");

for(i=0;i<11;i++)

{

printf("%s",menu[i]);//输出菜单

}

i=0;

while(c<0||c>9)

{

printf("\n");

printf("\n请输入选项(1-9):

");

scanf("%s",s);

c=atoi(s);

}//输出菜单

returnc;

}

voidmessage()//录入

{

inti=0,j=5,h;

chars[5];

FILE*fp;//定义文件型指针变量

system("cls");//刷屏

if((fp=fopen("d:

车票管理系统0.dat","rb"))!

=NULL)//fopen打开文件

{

printf("增加信息\n");

printf("请输入任意键返回\n");

scanf("%s",s);

i=1;

}

if(i==0)

{

system("cls");//刷屏

printf("请输入班次总数:

\n");

scanf("%d",&class_num);//指向班次指针

system("cls");//刷屏

for(i=0;i

{

system("cls");//刷屏

printf("请输入%d班次信息:

\n",i+1);

h=-1;

for(;h!

=i;)///循环输出

{

printf("请输入班次:

\n");

scanf("%s",records[i].num);

for(h=0;h

if(strcmp(records[h].num,records[i].num)==0)

{

printf("该班次已存在\n");

break;

}

}

get(i,j);//修改及增加班次

j=5;

}

save();//调用保存函数

}

}

/*******************************显示所有函数********************************/

voidDisplay()//显示所有函数

{

inti,j;

system("cls");//刷屏

load();//按班次查询

ShowTable1();

for(i=0,j=0;i

{

if(whether(i))//判断时间是否超出

printf("|%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

printf("|%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);

printf("\n按任意键继续\n");

getch();

}

 

voidShowTable1()

{

inti=2;

system("cls");//刷屏

printf("班次信息\n");

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

printf("\n|班次|发车时间|起点站|终点站|行车时间|额定载量|已售票|\n");

}

 

voidShowTable2(inti)

{

printf("\n|----------|----------|----------|----------|--------|--------|--------|\n");

}

voidsearch()//查询班次

{

inti;

chars1[10]={'\0'},s2[10]={'\0'};

system("cls");//刷屏

printf("1.按班次查询\n");

printf("2.按终点站查询\n");

printf("3.退出\n");

printf("请选择(1-3):

\n");

scanf("%d",&i);

load();//按班次查询

switch(i)

{

case1:

printf("请输入要查询的班次:

\n");

scanf("%s",s1);

find(s1,s2);

break;

case2:

printf("请输入要查询终点站:

\n");

scanf("%s",s2);

find(s1,s2);

break;

case3:

break;

default:

printf("输入错误!

\n");

break;

}

printf("按任意键继续\n");

getch();

}

voidfind(chars1[],chars2[])

{

inti,h=0,m;

ShowTable1();

if(s2[0]=='\0')

m=1;

elsem=0;

for(i=0;i

if(strcmp(s1,records[i].num)==0||strcmp(s2,records[i].to)==0)

{

printf("\n");

printf("|%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);

h+=2;

if(m==1)

break;

}

ShowTable2(h);

if(h==0)

printf("查找的班次不存在\n");

}

voidadd()

{

inti,j=5;

load();

system("cls");

printf("1.增加班次\n");

printf("2.返回\n");

printf("请选择(1-2)\n");

scanf("%d",&i);

if(i==1)

{

system("cls");

printf("1.输入要增加的班次:

\n");

scanf("%s",records[class_num].num);

for(i=0;i

if(strcmp(records[class_num].num,records[i].num)==0)

{

printf("输入错误\n");

getch();

break;

}

if(i==class_num)

{

get(i,j);

class_num++;

save();

}

}

}

voidbuyticket()

{

inti;

charnum[10];

system("cls");

printf("1.售票\n");

printf("2.返回\n");

printf("请选择(1-2):

\n");

scanf("%d",&i);

if(i==1)

{

load();//按班次查询

search();

printf("请输入要订票的班次(若无请输入0):

\n");

scanf("%s",num);

for(i=0;i

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

{

printf("该班次已满或已发出!

\n");

getch();

}

}

}

voiddeleteticket()

{

inti;

charnum[10];

system("cls");

printf("1.退票\n");

printf("2.返回\n");

printf("请选择(1-2)\n:

");

scanf("%d",&i);

if(i==1)

{

system("cls");

load();

printf("请输入要退票的班次:

\n");

scanf("%s",num);

i=findnum(num);

if(strcmp(num,records[i].num)==0)

if(whether(i))

{

printf("是否确认");

scanf("%s",num);

if(num[0]=='y'||num[0]=='Y')

{

records[i].now--;

printf("退票成功\n");

save();

getch();

}

}

else

{

printf("该班车已发出,无法退票\n");

getch();

}

if(i==class_num)

{printf("输入错误\n");

getch();

}

}

}

voidchange()

{

charnum[10],s[10];

inth=0,j=13,i;

load();

system("cls");

printf("请输入要修改的班次:

\n");

scanf("%s",num);

i=findnum(num);

if(i==class_num)

{

printf("输入错误\n");

getch();

}

else

{

printf("确认修改\n");

scanf("%s",s);

if(s[0]=='y'||s[0]=='Y')

{

get(i,j);

save();

}

}

}

voiddeletemessage()

{

inti,h=0;

charnum[10];

system("cls");

printf("1.删除班次\n");

printf("2.返回\n");

printf("请选择(1-2):

\n");

scanf("%d",&i);

if(i==1)

{

system("cls");

printf("请输入要删除的班次:

\n");

scanf("%s",num);

i=findnum(num);

if(i==class_num)

{

printf("输入错误\n");

getch();

}

else

{

printf("是否确认\n");

scanf("%s",num);

if(num[0]=='y'||num[0]=='Y')

{

for(;i

records[i]=records[i+1];

class_num--;

save();

printf("删除成功\n");

getch();

}

}

}

}

intfindnum(chars1[])

{

inti,h=0;

ShowTable1();

for(i=0;i

{

if(strcmp(s1,records[i].num)==0)

{

printf("|%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);

h+=2;

break;

}

}

ShowTable2(h);

returni;

}

voidsave()

{

FILE*fp1,*fp2;

if((fp1=fopen("d:

车票管理系统.dat","wb"))==NULL)//打开文件

{

printf("文件打开错误!

\n");

exit(0);

}

if((fp2=fopen("d:

车票管理系统0.dat","wb"))==NULL)

{

printf("文件打开错误!

\n");

exit(0);

}

fwrite(&class_num,sizeof(int),1,fp2);

fwrite(records,sizeof(CLASS),class_num,fp1);

fclose(fp1);fclose(fp2);

}

voidload()

{

FILE*fp1,*fp2;

if((fp1=fopen("d:

车票管理系统.dat","rb"))==NULL)

{

system("cls");

printf("文件打开错误\n");

getch();

exit(0);

}

if((fp2=fopen("d:

车票管理系统0.dat","rb"))==NULL)

{

system("cls");

printf("文件打开错误\n");

getch();

exit(0);

}

fread(&class_num,sizeof(int),1,fp2);

fread(records,sizeof(CLASS),class_num,fp1);

fclose(fp1);fclose(fp2);

}

voidquit()

{

chars[5];

printf("确认退出\n");

scanf("%s",s);

if(s[0]=='y'||s[0]=='Y')

exit(0);

}

voidget(inti,intj)

{

for(;;)

{

printf("请输入发车时间(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))

break;

else

{

printf("输入错误\n");

getch();

}

}

printf("请输入起点站:

\n");

scanf("%s",records[i].from);

printf("请输入终点站:

\n");

scanf("%s",records[i].to);

printf("请输入行车时间:

\n");

scanf("%f",&records[i].hours);

printf("请输入额定载量:

\n");

scanf("%d",&records[i].max);

for(;;)

{

printf("请输入已售票数:

\n");

scanf("%d",&records[i].now);

if(records[i].now<=records[i].max)

break;

else

{

printf("输入错误\n");

getch();

}

}

}

intwhether(inti)

{

structtm*local;

time_tt;

t=time(NULL);//NULL在stdio.h中定义为0

local=localtime(&t);/////获取当前系统时间

if(local->tm_hourtm_hour==atoi(records[i].hour)&&local->tm_min

//atoi将字符串转换成一个整数值

return1;

else

return0;

}

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2