标题:javascript代码模拟科学计算器,运行后计算器的界面没出来,为什么?大家帮忙 ...
只看楼主
mks0101
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-4-13
结帖率:80%
已结贴  问题点数:20 回复次数:6 
javascript代码模拟科学计算器,运行后计算器的界面没出来,为什么?大家帮忙看看。
<html>
<head>
<mete http-equiv="content-type" content="text/html;charset=GB2312" />
<title>6-2 科学计算器</title>
<!-- 样式表  -->
<style>
    *{font-size:12px;} /*规定了所有的字体样式*/
    body { background-color:buttonface;border-style:none;} /*窗口主体样式*/
    .button { width:50px;height:30px;} /*按钮大小*/
    #txt_display {width:100%; cursor:default; text-align:right;} /*显示结果的文本框样式*/
</style>
<!--脚本部分 -->
<script>
//将所有按钮的内容存放在数组中
var calc_buttons = [0,1,2,3,4,5,6,7,8,9,".","=","+","_","*","/","AC","sin","sin","cos","tan","asin","acos","atan","ln"];
//用于计算的全局变量
var previous_value=0, op="", start_new_input=true;
//计算的核心函数
function calc(strCMD){
    //获取页面元素:显示结果的文本框
    var objTxt = $("txt_display");
    //根据单曲单机的按钮内容决定所需要的操作
    switch(strCMD){
        //如果是三角函数,调用Math对象对应的方法操作
        case "sin": objTxt.value = Math.sin(objTxt.value);break;
        case "cos": objTxt.value = Math.cos(objTxt.value);break;
        case "tan": objTxt.value = Math.tan(objTxt.value);break;
        case "asin": objTxt.value = Math.asin(objTxt.value);break;
        case "acos": objTxt.value = Math.acos(objTxt.value);break;
        case "atan": objTxt.value = Math.atan(objTxt.value);break;
        case "ln": objTxt.value = Math.log(objTxt.value);break;
        //如果是四则运算符,则执行计算
        case "+":
        case "-":
        case "*":
        case "/":
        start_new_input = true;
        if(op!=""&&objTxt.value!=""){
            objTxt.value = eval(previous_value+op+objTxt.value);
            op=strCMD;
        }else{
            op=strCMD;
        }
        break;
       case: "=":
       start_new_input = true;
       if(op!=""&&objTxt!="")objTxt.value = eval(previous_value+op+objTxt.value);
       op= "";
       previous_value=0;
       break;
       //重置所有变量,回复初始状态
       case: "AC":
       start_new_input = true;
       objTxt.value ="0";
       op= "";
       previous_value=0;
       break;
       //如果是小数点
       case: ".":
       //调用字符串"indexOf"方法查找,如果当前输入中已经有了小数点则跳出操作
       //注意到本段case块后没有break语句,如果当前输入中没有了小数点,则会执行default块
       if(objTxt.value.indexOf(".")!=-1)break;
       //如果是0-9或小数点
       default:
       //如果需要清空原有输入,则将原有输入保存在变量"prebious_value"中
       //并且将"需要清空原有输入"的状态设为"否"("false")
       if(start_new_input){
           start_new_input=false;
           previous_value=objTxt.value;
           objTxt.value="0";
      }
      //如果当前输入不是"0"
      if(objTxt.value!="0"){
           objTxt.value += strCMD;
      }else if(strCMD!="0"){
           objTxt.value = strCMD;
      }
    }
}

function write_table(){
    document.write("<table>");
    document.write("<tr>");
    for(var i=0; i<calc_buttons.length; i++){
        document.write("<td><input value=\""+calc_buttons[i]+"\" type=\"button\"
        class=\"button\" onclick=\"calc(this.value);\"></td>);
        if((i+1)%5==0)document.write("</tr><tr>");
    }
    document.write("</tr>");
    document.write("</table>");
}
function $(str){return(document.getElementById(str));}
</script>
</head>
<body style="overflow:auto;">
<input id="txt_display" value="0" readonly >
<script>
write_table();
</script>
</body>
</html>
搜索更多相关主题的帖子: javascript 计算器 content 文本框 style 
2011-04-14 09:00
mks0101
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-4-13
得分:0 
还有就是如何用VC2005来调试查错JS代码?拜托了
2011-04-14 09:10
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:20 
看来上一个问题我是白给你留言了
古人说授之以鱼不如授之以渔
告诉了你调试的方法 你只对直接的答案感兴趣
却又在重复的问调试的方法
2011-04-14 12:54
mks0101
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-4-13
得分:0 
3楼,只是我下载了你说的“渔”,可是我还是不懂使用。。。愚钝呵。
你可以简易地给我说说教程吗?
最后一次好了。拜托了。
(关键是自学,也不知道用什么工具好啊。)
2011-04-14 14:43
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
得分:0 
安装firefox,这个都会
一、再点附加组件


二、再输入firebug,搜索组件  搜出来后安装


目前比较新的版本应该是 firebug 1.7.0

图文并茂  会了?
调试js的上佳插件。
其实不用我啰嗦,百度谷歌“firebug安装 用法”之类 文章铺天盖地

自学 首先要学会使用搜索引擎

确定不是粗心造成的bug再发上来问,不然发帖发的你手麻

最后祝你快速成长
2011-04-14 16:12
mks0101
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-4-13
得分:0 


5555555,我自己琢磨出来了。FIREBUG我知道如何使用了,谢谢了。
下面是我纠错后的代码:

<html>
<head>
<mete http-equiv="content-type" content="text/html;charset=GB2312" />
<title>6-2 科学计算器</title>
<!-- 样式表  -->
<style>
    *{font-size:12px;} /*规定了所有的字体样式*/
    body { background-color:buttonface;border-style:none;} /*窗口主体样式*/
    .button { width:50px;height:30px;} /*按钮大小*/
    #txt_display {width:100%; cursor:default; text-align:right;} /*显示结果的文本框样式*/
</style>
<!--脚本部分 -->
<script>
//将所有按钮的内容存放在数组中
var calc_buttons = [0,1,2,3,4,5,6,7,8,9,".","=","+","_","*","/","AC","sin","sin","cos","tan","asin","acos","atan","ln"];
//用于计算的全局变量
var previous_value=0, op="", start_new_input=true;
//计算的核心函数
function calc(strCMD){
    //获取页面元素:显示结果的文本框
    var objTxt = $("txt_display");
    //根据当前单击的按钮内容决定所需要的操作
    switch(strCMD){
        //如果是三角函数,调用Math对象对应的方法操作
        case "sin": objTxt.value = Math.sin(objTxt.value);break;
        case "cos": objTxt.value = Math.cos(objTxt.value);break;
        case "tan": objTxt.value = Math.tan(objTxt.value);break;
        case "asin": objTxt.value = Math.asin(objTxt.value);break;
        case "acos": objTxt.value = Math.acos(objTxt.value);break;
        case "atan": objTxt.value = Math.atan(objTxt.value);break;
        case "ln": objTxt.value = Math.log(objTxt.value);break;
        //如果是四则运算符,则执行计算
        case "+":
        case "-":
        case "*":
        case "/":
        start_new_input = true;
        if(op!=""&&objTxt.value!=""){
            objTxt.value = eval(previous_value+op+objTxt.value);
            op=strCMD;
        }else{
            op=strCMD;
        }
        break;
       case "=":
       start_new_input = true;
       if(op!=""&&objTxt!="")objTxt.value = eval(previous_value+op+objTxt.value);
       op= "";
       previous_value=0;
       break;
       //重置所有变量,回复初始状态
       case "AC":
       start_new_input = true;
       objTxt.value ="0";
       op= "";
       previous_value=0;
       break;
       //如果是小数点
       case ".":
       //调用字符串"indexOf"方法查找,如果当前输入中已经有了小数点则跳出操作
       //注意到本段case块后没有break语句,如果当前输入中没有了小数点,则会执行default块
       if(objTxt.value.indexOf(".")!=-1)break;
       //如果是0-9或小数点
       default:
       //如果需要清空原有输入,则将原有输入保存在变量"prebious_value"中
       //并且将"需要清空原有输入"的状态设为"否"("false")
       if(start_new_input){
           start_new_input=false;
           previous_value=objTxt.value;
           objTxt.value="0";
      }
      //如果当前输入不是"0"
      if(objTxt.value!="0"){
           objTxt.value += strCMD;
      }else if(strCMD!="0"){
           objTxt.value = strCMD;
      }
    }
}

function write_table(){
    document.write("<table>");
    document.write("<tr>");
    for(var i=0; i<calc_buttons.length; i++){
        document.write("<td><input value=\""+calc_buttons[i]+"\" type=\"button\"class=\"button\" onclick=\"calc(this.value);\"></td>");
        if((i+1)%5==0)document.write("</tr><tr>");
    }
    document.write("</tr>");
    document.write("</table>");
}
function $(str){return(document.getElementById(str));}
</script>
</head>
<body style="overflow:auto;">
<input id="txt_display" value="0" readonly >
<script>
write_table();
</script>
</body>
</html>
2011-04-14 19:57
徐大伟
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-4-19
得分:0 
5楼朋友的回答 使我又增长了见识  顶5楼朋友的说法
2011-04-19 14:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336601-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029717 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved