Javascript编写的简易计算器

用JS编写计算器

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

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

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

[javascript]  view plain copy
  1. function func1(…){…};  
  2. var func2=function(…){…};  
  3. var func3=function func4(…){…};  
  4. var func5=new Function();  

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

直接贴上计算器的代码:

[javascript]  view plain copy
  1. <script language="javascript" >  
  2.   
  3.   
  4. //计算中要用到的变量  
  5. var formulaToShow="";  //要显示的计算式  
  6. var  formulaToCalcu="";//要计算的计算式  
  7. var result=" ";  //计算结果  
  8. var saved="0";   //存储的数  
  9.   
  10.   
  11. //生成计算式的函数  
  12. function TypeFormula(com)  
  13. {  
  14.   //如果是已经求过值,则清屏并重新开始计算  
  15.   if((result!=" "||result=="0") && com!="save"){  
  16.     formulaToShow="";  
  17.     result=" ";  
  18.   }  
  19.     
  20.   //得到按钮信息  
  21.   switch(com)  
  22.   {  
  23.     case "clear"://清空  
  24.        formulaToShow="";  
  25.        result=" ";  
  26.        break;  
  27.      case "back"://退格(这个写的有些冗余)  
  28.        {var f=formulaToShow;  
  29.        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(")  
  30.          formulaToShow=formulaToShow.substring(0,formulaToShow.length-5);  
  31.        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(")  
  32.          formulaToShow=formulaToShow.substring(0,formulaToShow.length-4);  
  33.        else if(f.substring(f.length-3,f.length)=="ln(")  
  34.          formulaToShow=formulaToShow.substring(0,formulaToShow.length-3);  
  35.        else   
  36.          formulaToShow=formulaToShow.substring(0,formulaToShow.length-1);  
  37.        }  
  38.        break;       
  39.        
  40.      case "sign":  
  41.        {if (formulaToShow=="")formulaToShow="-";  
  42.        else if(formulaToShow[0]=="-")formulaToShow=formulaToShow.substring(1,formulaToShow.length);  
  43.        else formulaToShow="-"+formulaToShow;}  
  44.        break;  
  45.        case "save":  
  46.          saved=formulaToShow;  
  47.       break;  
  48.       case "getsave":  
  49.          formulaToShow=formulaToShow+saved;  
  50.       break;  
  51.       case "result"://计算结果  
  52.        {if(formulaToShow=="") result=" ";  
  53.        else {  
  54.          formulaToCalcu=formulaToShow.toString();  
  55.          formulaToCalcu=formulaToCalcu.replace(/sin/g, "Math.sin");  
  56.          formulaToCalcu=formulaToCalcu.replace(/cos/g, "Math.cos");  
  57.          formulaToCalcu=formulaToCalcu.replace(/tan/g, "Math.tan");  
  58.          formulaToCalcu=formulaToCalcu.replace(/asin/g, "Math.asin");  
  59.          formulaToCalcu=formulaToCalcu.replace(/aMath.sin/g, "Math.asin");  
  60.          formulaToCalcu=formulaToCalcu.replace(/acos/g, "Math.acos");  
  61.          formulaToCalcu=formulaToCalcu.replace(/aMath.cos/g, "Math.acos");  
  62.          formulaToCalcu=formulaToCalcu.replace(/atan/g, "Math.atan");  
  63.          formulaToCalcu=formulaToCalcu.replace(/aMath.tan/g, "Math.atan");  
  64.          formulaToCalcu=formulaToCalcu.replace(/exp/g, "Math.exp");  
  65.          formulaToCalcu=formulaToCalcu.replace(/ln/g, "Math.log");  
  66.          formulaToCalcu=formulaToCalcu.replace(/sqrt/g, "Math.sqrt");  
  67.   
  68.        try {result=eval(formulaToCalcu);}  
  69.        catch (exception) {  
  70.                  window.alert(exception); }  
  71.          }  
  72.        }  
  73.        break;  
  74.        default:  
  75.        formulaToShow+=com;   
  76.        break;  
  77.   }  
  78.   
  79.    txtShow.innerHTML=formulaToShow+"<br/>"+result+"<br/>";    
  80. }  
  81.   
  82. </script>  

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

下面是计算器截图:


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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值