【Web开发技术】Javascript编写的简易计算器

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205


用JS编写计算器

Javascript相当只简洁方便,颇有MATLAB之风

这是曾经web课上的作业,用js写个简单的计算器

这里关键是定义计算器的函数,首先看js定义函数的语法:

function func1(…){…};
var func2=function(…){…};
var func3=function func4(…){…};
var func5=new Function();

Js中每个变量包括函数都需要作为一个对象来运营维护。

直接贴上计算器的代码:

<script language="javascript" >


//计算中要用到的变量
var formulaToShow="";  //要显示的计算式
var  formulaToCalcu="";//要计算的计算式
var result=" ";  //计算结果
var saved="0";   //存储的数


//生成计算式的函数
function TypeFormula(com)
{
  //如果是已经求过值,则清屏并重新开始计算
  if((result!=" "||result=="0") && com!="save"){
    formulaToShow="";
    result=" ";
  }
  
  //得到按钮信息
  switch(com)
  {
    case "clear"://清空
       formulaToShow="";
       result=" ";
       break;
     case "back"://退格(这个写的有些冗余)
       {var f=formulaToShow;
       if(f.substring(f.length-5,f.length)=="asin("||f.substring(f.length-5,f.length)=="acos("||f.substring(f.length-5,f.length)=="atan("||f.substring(f.length-5,f.length)=="sqrt(")
         formulaToShow=formulaToShow.substring(0,formulaToShow.length-5);
       else if(f.substring(f.length-4,f.length)=="sin("||f.substring(f.length-4,f.length)=="cos("||f.substring(f.length-4,f.length)=="tan("||f.substring(f.length-4,f.length)=="exp(")
         formulaToShow=formulaToShow.substring(0,formulaToShow.length-4);
       else if(f.substring(f.length-3,f.length)=="ln(")
         formulaToShow=formulaToShow.substring(0,formulaToShow.length-3);
       else 
         formulaToShow=formulaToShow.substring(0,formulaToShow.length-1);
       }
       break;     
     
     case "sign":
       {if (formulaToShow=="")formulaToShow="-";
       else if(formulaToShow[0]=="-")formulaToShow=formulaToShow.substring(1,formulaToShow.length);
       else formulaToShow="-"+formulaToShow;}
       break;
       case "save":
         saved=formulaToShow;
      break;
      case "getsave":
         formulaToShow=formulaToShow+saved;
      break;
      case "result"://计算结果
       {if(formulaToShow=="") result=" ";
       else {
         formulaToCalcu=formulaToShow.toString();
         formulaToCalcu=formulaToCalcu.replace(/sin/g, "Math.sin");
         formulaToCalcu=formulaToCalcu.replace(/cos/g, "Math.cos");
         formulaToCalcu=formulaToCalcu.replace(/tan/g, "Math.tan");
         formulaToCalcu=formulaToCalcu.replace(/asin/g, "Math.asin");
         formulaToCalcu=formulaToCalcu.replace(/aMath.sin/g, "Math.asin");
         formulaToCalcu=formulaToCalcu.replace(/acos/g, "Math.acos");
         formulaToCalcu=formulaToCalcu.replace(/aMath.cos/g, "Math.acos");
         formulaToCalcu=formulaToCalcu.replace(/atan/g, "Math.atan");
         formulaToCalcu=formulaToCalcu.replace(/aMath.tan/g, "Math.atan");
         formulaToCalcu=formulaToCalcu.replace(/exp/g, "Math.exp");
         formulaToCalcu=formulaToCalcu.replace(/ln/g, "Math.log");
         formulaToCalcu=formulaToCalcu.replace(/sqrt/g, "Math.sqrt");

       try {result=eval(formulaToCalcu);}
       catch (exception) {
                 window.alert(exception); }
         }
       }
       break;
       default:
       formulaToShow+=com; 
       break;
  }

   txtShow.innerHTML=formulaToShow+"<br/>"+result+"<br/>";  
}

</script>

我们可以使用很多内置的函数,如sin() cos()等

下面是计算器截图:


转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7081348

源码下载:http://download.csdn.net/detail/xiaowei_cqu/3935914




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值