#include<string.h>
typedef struct {
char NO[10];
char name[20];
double money;
int ok;
}IC;
IC a[1000];
int main()
{
int n = 0,i;
int op;
char s[20];
double p;
printf("歡迎進入公交卡管理系統\n");
while(1) {
printf(" ***********操作菜單***********\n");
printf(" 1 公交IC卡錄入\n");
printf(" 2 公交IC卡充值\n");
printf(" 3 公交IC卡註銷\n");
printf(" 4 公交IC卡掛失\n");
printf(" 5 公交IC卡查詢\n");
printf(" 0 退出系統\n");
scanf("%d",&op);
if(op == 1) {
printf("請輸入新錄入公交IC卡信息:\n");
printf("編號:");
scanf("%s",a[n].NO);
printf("姓名:");
scanf("%s",a[n].name);
printf("初始金額:");
scanf("%lf",&a[n].money);
a[n].ok = 1;
n ++;
printf("新卡錄入成功,當前***有%d個公交IC卡\n",n);
}
else if(op == 2) {
printf("請輸入需要充值的公交IC卡的編號以及金額\n");
printf("公交IC卡的編號:");
scanf("%s",s);
printf("金額:");
scanf("%lf",&p);
for(i = 0;i < n;i ++)
if(strcmp(s,a[i].NO) == 0) break;
if(i == n) printf("查無此卡\n");
else {
if(a[i].ok == 1) {
printf("充值成功!\n");
printf("公交IC卡的編號:%s\n姓名:%s\n初始金額:%.2lf 當前金額:%.2lf\n",a[i].NO,a[i].name,a[i].money,a[i].money+p);
a[i].money += p;
}
else {
printf("此卡掛失中,無法操作!\n");
}
}
}
else if(op == 3) {
printf("請輸入需要註銷的公交IC卡的編號:");
scanf("%s",s);
for(i = 0;i < n;i ++)
if(strcmp(s,a[i].NO) == 0) break;
if(i == n) printf("查無此卡\n");
else {
for(;i <n-1;i ++) a[i] = a[i+1];
n --;
printf("註銷成功,還剩余%d公交IC卡\n",n);
}
}
else if(op == 4) {
printf("請輸入需要掛失的公交IC卡的編號:");
scanf("%s",s);
for(i = 0;i < n;i ++)
if(strcmp(s,a[i].NO) == 0) break;
if(i == n) printf("查無此卡\n");
else {
a[i].ok = 0;
printf("掛失成功\n");
}
}
else if(op == 5) {
printf("請輸入需要掛失的公交IC卡的編號:");
scanf("%s",s);
for(i = 0;i < n;i ++)
if(strcmp(s,a[i].NO) == 0) break;
if(i == n) printf("查無此卡\n");
else {
printf("公交IC卡的編號:%s\n姓名:%s\n當前金額:%.2f\n",a[i].NO,a[i].name,a[i].money,a[i].money);
if(a[i].ok == 0) printf("備註:此卡掛失中\n");
}
}
else {
printf("退出系統成功\n");
printf("歡迎下次使用\n");
break;
}
}
return 0;
}