用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 相关文章推荐
DOM相关内容速查手册
Feb 07 Javascript
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
Apr 12 Javascript
jquery1.9 下检测浏览器类型和版本的方法
Dec 26 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
Dec 14 Javascript
javascript结合fileReader 实现上传图片
Jan 30 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
JS随机排序数组实现方法分析
Oct 11 Javascript
vue实现引入本地json的方法分析
Jul 12 Javascript
vue Cli 环境删除与重装教程 - 版本文档
Sep 11 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
搜索引擎技术核心揭密
2006/10/09 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
Python做文本按行去重的实现方法
2016/10/19 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python callable()函数用法实例分析
2018/03/17 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
python全栈开发语法总结
2020/11/22 Python
python 写一个文件分发小程序
2020/12/05 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
幼儿园五一活动方案
2014/02/07 职场文书
预备党员表决心书
2014/03/11 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
学期个人自我总结
2015/02/13 职场文书
道歉信范文
2015/05/12 职场文书
行政申诉状范文
2015/05/20 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL
使用python绘制横竖条形图
2022/04/21 Python