C语言入门-ATM机的操作界面(函数进阶版)

2019-08-01  本文已影响0人  南在南方i

通过今天的学习,让我进一步的适应了编程的逻辑门路,更深层次的懂得了编程的思想,初步认知与了解函数版块的使用方法

代码的逻辑结构

1.搭建框架
2.不需要做具体的事情
3.将具体的事情交给每一个函数去实现

使用函数的目的

使用函数的注意事项

demo中使用的不同种类函数

int getChoice() {
    int ch;
    while (1) {
        printf("请选择操作:");
        scanf_s("%d", &ch);
        if (ch >= 1 && ch <= 4) {
            return ch;
        }
        else {
            printf("选择不合法 请重新选择:");
            fflush(stdin);
        }
    }
}
void welcome(void) {
    printf("***********\n");
    printf("  welcome\n");
    printf("***********\n\n");
}
bool inputpassword(void) {
    int password ;
    int wrongTime=0;

    while (1) {
        printf("请输入密码:");
        scanf_s("%d", &password);
        if (password == orgPassword) {
            return true;
        }
        else {
            wrongTime++;
            if (wrongTime == 4) {
                return false;
            }
            else {
                printf("密码错误,");
            }
        }
    }
}

ATM机的操作界面(函数进阶版)代码整合

#include <iostream>

void welcome(void);
void exitATM(int status);
bool inputpassword(void);
void showMenu(void);
int getChoice(void);
void withdrow(void);
bool isContinue(void);
void deposit(void);
void setPassword(void);

int orgPassword = 123;
int totalMoney = 1000;

int main()
{
    
    //欢迎
    welcome();

    //输入密码
    bool result = inputpassword();
        if (result == false) {
            exitATM(EXIT_SUCCESS);
        }

        while (1) {
            //进入菜单
            showMenu();

            //选择操作
            int choice = getChoice();

            //判断操作
            
            switch (choice)
            {
            case(1):
                //取款
                withdrow();
                break;
            case(2):
                //存款
                deposit();
                break;
            case(3):
                //设置密码
                setPassword();
                break;
            default:
                exitATM(EXIT_SUCCESS);
                break;
            }
    }
}


//欢迎界面
void welcome(void) {
    printf("***********\n");
    printf("  welcome\n");
    printf("***********\n\n");
}

//结束界面
void exitATM(int status) {
    printf("********************\n");
    printf(" 感谢您的使用 再见!\n");
    printf("********************\n");
    exit(status);
}

//输入密码
bool inputpassword(void) {
    int password ;
    int wrongTime=0;

    while (1) {
        printf("请输入密码:");
        scanf_s("%d", &password);
        if (password == orgPassword) {
            return true;
        }
        else {
            wrongTime++;
            if (wrongTime == 4) {
                return false;
            }
            else {
                printf("密码错误,");
            }
        }
    }
}

//进入界面
void showMenu() {
    printf("***************\n");
    printf("   1.取款\n");
    printf("   2.存款\n");
    printf("   3.更改密码\n");
    printf("   4.退出\n");
    printf("***************\n\n");
}

//进行选择
int getChoice() {
    int ch;
    while (1) {
        printf("请选择操作:");
        scanf_s("%d", &ch);
        if (ch >= 1 && ch <= 4) {
            return ch;
        }
        else {
            printf("选择不合法 请重新选择:");
            fflush(stdin);
        }
    }
}

//取款
void withdrow() {
    int getMoney;

    while (1)
    {
        printf("请输入取款金额:");
        scanf_s("%d", &getMoney);
        if (getMoney < totalMoney) {
            totalMoney = totalMoney-getMoney;
            printf("取款成功 当前余额为%d\n", totalMoney);
            bool result = isContinue();
            if (result == false) {
                return;
            }
        }
        else {
            printf("余额不足,");
        }
        }
    }

bool isContinue() {
    fflush(stdin);

    printf("是否继续取款(Y/N):");
    getchar();
    char ch = getchar();
    if (ch == 'N') {
        return false;
    }if (ch == 'Y') {
        return true;
    }
}

//存款
void deposit(void) {
    int inputMoney;
    printf("请输入存款金额:");
    scanf_s("%d", &inputMoney);
    totalMoney += inputMoney;
    printf("存款成功 余额:%d\n", totalMoney);
}

//更改密码
void setPassword() {
    int newPassword1;
    int newPassword2;
    bool result = inputpassword();
    if (result = true) {
        while (1) {
            printf("请输入新密码:");
            scanf_s("%d", &newPassword1);

            printf("请确认新密码:");
            scanf_s("%d", &newPassword2);

            if (newPassword1 == newPassword2) {
                printf("密码设置成功!\n");
                return;
            }
            else {
                printf("密码错误,");
            }
        }
    }
}

PS.

whereas I was blind, now I see.——《Gospel According to John》

上一篇 下一篇

猜你喜欢

热点阅读