函数版ATM机

   

const rs = require("readline-sync");

let userArr = ["aa", "123", 1500, "bb", "456", 2000];

let count = 3;
let state = true;


console.log(`欢迎来到大富豪银行`);

// 系统     
function system() {
    // console.log(`欢迎来到完美银行`);
    console.log(`请选择服务1.登录账户   2.注册账户 0、退出`);
    let register = rs.question() - 0;
    switch (register) {
        case 1:
            inpurName();
            break;
        case 2:
            registered();
            break;
        case 0:
            exit();
            break;
        default:
            console.log(`操作错误,请重新选择服务!!`);
            registered()
            break;

    }
}

// 注册
function registered() {
    console.log(`请输入您的账户名`);
    let userName = rs.question();
    userArr.push(userName);
    console.log(`请输入您的密码`);
    let password = rs.question();
    userArr.push(password);
    userArr.push(0);
    console.log(`账号注册成功!!!`);
    inpurName();
}

// 登录      切换账号
function inpurName(i) {
    while (count > 0) {
        console.log(`请输入您的账号:`);
        let inputName = rs.question();

        // 判断是不是切换自己的账号
        if (inputName != userArr[i]) {


            //数组的遍历
            for (let i = 0; i < userArr.length; i++) {

                if (inputName == userArr[i] && i % 3 == 0) {
                    console.log(`请输入您的密码`); //
                    let inputPWD = rs.question();
                    if (inputPWD == userArr[i + 1]) {

                        // 主程序
                        ATMMain(userArr[i], i);
                        break;
                    } else {
                        console.log(`密码错误,请重新输入账户密码!!!`);
                        count--;
                        if (count == 0) {
                            console.log(`3次密码输入错误,账户冻结,有需要请联系客服!!!!!`);
                        } else {
                            console.log(`你还有${count}次机会`);
                        }
                        break;
                    }
                } else if (i == userArr.length - 1) {
                    console.log(`您输入的${inputName}不存在`);
                    count--;
                    if (count == 0) {
                        console.log(`3次账号输入错误,账户冻结,有需要请联系客服!!!!!`);
                    } else {
                        console.log(`你还有${count}次机会`);
                    }
                    break;
                }
            }
        }
        else {
            console.log(`你当前已经在${userArr[i]}账号下`);
            break;
        }


    }

}

// 主程序
function ATMMain(inputName, i) {
    while (state) {
        console.log(`请选择服务:1.查询  2.存款  3.取款  4.转账  5.修改密码  6.切换账户  0.退出账号`);
        let option = rs.question() - 0;
        switch (option) {
            // 退出账户
            case 0:
                exit();
                break;
            // 查询余额
            case 1:
                console.log(`您${inputName}账户下的,余额是${userArr[i + 2]}`);
                break;
            // 存款
            case 2:
                saveMoney(i);
                break;
            // 取款
            case 3:
                dropMoney(i);
                break;
            // 转账
            case 4:
                transName(i);
                break;
            // 修改密码
            case 5:
                inputPWD(i);
                break;
            // 切换账户 
            case 6:
                inpurName(i);
                // switchAccount(i);
                break;
            default:
                console.log(`选择错误,请重新选择服务!!`);
        }
    }
}


// 存钱
function saveMoney(i) {
    console.log(`请输放存入钞票(面额为100元的):`);
    let saveMoney = rs.question() - 0;
    if (!isNaN(saveMoney) && saveMoney > 0 && saveMoney % 100 == 0) {
        userArr[i + 2] += saveMoney;
        console.log(`存入成功`);
    } else {
        console.log(`存入的金额有误!!`);

    }
}

// 取钱
function dropMoney(i) {
    console.log(`请输入取出的金额:`);
    let dropMoney = rs.question() - 0;
    if (!isNaN(dropMoney) && dropMoney > 0) {
        if (dropMoney <= userArr[i + 2]) {
            userArr[i + 2] -= dropMoney;
            console.log(`取款成功`);
        } else {
            console.log(`余额不足!!`);
        }
    } else {
        console.log(`输入错误`);
    }
}

// 转账
function transName(i) {
    console.log(`请输入转账的账号`);
    let transName = rs.question();
    // 查找transName是否存在
    let index = userArr.indexOf(transName);
    //index != -1转账账号存在(index % 3 确保只判断账号)
    if (index != -1 && index % 3 == 0) {
        //判断是不是给自己转账
        if (index != i) {
            //如果存在获取tansName的下标(index)
            console.log(`请输入转账的金额:`);
            let transMoney = rs.question() - 0;
            console.log(`转账成功`);
            if (!isNaN(transMoney) && transMoney > 0) {
                if (transMoney <= userArr[i + 2]) {
                    //当前账户减钱
                    userArr[i + 2] -= transMoney;
                    //当前账户加钱
                    userArr[index + 2] += transMoney;
                } else {
                    console.log(`余额不足!!`);
                }
            } else {
                console.log(`输入错误`);
            }
            //请输入转账金额
        } else {
            console.log(`不能给自己转帐!`);
        }
    } else {
        console.log(`您转账的${transName}账号不存在`);
    }
}

// 修改密码
function inputPWD(i) {

    console.log(`请输入您的初始密码`);
    let inputPWD = rs.question();
    if (inputPWD == userArr[i + 1]) {
        console.log(`请输入新密码`);
        let inputPWD1 = rs.question();
        console.log(`请再次输入您的密码`);
        let inputPWD2 = rs.question();

        if (inputPWD1 == inputPWD2) {

            userArr[i + 1] = inputPWD1;

            console.log(`密码修改成功!`);

            console.log(`请重新登录账号!!!`);


        } else if (inputPWD1 != inputPWD2) {
            console.log(`两次输入的密码不相同,修改密码失败`);
        }

        // 修改密码后重新登录
        inpurName();

    } else {
        console.log(`初始密码错误,请核对后再输入`);
    }
}

// 退出账户
function exit() {
    console.log(`欢迎下次光临!!!`);
    //退出3次机会循环
    count = 0;
    //退出选项循环
    state = false;
    //退出数组遍历
    i = userArr.length;

}

// 调用系统
system();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值