js小项目ATM机-wch-08

109 阅读1分钟
<script>
    let card_datas = [        { "cardNo": "90009", "pwd": "123456", "money": 1000000000 },        { "cardNo": "90008", "pwd": "123456", "money": 1000000000 },        { "cardNo": "90007", "pwd": "123456", "money": 1000000000 }]
    let loginIndex = -1; //登录的账号信息,存储取应的下标

    login();
    function login() {     //登录
        for (let c = 1; c <= 3; c++) {

            let input_id = prompt('请输入账号')//请输入账号
            let input_pwd = prompt('请输入密码')//请输入密码

            //循环card_data数据, 如果相等,说明登录成功,显示主界面 loginIndex = 1;
            for (let i = 0; i < card_datas.length; i++) {
                if (input_id == card_datas[i].cardNo && input_pwd == card_datas[i].pwd) {
                    loginIndex = i
                    alert('登录成功')
                    home()
                }
            }

            // 循环外判断,是否为登录失败(循环的次数是否是正常跳出)
            alert('账户或密码错误')
        }

        alert('三次错误,不能登录')

    }

    function home() {     //主页面
        alert('欢迎来到wch ATM 机')//欢迎来到doubleyong ATM 机
        let chose = parseInt(prompt('输入要进行的操作 1. 查询2. 转账 3. 存款 4.取款 0. 退出'))
        switch (chose) {
            case 1:
                check();//调用查询方法
                home(); //相当于循环到home页面
                break;
            case 2:
                transfer();//调用转账方法
                home(); //相当于循环到home页面
                break;
            case 3:
                cunkuan();//调用存款方法
                home(); //相当于循环到home页面
                break;
            case 4:
                take();//调用取款方法
                home(); //相当于循环到home页面
                break;
            case 0:
                quit();//调用退出方法
                home(); //相当于循环到home页面
                break;

            default:
                alert('输入有误,请重新输入')
                home()
        }
    }

    function check() {      //查询余额
        if (loginIndex == -1) {
            alert('未登录,请先登录');
            login();
            return
        }
        alert('您账户余额还剩' + card_datas[loginIndex].money + '圆');
    }

    function transfer() {     //转账
        if (loginIndex == -1) {
            alert('未登录,请先登录');
            login();
            return
        }

        let toNo = Number(prompt('请输入转账卡号'))//请输入转账卡号
        function isToNo(toNo) {//判断卡号是否存在, 记录卡号对应的下标
            for (let i = 0; i < card_datas.length; i++) {
                if (card_datas[i].cardNo == toNo) {
                    return i;
                }
            }
            alert('查无此人,重新输入转账账号')
            transfer();
            return -1;
        }
        console.log(isToNo(toNo));
        if (isToNo(toNo) != -1) {
            let toMoney = Number(prompt('输入转账金额'))
            if (toMoney < card_datas[loginIndex].money) {
                card_datas[isToNo(toNo)].money += toMoney;
                card_datas[loginIndex].money -= toMoney
                alert('转账成功您的余额还剩下' + (card_datas[loginIndex].money) + '圆')
                home()
            } else {
                alert('余额不足...')
                home();
            }


        }
        // else {
        //     alert('查无此人,重新输入转账账号')
        //     transfer();
        //     return;
        // }


        // 请输入转账金额
        // 判断金额是否足够

        // 登录用户减钱
        // 转账用户加钱

        // 转账成功
    }

    function cunkuan() {    //存款
        if (loginIndex == -1) {
            alert('未登录,请先登录');
            login();
            return
        }
        let cun = Number(prompt('请输入要存款的金额')) // 请输入要存款的金额
        card_datas[loginIndex].money += cun;
        alert('存款成功!余额为:' + card_datas[loginIndex].money);
    }

    function take() {        //取款
        if (loginIndex == -1) {
            alert('未登录,请先登录');
            login();
            return
        }
        let qu = Number(prompt('请输入要取款的金额')) // 请输入要存款的金额
        if (qu > card_datas[loginIndex].money) {
            alert('余额不足,请充值')
            home();
            return;
        }
        card_datas[loginIndex].money -= qu;
        alert('取款成功!余额为:' + card_datas[loginIndex].money);

    }

    function quit() {         //退出到登录页面
        loginIndex = -1
        login()
    }
</script>