C写的票务系统

#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);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值