败尺 2021-09-27 21:13 采纳率: 100%
浏览 75
已结题

书上javascript做一个小型计算器


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>计算器</title>
    </head>
    <!DOCTYPE html>
<html>
    <head>
        <meta charset="{CHARSET}">
        <title>计算器</title>
    </head>
    <body>
        <script>
            var opStack = new Array(4);
            opStack[0] = 0;
            opStack[1] ='';
            opStack[2] ='';
            opStack[3] ='';
            function StartCal(){
                document.PAD.SUM.value="0";;
            }
            function KeyinNum(){
                if(opStack[0] >=2){opStack[0] = 3;}
                else {opStack[0] = 1;}
                opStack[opStack[0]] =''+document.PAD.SUM.value;
            }
            function resetNum(){
                opStack[0] = 0;
                opStack[1] = 0;
                document.PAD.SUM.value ='';
                document.PAD.SUM.value ='0';
            }
            function calcl(x){
                var opFlag =opStack[0];
                if(opFlag == -1|| opFlag == 1){count(x);}
                else if(opFlag == 3){
                    opStack[1] =''+eval(opStack[1] +opStack[2]+opStack[3]);
                    count(x);
                }
            }
            function count(x){
                if(x=='Si'){opStack[1] =''+Math.sin(opStack[1]);}
                else if(x=='aS'){opStack[1]=''+Math.asin(opStack[1]);}
                else if(x=='Co'){opStack[1]=''+Math.cos(opStack[1]);}
                else if(x=='aC'){opStack[1]=''+Math.acos(opStack[1]);}
                else if(x=='Ta'){opStack[1]=''+Math.tan(opStack[1]);}
                else if(x=='aT'){opStack[1]=''+Math.atan(opStack[1]);}
                else if(x=='≡'){opStack[1]=''+Math.pow(opStack[1],.5);}
                else if(x=='^2'){opStack[1]=''+Math.pow(opStack[1],2);}
                else if(x=='^3'){
                    opStack[1] =''+Math.pow(opStack[1],3);}
                else if(x=='^4'){
                    opStack[1] =''+Math.pow(opStack[1],4);}
                else if(x=='AB'){
                    opStack[1] =''+Math.abs(opStack[1]);}
                else if(x=='~'){}
                document.PAD.CAL.value='';
                opStack[0] = -1
                display()
                document.PAD.SUM.focus();
                document.PAD.SUM.select();
            }
            function display(){
                var sum = parseFloat(opStack[1]);
                document.PAD.SUM.value=''+Math.round(sum*Math.pow(10,14))/Math.pow(10,14);
            }
            function fra(){
                var I;
                var j = 1;
                var k = document.PAD.SUM.value;
                if(k >= 70){opStack[1] = 0;document.PAD.SUM.value ="---Error---";return;}
                for(i = 1;i<=k;i++){j = j * I;}
                opStack[1] = document.PAD.SUM.value = j;
                document.PAD.SUM.focus();
                document.PAD.SUM.select();
            }
            function entry(x){
                if(opStack[0] == -1){opStack[0] = 1;opStack[1] ='';}
                if(opStack[0] == 0){opStack[0] = 1;opStack[1] ='';}
                if(opStack[0] == 2){opStack[0] = 3;opStack[3] ='';}
                var result = result = opStack[opStack[0]];
                if(result =='0'){result = '';}
                if(x>='1'&&x<='9'){result = ''+ result + x;}
                else if (x =='p'){result = ''+Math.PI;}
                else if (x =='O'){if(result ! ='')result = '' + result +'0';}
                else if (x =='B'){if(result ! ='')result = result.substring(0,result.length-1);}
                else if (x =='.'){
                    if(result ! =''){if(result.indexOf(".") == -1)result +=".";}
                    else{result ='0.';}
                }
                if(result =='')result ='O';
                opStack[opStack[0]] = result;
                document.PAD.SUM.value =result;
            }
            function calc2(x) {
                var opFlag = opStack[0];
                if(opFlag ! = 2){
                    if(opFlag == 3){
                        opStack[1]=''+eval(opStack[1]+opStack[2]+opStack[3]);
                        display();  }
                    opStack[0] = 2;
                    opStack[2] = x;
                    document.PAD.CAL.value = x;
                    document.PAD,SUM.focuus();
                    document.PAD.SUM.select();
                }
            }
            function neg(){
                if(opStack[0] ! = 2 && opStack[0] ! = 0) {
                    opStack[0] = Math.abs(opStack[0]);
                    var result = opStack[opStack[0]];
                    if(result ! = '0' && result ! =''){
                        if(result.charAt(0) =='-'){result = result.substring(1,result.length);}
                        else{result ='-'+result;}
                        opStack[opStack[0]]= result;
                        document.PAD.SUM.value = result;
                    }
                }
            }
            function TurnOff(){
                var ask = confirm("您确定要关闭计算器么?");
                if(ask == true){window.close();}
                else{return;}
            }
        </script>
    </body>
</html>

    <body>
        
    </body>
</html>


就是这段代码,照书上打出来还是不行

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-09-27 21:18
    关注

    感叹号有问题。。报错了

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月7日
  • 已采纳回答 9月29日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?