未分类

简单的ATM实现

本文是博主帮助同学做的大作业,现学现做的,部分借鉴了其他博主的思路代码。
这个是ATM机的登陆界面,第一次输入的账号,密码就是我们第一次输入的账号密码,我们通过cookie的方式将这个账号密码存入本地(因为是一个前端的大作业,所以就不写后端的内容了),第二次登陆的时候,判断是否有本地的cookie的账号密码匹配,若有匹配,就自动跳转到存取款界面,如果账号,密码不匹配,就会进入一个循环,循环3次后就会锁死这个界面。然后存取款界面的也是通过cookie存值,每次访问的时候界面10ms之内就会加载一个js,读取cookie。更改余额的值。然后就是那个取消的按键了,取消案件将事件设置成跳转到登陆界面,这样就实现了一个简单的ATM机,不过现在还有一个小bug,就是,博主图方便,把余额界面的账户设置成一个了,这样的话,就会存在多个账户访问的是同一个账户的余额,所以目前更改的思路有两种,一个就是将登陆界面的cookie设定成不可更改的值,而不是一个数组,或者想办法解决html界面之间的传值问题。这个有时间博主再更行吧(有点不好意思的是,博主一直不怎么会调css,所以这个界面的样式,博主抄的网上的),下面附上源代码。

<!DOCTYPE html> /*ATM2.html*/
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style type="text/css">
        div{
            width: 300px;
            height:200px;
            margin: 0 auto;
            border: 1px solid black;
            border-radius: 5px;
            text-align: center;
        }
        p{
            font-size: 20px;
        }

        input{
            width: 150px;
            height:20px;
        }
        button{
            border: 0px;
            padding: 5px;
            background-color: green;
            color: white;
            }

    </style>
    <body>
        <div>
            <p>ATM机</p>
            <p><label>账号:</label><input type="text" id="account"></p>
            <p><label>密码:</label><input type="password" id="passwordatm"></p>
            <p><button onclick="login()">登录</button> <button onclick="shut()">取消</button></p>
        </div>
    </body>
</html>
<script>
    function setCookie(account,passwordatm){
        document.cookie=account+"="+passwordatm+";";  
    }
    function getCookie(account) {
        name = account+"=";
        var ca = document.cookie.split(';');
        for(var i=0; i<ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name)==0) { return c.substring(name.length,c.length); }
    }
    return "";
    }
    function shut(){
        window.location.href="ATM2.html";
    }
    var i=2;//输入的次数
    //判断卡号是否位数字
    function isNaNAccount(account){
        return isNaN(account);
    }
    //判断输入的卡号和密码是否为空
    function isNaNAccountAndPwd(account,passwordatm){
        if((account.length>0)&&(passwordatm.length>0)){
            return true;
        }
        return false;
    }
    //登录事件
    function login(){
        var account = document.getElementById("account").value;
        var passwordatm = document.getElementById("passwordatm").value;
        console.log(typeof account);
        console.log(passwordatm);
        if(isNaNAccount(account)){
            alert("卡号必须是数字");
            return;
        }
        if(!(isNaNAccountAndPwd(account,passwordatm))){
            alert("卡号和密码都不能为空");
            return;
        }
        if(getCookie(account)==""){
            setCookie(account,passwordatm);
        }

        if((i>0)&&getCookie(account)==passwordatm){
            window.location.href="ATM3.html";
        }else{
            if(i==0){
                alert("你的账号已被锁定!");
                return;
            }
            alert("你还剩"+i+"次机会!");
            i--;
            return ;
        }
    }

</script>

<!DOCTYPE html> /*ATM3.html*/
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style type="text/css">
        div{
            width: 300px;
            height:200px;
            margin: 0 auto;
            border: 1px solid black;
            border-radius: 5px;
            text-align: center;
        }
        p{
            font-size: 20px;
            text-align: left;
        }
        input{

            width: 150px;
            height:20px;
        }
        button{
            border: 0px;
            padding: 5px;
            background-color: green;
            color: white;
            }
    </style>
    <body>
        <div>
            <p><label>余额:</label><input type="text" id="balance" value=0 disabled="disabled"></p>
            <p><label>存款:</label><input type="text" id="deposit"> <button onclick="deposit()">存款</button></p>
            <p><label>取款:</label><input type="text" id="withdraw"> <button onclick="withDraw()">取款</button></p>
            <p ><label></label> <button onclick="shut()">取消</button></p>
        </div>
    </body>
</html>

<script>
    function shut(){
        window.location.href="ATM2.html";
    }
    //输入的是否为数字
    function isNumber(number){
        return isNaN(number);
    }
    //存款操作
    function checkCookie(){
        var user=getCookie("username");
        if(user!=""){
            document.getElementById("balance").value = parseFloat(user);
        }else{
            setCookie("username","0");
            document.getElementById("balance").value = 0;
        }
    }
    function setCookie(cname,cvalue){
        document.cookie=cname+"="+cvalue+";";
    }
    function getCookie(cname){
        var name = cname+"=";
        var ca =document.cookie.split(';');
        for(var i=0;i<ca.length;i++){
            var c = ca[i].trim();
            if(c.indexOf(name)==0){
                return c.substring(name.length,c.length);
            }
        }
        return "";
    }
    function deposit(){
            var balance = parseFloat(document.getElementById("balance").value);
            var deposit = document.getElementById("deposit").value;

            if(!deposit.length>0){
                alert("请输入你要存款的金额..");
                return;
            }

            if(isNumber(deposit)){
                alert("请输入数字!");
                return;
            }
            balance += parseFloat(deposit);
            document.getElementById("balance").value = balance;
            setCookie("username",balance.toString());

        }
    //取款操作
    function withDraw(){
            var balance = parseFloat(document.getElementById("balance").value);
            console.log(typeof balance);
            var withdraw =document.getElementById("withdraw").value;

            if(!withdraw.length>0){
                alert("请输入你要取款的金额..");
                return;
            }

            if(isNumber(withdraw)){
                alert("请输入数字!");
                return;
            }
            if(parseFloat(withdraw) >balance){
                alert("余额不足请重新输入!");
                return;
            }
            balance -=withdraw;
            document.getElementById("balance").value = balance;
            setCookie("username",balance.toString());

    }
    setTimeout("checkCookie()",10);
</script>

Leave a Reply

邮箱地址不会被公开。 必填项已用*标注