📄 atm.txt
字号:
#include<stdio.h>
#include<string.h>
struct ATM
{ unsigned long ID_NO;
unsigned int password;
char name[10];
float balance;
unsigned long iid;
};
int i=0;
ATM TestAcc[10];
int check(unsigned long,unsigned int);
ATM Getvalue(unsigned long id,unsigned int pw,char *n,float m,ATM k);
int deposit(unsigned long id,unsigned int pw,float m);
int drawing(unsigned long id,unsigned int pw,float m);
float chk_balace(unsigned long id,unsigned int pw);
ATM Getvalue(unsigned long id,unsigned int pw,char*n,float m,ATM K)
{ K.ID_NO=id;
K.password=pw;
K.balance=m;
K.iid=K.ID_NO;
strcpy(K.name,n);
return K;
}
int deposit(unsigned long id,unsigned int pw,float m)
{ if(check(id,pw))
{ TestAcc[i].balance+=m;
return 1;
}
else return 0;
}
int drawing(unsigned long id,unsigned int pw,float m)
{ if(check(id,pw))
{ if(TestAcc[i].balance>=m)
{ TestAcc[i].balance-=m;
printf("您提了%f元,现在余额为%f元\n",m,TestAcc[i].balance);
return 1;
}
else printf("余额不足!\n");
return 0;
}
else { printf("密码有误!");
return 0;
}
}
float chk_balance(unsigned long id,unsigned int pw)
{ if(check(id,pw)) return TestAcc[i].balance;
else return (float)0;
}
int check(unsigned long id,unsigned int pw)
{ if(id==TestAcc[i].ID_NO && pw==TestAcc[i].password) return 1;
else return 0;
}
void main()
{ int choice; int j=0,p=0; unsigned long id;
unsigned int pw,pw1;
char name[10];
float m=0.0,n=0.0;
int x=0;
do
{ printf("\n自动柜员机\n");
printf("--------------");
printf("<1> 开户\n");
printf("<2> 存款\n");
printf("<3> 提款\n");
printf("<4> 余额查询\n");
printf("<5> 利息查询\n");
printf("<6> 结束\n");
printf("--------------");]
printf("请选择:");
scanf("%d",&choise);
if(choise==6) break;
if(choise>1 && choise<=5)
{ printf("请输入帐号:");
scanf("%d",&id);
for(j=0;j<p;j++)
if(TestAcc[j].idd==id) i=j;
printf("请输入密码:");
scanf("%d",&pw);
}
else
if(choise==1)
{ printf("请输入开户帐号:");
scanf("%d",&id);
printf("请输入开户密码:");
scanf("%d",&pw);
printf("请再次输入密码:");
scanf("%d",&pw1);
}
else
{ printf("输入有误,请输入1~6之间的数字!);
continue;
}
switch(choise)
{ case 1:
if(pw1!=pw)
{ printf("密码不正确,开户失败!");
break;
}
printf("请输入姓名:\n");
scanf("%s",name);
if(p<10)
{ TestAcc[p]=Getvalue(id,pw,name,0,TestAcc[p]);
printf("开户成功!\n");
p++;
}
else printf("帐户已满,不能开户");
break;
case 2:
printf("请输入存款金额:");
scanf("%f",&m);
if(deposit(id,pw,m)) printf("存款作业成功! 您目前的存款余额是: %f元\n",chk_balance(id,pw));
else printf("存款作业失败! 可能是帐号或密码有误!\n");
break;
case 3:
printf("请输入提款金额: ");
scanf("%f",&m);
if(drawing(id,pw,m)) printf("提款作业成功!您目前的存款余额是%f元\n",chk_balance(id,pw));
else printf("提款作业失败!可能是帐号或密码有误,或者存款余额不足\n");
break;
case 4:
m=chk_balance(id,pw);
if(m) printf("查询作业成功!您目前的余额是: %f元\n",m);
else printf("查询作业失败!可能是帐号或秘密有误!\n");
break;
case 5:
n=chk_balance(id,pw);
if(n)
{ printf("请输入存款的种类:\n");
printf("<1>定期\n<2>活期\n<3>取消\n");
scanf("%d",&x);
do
{ if(x==1) printf("您的定期存款是%f元!\n 定期存款利率是%f元!\n",n,n*0.065);
else if(x==2) printf("您的活期存款是%f元!\n 活期存款利率是%f元!\n",n,n*0.035);
else if(x==3) printf("您取消了利息查询!\n");
else { printf("输入错误,请输入1~3的数字!\n"); break; }
break;
}while(x!=3);
}
else printf("查询作业失败! 可能是帐号或密码有误!\n");
break;
}
}while(choise!=6);
printf("谢谢使用!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -