博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
提款机模拟
阅读量:5335 次
发布时间:2019-06-15

本文共 3053 字,大约阅读时间需要 10 分钟。

.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;

}

 

    

    

    

    

    

    

    

 

转载于:https://www.cnblogs.com/zhaozhicheng/p/4628469.html

你可能感兴趣的文章
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
忘记root密码,怎么办
查看>>
linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
查看>>
《黑客与画家》 读书笔记
查看>>
bzoj4407: 于神之怒加强版
查看>>
mysql统计一张表中条目个数的方法
查看>>
ArcGIS多面体(multipatch)解析——引
查看>>
css3渐变画斜线 demo
查看>>
JS性能DOM优化
查看>>
设计模式 单例模式 使用模板及智能指针
查看>>
c#的const可以用于引用类型吗
查看>>
手动实现二值化
查看>>
What Linux bind mounts are really doing
查看>>
linux top命令详解
查看>>
博弈论小结
查看>>
模拟Post登陆带验证码的网站
查看>>