C语言编程 车票管理系统
发布网友
发布时间:2022-04-29 02:58
我来回答
共1个回答
热心网友
时间:2022-06-29 09:04
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
# define size 10 struct t_tickets /* 定义结构体 */ {int number; /* 结构体中的申明部分 */ char begin [10]; char start[30]; char loadend[30]; float time; int people; int booked; } t[size]; FILE*fp; struct t_tickets t[size];
void save()
{
int i; if ((fp=fopen("ticket.text","w+"))==NULL)
{
printf("cannot open the file\n");
return;
}
for(i=0;i<size;i++)
if(fwrite(&t[i],sizeof(struct t_tickets),1,fp)!=1)
printf(" file write error\n");
fclose(fp);
}
void input()
{
int i;
printf("----------请录入班次信息----------\n");
for(i=0;i<size;i++)
{
scanf("%d %s %s %s %f %d %d",&t[i].number,t[i].begin, t[i].start,t[i].loadend,&t[i].time,&t[i].people,&t[i].booked);
save();} }
void output()
{
int i ;
fp=fopen("ticket.text","r");for(i=0;i<size;i++)
{
fread(&t[i],sizeof(struct t_tickets ),1,fp);printf("\n%-4d %-8s %-13s %-13s %-6.1f %-6d %4d\n",t[i].number,t[i].begin, t[i].start,t[i].loadend,t[i].time,t[i].people,t[i].booked);
}
fclose(fp);} void scan(){
int k;int number;
printf("请输入您想要查询的班次号:\n");
scanf("%d",&number);
fp=fopen("ticket.text","r");
for(k=0;k<size;k++)
{
fread(&t[k],sizeof(struct t_tickets),1,fp);
if(number==t[k].number)
{ printf("\n 班次 发车时间 起点站 终点站 行车时间 额定载量 已订票人数 \n");
printf("\n%-4d %-8s %-13s %-13s %-6.1f %-6d %4d\n",t[k].number,t[k].begin, t[k].start,t[k].loadend,t[k].time,t[k].people,t[k].booked);
break;
}
}
if(k>=size)
printf("对不起,没有您想要查询的班次,谢谢使用本系统\n");
fclose(fp);
} void check()
{
int i; char loadend[30];
printf("请输入你想要查询的终点站的名称:\n");
scanf("%s",loadend);
fp=fopen("ticket.text","r");
for(i=0;i<size;i++)
{
fread(&t[i],sizeof(struct t_tickets),1,fp);
if(strcmp(loadend,t[i].loadend)==0)
{
printf("\n 班次 发车时间 起点站 终点站 行车时间 额定载量 已订票人数 \n"); printf("\n%-4d %-8s %-13s %-13s %-6.1f %-6d %4d\n",t[i].number,t[i].begin, t[i].start,t[i].loadend,t[i].time,t[i].people,t[i].booked);
break;
}
}
if(i>=size)
printf("对不起,没有您想要查询的班次,谢谢使用本系统!\n");
fclose(fp);
} void book(){
int i;int number;int m;char loadend[30];int ticket=1;
if ((fp=fopen("ticket.text","r"))==NULL)
{
printf("not open the file\n");
return;
}
for(i=0;i<=1;i++)
fread(&t[i],sizeof(struct t_tickets),1,fp);
printf("\n请输入你想要到达的终点站:\n");
scanf("%s",loadend);
printf("到达此终点站的班次有:\n");
printf("\n 班次 发车时间 起点站 终点站 行车时间 额定载量 已订票人数 \n");
for(i=0;i<=1;i++)
if(strcmp(loadend,t[i].loadend)==0)
{
ticket=2;
printf("\n 班次 发车时间 起点站 终点站 行车时间 额定载量 已订票人数 \n");
printf("\n%-4d %-8s %-13s %-13s %-6.1f %-6d %4d\n",t[i].number,t[i].begin, t[i].start,t[i].loadend,t[i].time,t[i].people,t[i].booked);
}
for(i=0;i<=1;i++)
if(strcmp (loadend,t[i].loadend)==0)
if(t[i].booked<t[i].people)
{
ticket=3;
printf("请输入订票的张数:\n");
scanf("%d",&m);
for(i=0;i<=size;i++)
if(number=t[i].number); if ((fp=fopen("ticket.text","w"))==NULL)
{
printf("not open the file\n");
return;
}
{
t[i].booked=t[i].booked+m;
if ((fp=fopen("ticket.text","w"))==NULL)
{
printf("not open the file\n");
return;
}
for(i=0;i<=size;i++) fwrite(&t[i],sizeof(struct t_tickets),1,fp); fclose(fp);
printf(" 您订票成功!谢谢使用本次服务!\n"); }} if(ticket==1)
printf("\n 没有你查询的班次,请查询后在输入\n");
if(ticket==2)
printf("\n 你想要购买的票以售完,请购买下一班 \n"); fclose(fp); if ((fp=fopen("ticket.text","w"))==NULL)
{
printf("not open the file\n");
return;
} for(i=0;i<=size;i++)
fwrite(&t[i],sizeof(struct t_tickets),1,fp); fclose(fp);
} void rback(){
int number,i,m;if((fp=fopen("ticket.text","r"))==NULL)
{
printf("not open the file\n");
return;
}for(i=0;i<=1;i++)
fread(&t[i],sizeof(struct t_tickets),1,fp);
printf("请输入退票的班次:\n");
scanf("%d",&number);
printf("请输入退票的张数:\n");
scanf("%d",&m);
for(i=0;i<=size;i++)
if(number==t[i].number)
{
t[i].booked=t[i].booked-m;
printf("\n 您退票成功!,谢谢\n");}
fclose(fp); if ((fp=fopen("ticket.text","w"))==NULL)
{
printf("not open the file\n");
return;
}
for(i=0;i<=size;i++) fwrite(&t[i],sizeof(struct t_tickets),1,fp); fclose(fp);
}
void over()
{
printf("\n 谢谢您的使用,请按任意键结束!\n");
return;
}
void main(){
int b; printf(" 这里是车票管理系统,欢迎你的使用\n");
printf(" 袁宏杰 制作\n");
printf("\n******************************************\n");
printf(" ==== 0,录入班次信息\n");
printf(" ==== 1,浏览信息\n");
printf(" ==== 2,按班次查询\n");
printf(" ==== 3,按终点站查询\n");
printf(" ==== 4,预定车票\n");
printf(" ==== 5,退票 \n");
printf(" ==== 6,退出程序\n");
printf("\n******************************************\n");
do{
printf("-----选择主菜单功能(0~6\n");
scanf("%d",&b);
switch (b)
{
case 0: input(); break;
case 1: output(); break;
case 2: scan(); break;
case 3: check(); break;
case 4: book(); break;
case 5: rback(); break;
case 6: over(); break;
default: printf(" enter error!\n");
}}while(1);}追问能采用问题中所包含的源程序吗???而且那个系统好有问题,用不了。