.h
//
// 提款机.h
// 提款机
//
// Created by dllo on 15/7/7.
// Copyright (c) 2015年 zhozhicheng. All rights reserved.
//
#import <Foundation/Foundation.h>
// 返回下标,判断输入的账号是否在账号对应的数组中
int selectCardNum(int arr[], int count, int enterCardNum);
// 判断输入的密码是否和指定的下标的元素相同
BOOL selectPassNum(int arr[], int index, int enterPassWord);
// 判断输入的金额和银行卡对应的位置的金额能否进行取款
BOOL canGetMoney(int arr[], int index, int enterMoney);
// 根据输入的金额,进行取钱操作
int getMoneyCount(int arr[], int index, int enterMoney);
// 根据输入的金额,进行存钱的操作
void saveMoney(int arr[], int index, int enterMoney);
.m
//
// 提款机.m
// 提款机
//
// Created by dllo on 15/7/7.
// Copyright (c) 2015年 zhozhicheng. All rights reserved.
//
#import "提款机.h"
int selectCardNum(int arr[], int count, int enterCardNum)
{
int index = 5;
for (int i = 0; i < count; i++) {
if (arr[i] == enterCardNum) {
index = i;
break;
}
}
return index;
}
BOOL selectPassNum(int arr[], int index, int enterPassWord)
{
if (arr[index] == enterPassWord) {
return YES;
}
return NO;
}
BOOL canGetMoney(int arr[], int index, int enterMoney)
{
if (arr[index] >= enterMoney) {
return YES;
}
return NO;
}
int getMoneyCount(int arr[], int index, int enterMoney)
{
arr[index] -= enterMoney;
return arr[index];
}
void saveMoney(int arr[], int index, int enterMoney)
{
arr[index] += enterMoney;
}
main主文件
//
// main.m
// 提款机
//
// Created by dllo on 15/7/7.
// Copyright (c) 2015年 zhozhicheng. All rights reserved.
//
#import <Foundation/Foundation.h>
#define MUL(A, B) A * B
#import "提款机.h"
int main(int argc, const char * argv[]) {
// 卡号数组
int cardNum[5] = {111, 222, 333, 444, 555};
// 密码数组
int passWord[5] = {123, 234, 345, 456, 567};
// 用户卡里剩余金额
int moneyCount[5] = {100, 200, 300, 400, 500};
while (1) {
// 存放输入的卡号
int enterCardNum = 0;
// 如果登陆成功,flag = 1, 否则是0
int flag = 0;
printf("请您输入账号\n");
scanf("%d", &enterCardNum);
int cardNumIndex = selectCardNum(cardNum, 5, enterCardNum);
if (cardNumIndex == 5) {
printf("请重新输入账号\n");
continue;
} else {
printf("请输入密码\n");
int enterCount = 3;
while (enterCount != 0) {
// 用来接收输入的密码
int enterPassWord = 0;
scanf("%d", &enterPassWord);
if (selectPassNum(passWord, cardNumIndex, enterPassWord)) {
printf("登陆成功\n");
enterCount = 0;
flag = 1;
} else {
enterCount--;
if (enterCount == 0) {
printf("24小时内不允许在登陆\n");
} else {
printf("还有%d次机会\n", enterCount);
}
}
}
}
if (1 == flag) {
// 在用一个死循环来控制循环
while (1) {
printf("请选择要执行的选项\n");
printf("1.取款\n");
printf("2.存款\n");
printf("3.退出\n");
int select = 0;
scanf("%d", &select);
if (1 == select) {
while (1) {
printf("请输入要取款的钱数\n");
int getMoney = 0;
scanf("%d", &getMoney);
if (canGetMoney(moneyCount, cardNumIndex, getMoney)) {
printf("操作成功,剩余金额为%d\n", getMoneyCount(moneyCount, cardNumIndex, getMoney));
break;
} else {
printf("余额不足,请重新输入\n");
}
}
} else if (2 == select) {
int getMoney = 0;
scanf("%d", &getMoney);
saveMoney(moneyCount, cardNumIndex, getMoney);
printf("操作成功, 余额是%d\n", moneyCount[cardNumIndex]);
} else if (3 == select) {
printf("已退卡\n");
break;
} else {
printf("请重新输入\n");
}
}
}
}
return 0;
}