用js编写的简单的计算器代码程序


Posted in Javascript onAugust 04, 2015

最近编写的一个简单的计算器代码程序,先给大家展示一下

用js编写的简单的计算器代码程序

分享代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title> 
<style type="text/css">
 #box{width: 295px; margin: 0 auto; text-align: justify; border: 1px solid #ddd; padding: 15px;}
 .d_num{display: inline-block; margin: 10px; width: 33px; height: 30px; border: 1px solid #ddd; text-align: center; line-height: 30px; cursor: pointer;}
 .sum{margin: 0 10px 10px; line-height: 30px; font-size: 20px;}
 #sum{width: 205px; height: 30px; padding: 0 5px; margin-left: 5px; font-size: 20px;}
 #process{width: 255px; height: 30px; padding: 0 5px; margin-left: 5px; font-size: 20px;}
</style>
</head> 
<body> 
 <div id="box">
 <div class="sum">
  <input type="text" name="process" id="process" value="0" />
 </div>
 <div class="sum">
  SUM:<input type="text" name="sum" id="sum" value="0" />
 </div>
 <div>
  <span data-num="1" class="d_num">1</span>
  <span data-num="2" class="d_num">2</span>
  <span data-num="3" class="d_num">3</span>
  <span data-num="<-" class="d_num"><-</span>
  <span data-num="C" class="d_num">C</span>
 </div>
 <div>
  <span data-num="4" class="d_num">4</span>
  <span data-num="5" class="d_num">5</span>
  <span data-num="6" class="d_num">6</span>
  <span data-num="*" class="d_num">*</span>
  <span data-num="/" class="d_num">/</span>
 </div>
 <div>
  <span data-num="7" class="d_num">7</span>
  <span data-num="8" class="d_num">8</span>
  <span data-num="9" class="d_num">9</span>
  <span data-num="+" class="d_num">+</span>
  <span data-num="-" class="d_num">-</span>
 </div>
 <div>
  <span data-num="0" class="d_num">0</span>
  <span data-num="00" class="d_num">00</span>
  <span data-num="." class="d_num">.</span>
  <span data-num="%" class="d_num">%</span>
  <span data-num="=" class="d_num">=</span>
 </div>
 </div>
 <script type="text/javascript">
 var $box = document.getElementById('box');
 var $sum = document.getElementById('sum');
 var $process = document.getElementById('process');
 var sum = 0, process = '', num1 = '', num2 = '', temp = '', statu = false;
 $box.onclick = function(e){
 var event = window.event || e;
 var ele = event.srcElement || event.target;
 var _className = ele.className;
 if(_className == 'd_num'){
  var num = ele.getAttribute('data-num');//点击的按钮对应的值
  var NotNum = isNaN(num);
  if(!NotNum || num == '.'){ //点击了数字
  if(!statu){ //还没点击过符号
   if(num1 == '0'){
   num1 = '';
   }
   num1 += num;
   process = num1;
  }else{ //已经点击过符号
   if(num2 == '0'){
   num2 = '';
   }
   num2 += num;
   process = num1 + temp + num2;
  }
  $process.value = process;
  }
  else{ //点击了符号
  if(num1 == ''){//非法操作
   return false;
  }
  if(num == 'C'){//归零
   num1 = '';
   num2 = '';
   process = '';
   temp = '';
   sum = '';
   $process.value = '0';
   $sum.value = '0';
   statu = false;
   return false;
  }
  if(num == '<-'){//退档
   if(sum != ''){
   return false;
   }
   if(num2 == ''){
;   num1 = num1.substring(0,num1.length-1);
   if(num1 == ''){
    num1 = '0';
   }
   process = num1;
   $process.value = process;
   }else{
   num2 = num2.substring(0,num2.length-1);
   if(num2 == ''){
    num2 = '0';
   }
   process = num1 + temp + num2;
   $process.value = process;
   }
   return false;
  }
  if(num2 != ''){//a&b
   if(num == '='){//元操作到此结束
   $process.value = process;
   }else{
   $process.value = process + num;
   }
   switch(temp){//元操作继续
   case '+' : sum = parseFloat(num1) + parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '-' : sum = parseFloat(num1) - parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '*' : sum = parseFloat(num1) * parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '/' : sum = parseFloat(num1) / parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   case '%' : sum = parseFloat(num1) % parseFloat(num2); $sum.value = sum; $process.value = process; num1 = sum + ''; num2 = ''; break;
   }
  }else{//a&?
   if(num == '='){
   return false;
   }
   $process.value = process + num;
   process = '';
  }
  if(num == '='){
   sum = '';
   statu = false;
   return false;
  }
  temp = num;//记录操作符
  statu = true;//已经触发操作状态
  }
 }
 };
 </script>
</div> 
</body> 
</html>

现在只是个简单的标准计算器,能进行加减乘除连续运算,以及求余运算。如果发生被除数为零的错误,下面会给出提示,就像这样:

用js编写的简单的计算器代码程序

这就是我设计的一个小程序,还有许多改进的地方,比如界面的美化,会再接再厉。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jQuery中add实现同时选择两个id对象
Oct 22 Javascript
jquery链式操作的正确使用方法
Jan 06 Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
详解Vue路由钩子及应用场景(小结)
Nov 07 Javascript
JavaScript设计模式之调停者模式实例详解
Feb 03 Javascript
JS中Map和ForEach的区别
Feb 05 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
Aug 30 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
Sep 27 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
Apr 03 Javascript
javascript记住用户名和登录密码(两种方式)
Aug 04 #Javascript
js实现简易的单数字随机抽奖(0-9)
Mar 19 #Javascript
JavaScript运动减速效果实例分析
Aug 04 #Javascript
JavaScript仿静态分页实现方法
Aug 04 #Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 #Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 #Javascript
JavaScript数组各种常见用法实例分析
Aug 04 #Javascript
You might like
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
类似CSDN图片切换效果脚本
2009/09/17 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
python如何重载模块实例解析
2018/01/25 Python
python中format()函数的简单使用教程
2018/03/14 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
怎样写演讲稿
2014/01/04 职场文书
法律进社区实施方案
2014/03/21 职场文书
教师评语大全
2014/04/28 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
工程质量保证书
2015/05/09 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
Python面向对象之成员相关知识总结
2021/06/24 Python