首页 > 其他 > 详细

ATM机

时间:2020-07-12 15:21:14      阅读:33      评论:0      收藏:0      [点我收藏+]
const rs = require("readline-sync");

let account = [
    ["helei", 123, 1000],
    ["wangsan", 456, 3000]
];
//判断次数
let count = 3;

// 状态值
let state = true;
// 主函数

// main代表主函数
function main(inputName) {

    while (state) {
        console.log(`请输入你要办理的业务
    1、查询 2、存钱 3、取钱 4、转账 5、切换账号  6、修改密码 0、退出`);
        let business = rs.question() - 0;
        switch (business) {
            case 1:
                console.log(`${account[inputName][0]}账户的余额为:${account[inputName][2]}元`);
                break;
            case 2:
                saveMoney(inputName);
                break;
            case 3:
                outMoney(inputName);
                break;
            case 4:
                transfer(inputName);
                break;
            case 5:
                inputName = switchAccount(inputName);
                break;
            case 6:
            let temp= changePassword(inputName);
            if(temp){
                return "reg";
            }
            break;
            case 0:
                console.log(`欢迎下次光临`);

                return;
            default:
                console.log(`没有你要办理业务的选项`);
                break;

        }
    }

}

// login代表登陆
function login(isLogin, trasnName, indexNum) {

    let inputNam = trasnName;
    if (!trasnName) {
        console.log(`请输入你的账号`);
        inputNam = rs.question();
    }

    for (let i = 0; i < account.length; i++) {
        if (inputNam == account[i][0]) {
            if (!isLogin) {
                return i;
            }
            if (i == indexNum) { //判断是不是切换账户
                console.log(`您已经在${account[i][0]}下了。`);
                return indexNum;
            }
            while (count) {
                console.log(`请输入你的密码`);
                let inputPWD = rs.question();
                if (inputPWD == account[i][1]) {
                    main(i);
                    return i;

                } else if (count == 1) {
                    console.log(`你的账户已冻结,请联系工作人员!!!`);
                    return;
                } else {
                    console.log(`你输入的密码有误,你还有${--count}次机会`);
                }
            }


        } else if (i == account.length - 1 && isLogin != "reg") {
            console.log(`你输入的账号不存在`);
        }
    }
}


// 存钱
function saveMoney(inputName) {
    console.log(`请输入你要存入的金额`);
    let inputMoney = rs.question() - 0;
    if (inputMoney < account[inputName][2]) {
        if (inputMoney > 0 && inputMoney % 100 == 0 && !isNaN(inputMoney)) {
            account[inputName][2] += inputMoney;
            console.log(`恭喜你,存钱成功`);

        } else {
            console.log(`请输入正确的金额`);

        }
    } else {
        console.log(`您的余额不足,或者你输入的是一个非数字`);

    }

}

// 取钱
function outMoney(inputName) {
    console.log(`请输入你要取出的金额`);
    let outMoney = rs.question() - 0;
    if (outMoney < account[inputName][2]) {
        if (outMoney > 0 && outMoney % 100 == 0 && !isNaN(outMoney)) {
            account[inputName][2] -= outMoney;
            console.log(`恭喜你,取钱成功`);

        } else {
            console.log(`请输入正确的金额`);

        }
    } else {
        console.log(`您的余额不足,或者你输入的是一个非数字`);

    }
}

// 转账

function transfer(inputName) {
    console.log(`请输入转账的账户`);
    let trasnName = rs.question();
    let temp = login(false, trasnName) //返回当前登录的下标
    if (inputName != temp) {
        if (temp || temp == 0) {
            console.log(`请您输入你要转出的金额`);
            let outMoney = rs.question() - 0;
            if (outMoney > 0 && outMoney % 100 == 0 && outMoney < account[inputName][2] && !isNaN(inputName)) {
                account[inputName][2] -= outMoney;
                account[temp][2] += outMoney;
            } else {
                console.log(`请输入100的倍数`);

            }

        }
    } else {
        console.log(`不能给当前用户转钱`);

    }
}

// 切换账号
function switchAccount(inputName) {
    console.log(`请输入切换账号的名字`);
    let switchName = rs.question();
    let temp = login(true, switchName, inputName)
    if (temp || temp === 0) {
        return temp; //把切换账户的下标返回给主程序
    } else {
        return inputName; //如果账户不存在,则返回当前账户下标给主程序
    }

}


// 登录
function startATMSystem() {
    while (state) {
        console.log(`欢迎来到成都市高新区中和镇ICBC银行
        1、注册  2、登录
        `);
        let choice = rs.question() - 0;
        switch (choice) {
            case 1:
                register();
                break;
            case 2:
                login(true);
                break;
            default:
                console.log(`请输入正确功能数字。`);
        }
    }
}

startATMSystem();

function register() {
    let user = [];
    console.log(`请输入账户:`);
    let username = rs.question();

    let temp = login("reg", username); //返回转账账户的下标
    if (!temp && temp != 0) {
        console.log(`请输入密码:`);
        let userpwd = rs.question();
        console.log(`请确认密码:`);
        let userpwd2 = rs.question();
        if (userpwd2 === userpwd) {
            user.push(username, userpwd, 0);
            account.push(user);
        } else {
            console.log(`确认密码与密码不一致`);
        }
    } else {
        console.log(`您输入的账号 ${username},已经存在!!!`);
    }
}


// 修改密码
function changePassword(inputName){
  while(state){
    console.log(`请输入你要修改的密码`);
    let xiugai=rs.question();
    if(xiugai==account[inputName][2]){
    console.log(`你输入的密码和原密码一致请重新输入`);
    
    }else{
        console.log(`请确认你要修改的密码`);
        let xiugai1=rs.question();
        if(xiugai1==xiugai){
            console.log(`修改成功`);
            return true;
        }else{
            console.log(`你输入的修改密码和确认密码不一致`);
        }
    }
  }
    
    
}

ATM机

原文:https://www.cnblogs.com/heleiya/p/13288186.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!