C语言-ATM机函数版

一、目的

  • 了解C语言中函数的作用
  • 熟悉使用函数进行编程
  • 利用函数编写一个ATM机程序

二、技术及其使用

1.声明函数和全局变量
void welcome();//欢迎界面
void menu();//菜单
char getChoice();//选择操作//
bool login();//登录
void intmoney();//存款
void outmoney();//取款
void xgmima();//修改密码
void exitATM(int status);//退出
bool going();//是否继续
int Q = 3000; int password = 123;
2.登陆函数
bool login(){
    int j = 4;
    while (1)
    {
        int key;    
        scanf_s("%d", &key);
        if (key == password) {
            return (true);
        }
        else {
            j--;
            if (j == 0) {
                printf("此卡已冻结,请联系客服!\n");
                printf("\n感谢您的使用,再见!!!\n");
                return (false);             
            }
            else {
                printf("密码错误,请重新输入(您还可以输入%d次):", j);
            }
        }
    }
}
3.选择操作函数
char getChoice() {
    printf("请选择您的操作:");
    while (1)
    {
        char temp[20] = {};     
        int count = scanf_s("%s", temp, sizeof(temp));
        if (count != 1) {
            printf("输入不合法,请重新选择:");
        }
        else {
            char ch = temp[0];
            if (ch == '1' || ch == '2' || ch == '3' || ch == '4') {
                return ch;
            }
            else {
                printf("输入不合法,请重新选择:");
            }
        }
    }
}
4.取款函数
void outmoney() {
    int qu;
    while (1)
    {
        printf("请输入取款金额:");
        scanf_s("%d", &qu);
        if (Q >= qu) {
            Q -= qu;
            printf("取款成功,余额为:%d\n",Q);
            bool ch = going();
            if (ch == false) {
                return;
            }
        }
        else {
            printf("余额不足,");
            bool ch = going();
            if (ch == false) {
                return;
            }
        }
    }
}
5.存款函数
void intmoney() {
    int cun;
    while (1) {
        printf("请输入存款金额:");
        scanf_s("%d", &cun);
        Q += cun;
        printf("存款成功,余额为:%d\n", Q);
        bool ch = going();
        if (ch == false) {
            return;
        }
    }
}
6.修改密码函数
void xgmima() {
    int key, keys, keyss;
    int j = 4;
    printf("开始更改密码\n");
    printf("请输入原密码:");
    while (1)
    {
        scanf_s("%d", &key);
        if (key == password) {
            printf("请输入更改后的密码:");
            while (1) {
                scanf_s("%d", &keys);
                printf("请确认密码:");
                scanf_s("%d", &keyss);
                if (keys == keyss) {
                    printf("密码修改成功\n");
                    password = keyss;
                    break;
                }
                else {
                    printf("二次密码不一致,请重新输入:");
                    continue;
                }
            }
            break;
        }
        else {
            j--;
            if (j == 0) {
                printf("此卡已冻结,请联系客服!\n");
                exitATM(EXIT_FAILURE);
            }
            else {
                printf("密码错误,请重新输入(您还可以输入%d次):", j);
            }
        }
    }
}
7.退出函数
void exitATM(int status) {
    printf("\n***************************\n");
    printf("    感谢您的使用,再见!\n");
    printf("***************************\n");
    exit(status);
}

三、主函数代码及程序预览

int main()
{
    welcome();
    bool t= login();
    if (t == false) {
        exitATM(EXIT_FAILURE);
    }
    while (1)
    {
        menu();
        char choice = getChoice();
        switch (choice)
        {case '1':
            outmoney();
            break;
        case '2':
            intmoney();
            break;
        case '3':
            xgmima();
            break;
        default:
            exitATM(EXIT_SUCCESS);
            break;
        }
    }
    return 0;
}
1564565078701.gif

你可能感兴趣的:(C语言-ATM机函数版)