JavaScript(ATM)

226 阅读2分钟
var users = [];
var passes = [];
var money = []; //保存每个用户的余额,下标一一对应
var loginIndex = -1;//用于保存登录用户的下标,默认-1

//程序执行
menuOne();
//一级菜单
function menuOne(){
    var isover = false;
    do {
    var input=prompt('输入选项:1.登录 2.注册 3.退出');
    switch (input) {
        case '1':
            login();
            //判断是否登录,进入二级菜单
            if(loginIndex!=-1){
                menuTwo();
            }
            break;
        case '2':
            register();
            break;
        case '3':
            isover=true;
            break;
        default:
            alert('无效选项')
            break;
    }
  } while(isover==false);
}
//二级菜单
function menuTwo(){
    var isover = false;
    var input = prompt('1.查询 2.存钱 3.取钱 4.修改密码 5.转账 6.返回上一级');
    switch (input) {
        case '1':
            //查询
            queryMoney();
            break;
        case '2':
            //存钱
            saveMoney();
            break;
        case '3':
            //取钱
            takeMoney();
            break;
        case '4':
            //修改
            isover = changePass();
            break;
        case '5':
            //转账
            transferMoney();
            break;
        case '6':
            //返回上一级
            loginIndex=-1;
            isover = true;
            break;
        
    }
}
//功能函数
function login(){
    if(users.length == 0) {
        alert('先注册,再登录');
    }else{
        var userinput = prompt('输入登录的用户名');
        var passinput = prompt('输入登录的密码');
        var index = users.indexOf(userinput);
        if(index!=-1&&passes[index]==passinput) {
            alert('登录成功');
            //保存登录用户的下标
            loginIndex = index;
        }else{
            alert('登录失败')
        }
    }
}
function register(){
    var userinput = prompt('输入注册用户名');
    var passinput = prompt('输入注册密码');
    var index = users.indexOf(userinput);
    if(index == -1) {
        users.push(userinput);
        passes.push(passinput);
        money.push(0);
        alert('注册成功');
        
    }else {
        alert('用户已存在,请重新注册');
    }
}
function queryMoney(){
    alert('余额为:'+money[loginIndex]);
}
function saveMoney(){
    var m = Number(prompt('输入存的金额:'));
    if(m<0) {
        alert('金额无效,将返回二级菜单');
    }else {
        money[loginIndex]+=m;
        alert('存钱成功');
    }
}
function takeMoney(){
    var m = Number(prompt('输入要取的金额'));
    if(m<=money[loginIndex]){
        money[loginIndex]-=m;
        alert('取钱成功');
    }else{
        alert('余额不足,充值后再取');
    }
}
function changePass(){
    //先输入原密码,正确后再输入新密码并保存
    var oldPass = prompt('输入旧密码');
    if(oldPass==pass[loginIndex]){
        var newPass = prompt('输入新密码');
        passes[loginIndex]=newPass;
        alert('修改成功,将重新登录');
        return true;
    }else{
        alert('旧密码错误');
        return false;
    }
}
function transferMoney(){
    //转给谁,转多少(余额足够)
    var other = prompt('输入要转账的用户名');
    //获取转账用户的下标
    var index = users.indexOf(other);
    //需要用户已存在且不是自己
    if(index != -1 && index !=loginIndex){
        var m = Number(prompt('输入要转的金额'));
        //判断是否足够
        if(m<=money[loginIndex]){
            money[loginIndex]-=m;
            money[index]+=m;
            alert('转账成功');
        }else {
            alert('余额不足');
        }
    }else{
        alert('不存在该用户或不能转给自己');
    }
}