模拟ATM机取款的过程
(1)、定义两个能保存5个整形数的数组,一个用于保存5个人的卡号,一个用于保存对应卡号的密码。
(2)、判断输入的卡号是否在数组中。
(3)、如果在数组中就让输入密码,判断是否和卡号对应的密码匹配。
(4)、判断密码,24小时内只允许输入3次错误的密码。输入错误应该提示还剩下的输入次数,3次都输入错误提示24小时内不允许操作该卡。
(5)、密码正确就让用户对该账户进行相应的操作。
(6)、注意取款的限制。
(7)、上述功能对于一个ATM机是循环的过程,也就是说每个客户都会按照上面的操作进行操作,一个用户操作完成,下一个用户来了还可以进行相应的操作
注:本程序是在Xcode的Foundation框架下编写,移到C中需要加bool头文件
#import<Foundation/Foundation.h>
typedef structbankCard{
int CardNumber;
int CardPassword;
float CardMoney;
bool state;
}bankCard;
intcardManage(bankCard card[],int cardCount)
{
printf("请输入卡号:\n");
int cardNumber=0;
while(1)
{
scanf("%d",&cardNumber);
for (int i=0;i<cardCount;i++)
{
if(cardNumber==card[i].CardNumber&&card[i].state==1)
{
return i;
}
else if (cardNumber==card[i].CardNumber&&card[i].state==0)
{
printf("您的卡片已经锁定,24小时不能操作,请及时联系我行工作人员。\n");
return -1;
}
else
{
;
}
}
printf("您输入的卡号不存在,请重新输入:\n");
}
}
//密码信息相关函数
boolpassWordInfo(bankCard card[],int number)
{
printf("请输入密码:\n");
int passWord=0;
int times=3;
while (times>0)
{
scanf("%d",&passWord);
if (passWord==card[number].CardPassword)
{
printf("密码输入正确\n");
return 1;
}
else
{
printf("密码输入错误,您还有%d次输入机会。\n",--times);
}
}
card[number].state=0;
printf("密码输入错误三次,24小时内不能对该卡进行操作。\n");
return 0;
}
voidservice(bankCard card[],int number)
{
while (1) {
printf("取款请按1\n存款请按2\n查询请按3\n退出请按4\n");
int order=0;
scanf("%d",&order);
switch (order) {
case 1:
{
printf("请输入取款金额,最高限额为两千:\n");
int money=0;
while (1)
{
scanf("%d",&money);
if (money>2000)
{
printf("输入金额超过上限,请重新输入:\n");
}
elseif(money>card[number].CardMoney)
{
printf("余额不足,请重新输入:\n");
}
else
{
card[number].CardMoney-=money;
printf("取款成功,剩余金额为%.2f",card[number].CardMoney);
break;
}
}
break;
}
case 2:
{
printf("输入存款金额:\n");
int money=0;
scanf("%d",&money);
card[number].CardMoney+=money;
printf("存款成功,卡内余额为:%.2f.\n",card[number].CardMoney);
break;
}
case 3:
{
printf("卡内余额为:%.2f元。\n",card[number].CardMoney);
break;
}
case 4:
{
return;
break;
}
default:
break;
}
printf("继续交易请按1\n退出请按0\n");
scanf("%d",&order);
if (order==0) {
return;
}
}
}
int main(int argc,const char * argv[])
{
bankCard bankCardArray[]={
{10001,123456,100000,1},
{10002,234567,1000,1},
{10003,345678,3000,1},
{10004,456789,0,1},
{10005,567890,40000,1}};
int number=0;
while (1) {
number=cardManage(bankCardArray,5);
if (number<0) {
continue;
}
bool result=0;
result=passWordInfo(bankCardArray,number);
if (result==0)
{
continue;
}
else
{
service(bankCardArray,number);
}
}
return 0;
}
}