//6、(****)模拟ATM机取款的过程
//(1)、定义两个能保存5个整形数的数组,一个用于保存5个人的卡号,一个用于保存对应卡号的密码。
//(2)、判断输入的卡号是否在数组中。
//(3)、如果在数组中就让输入密码,判断是否和卡号对应的密码匹配。
//(4)、判断密码,24小时内只允许输入3次错误的密码。输入错误应该提示还剩下的输入次数,3次都输入错误提示24小时内不允许操作该卡。
//(5)、密码正确就让用户对该账户进行相应的操作。
//(6)、注意取款的限制。
//(7)、上述功能对于一个ATM机是循环的过程,也就是说每个客户都会按照上面的操作进行操作,一个用户操作完成,下一个用户来了还可以进行相应的操作
1 . command + n 选择 OS X 中的Cocoa Class 新建一对ATM.h 和ATM.m
2. .h文件中声明函数如下
// 输入账号函数
void inputUserName();
//判断账号是否正确
void judgeUserName(int userName);
// 输入密码的函数
void inputPassword(int index);
// 判断密码函数
BOOL isPassword(int index,int password);
// 判断取钱
void drawMoney();
3 . .m文件中实现代码void inputUserName()
{
while (1) {
printf("请输入账号:\n");
// 定义一个变量来接受账号
int userName =0;
scanf("%d", &userName);
// 判断账号是否正确
judgeUserName(userName);
}
}
//判断账号是否正确
void judgeUserName(int userName)
{
// 账号的数组
int userNameArray[5] = {111,222, 333,444, 555};
// 遍历数组进行账号的比对
for (int i =0; i < 5; i++) {
if (userNameArray[i] == userName) {
// 输入正确继续输入密码
printf("账号正确,请输入密码\n");
inputPassword(i);
// 跳出循环
break;
}else{
// 把所有的元素都比完才提示无此账号
if(i ==2){
printf("无此账号\n");
}
}
}
}
// 输入密码的函数
void inputPassword(int index){
int number =3;
while (number !=0) {
int password =0;
scanf("%d",&password);
BOOL result =isPassword(index, password);
if (result ==YES) {
// 进行存取操作
drawMoney();
break;
}else{
if (number ==1) {
printf("输入错误3次账号被冻结\n");
}else{
printf("账号输入错误,您还有%d次机会\n",number - 1);
}
}
number--;
}
}
BOOL isPassword(int index,int password){
int passwordArray[5] = {112,223, 334,445, 556};
if (passwordArray[index] == password) {
returnYES;
}else{
returnNO;
}
}
void drawMoney(){
while (1) {
int money =0;
printf("密码正确,请输入取钱金额:\n");
scanf("%d", &money);
if (money >20000) {
printf("余额不足\n");
}else{
printf("成功取出%d元",money);
break;
}
}
}
4 . 在主函数中调用(main.m)
inputUserName();