#include <stdio.h>
#include <stdlib.h>
struct ticket{
char name[10];
char id[20];
int state;
int standby;
}*tickets;
FILE *fp;
void get_menu();
void do_exit();
void check_ticket();
void buy_ticket();
void opt_out_ticket();
int main()
{
int select;
while(true)
{
get_menu();
printf(“请输入您的选择:”);
scanf(“%d”,&select);
fflush(stdin);
switch(select)
{
case 1:
check_ticket();
break;
case 2:
buy_ticket();
break;
case 3:
opt_out_ticket();
break;
case 4:
do_exit();
break;
default:
printf(“选择有误,请重新选择!”);
break;
}
}
return 0;
}
void get_menu()
{
printf(“\n\t\t********************************\n”);
printf(“\t\t* \n");
printf("\t\t 票务管理系统 \n");
printf("\t\t \n");
printf("\t\t 1、查询车票 \n");
printf("\t\t 2、购买车票 \n");
printf("\t\t 3、退订车票 \n");
printf("\t\t 4、退出 \n");
printf("\t\t \n");
printf("\t\t*******************************\n”);
}
void do_exit()
{
char yes;
printf(“是否退出('y’确认,其他返回):”);
scanf(“%c”,&yes);
fflush(stdin);
if (yes == ‘y’ || yes == ‘Y’)
{
printf(“\n\n\n\t\t***********************************\n”);
printf(“\t\t*\t谢谢使用票务系统!\t \n");
printf("\t\t**********************************\n”);
exit(0);
}
}
void check_ticket()
{
ticket t;
fp = fopen(“ticket.dat”,“r”);
if (fp != NULL)
{
fscanf(fp, “%s %s %d %d”,t.name, t.id, &t.state, &t.standby);
printf(“票名:%s\n编号:%s\n销售情况:%d\n余票:%d\n”,t.name, t.id, t.state, t.standby);
}
fclose(fp);
}
void buy_ticket()
{
ticket t;
fp = fopen(“ticket.dat”,“r”);
if (fp != NULL)
{
fscanf(fp, “%s %s %d %d”,t.name, t.id,&t.state,&t.standby);
t.standby -= 1;
fclose(fp);
fp = fopen(“ticket.dat”,“w”);
fprintf(fp,“%s %s %d %d”,t.name,t.id, t.state, t.standby);
printf(“购票成功!\n余票:%d\n”,t.standby);
fclose(fp);
}
}
void opt_out_ticket()
{
ticket t;
fp = fopen(“ticket.dat”,“r”);
if (fp != NULL)
{
fscanf(fp, “%s %s %d %d”,t.name,t.id,&t.state,&t.standby);
t.standby += 1;
fclose(fp);
fp = fopen(“ticket.dat”,“w”);
fprintf(fp,“%s %s %d %d”,t.name,t.id, t.state, t.standby);
fclose(fp);
printf(“购票成功!\n余票:%d\n”,t.standby);
}
}