当前位置: 首页 > news >正文

HTMl编写计算器

html ,css,javaScript完成的计算器程序:

 
 
  1. <html> 
  2. <title> 多动能计算器 </title> 
  3. <!--  
  4. 计算器version 4.0  
  5. 这一版本的计算器:  
  6.    
  7.     将所有的操作集合在同一个方法中  
  8.     使用的方法为无参数的      
  9.     样式表的使用  
  10. --> 
  11. <head> 
  12.  <title>  计算器  </title>    
  13. <style> 
  14.  .numberButton{width:40px;height:40px;color:#0000FF;font-size:36px}  
  15.  .operatorButton{width:40px;height:40px;color:#FF0000;font-size:36px}  
  16.  .textButton{width:170;text-align:right;}  
  17.  <!--使用样式表:位数字按钮,操作符按钮,文本框分别设置一个样式--> 
  18. </style> 
  19. <script language="javascript"> 
  20.  //操作数和操作符是整个程序运行的全局变量所以在方法实现的前面定义  
  21.  var operatorNumber1;  
  22.  var operatorNumber2;  
  23.  var operator;  
  24.  var result;  
  25.  //这里实现点击数字和Dot符号按扭等获取事件源  
  26.  
  27.  function   Click()  
  28.  {  
  29.   var control=event.srcElement;  
  30.   var x=control.value;  
  31.   //上面是获取事件源,得到事件按钮的值  
  32.   var s=textResult.value;  
  33.   //上面是获取当前的文本框的内容  
  34.   var index=s.indexOf('.');  
  35.   //在字符串中查看是否已经存在 【.】使用内置函数,如果不存在则返回-1;  
  36.   if(index!=-1 && x==".")//使得小数点之后能够继续输入  
  37.   {  
  38.    return ;  
  39.   }  
  40.   else if((x=='+')||(x=='-')||(x=='*')||(x=='/'))  
  41.   {  
  42.    //实现操作符的功能,当传入函数的字符为操作符的时候执行下面的操作  
  43.    /*  
  44.    记录当前的文本框内容为操作数operatorNumber1;  
  45.    记录点击的操作符按钮operator  
  46.    清理掉当前的文本框内容  
  47.    */  
  48.    operatorNumber1=textResult.value;  
  49.    operator=x;  
  50.    textResult.value="";  
  51.   }  
  52.   else if(x=='=')  
  53.   {   
  54.    //进行运算操作  operatorNumber2不能为零  
  55.    //拿到当前文本框中的内容作为operatorNumber2  
  56.    operatorNumber2=textResult.value;  
  57.    //得到操作数2后清理掉文本框中的内容;等待显示结果  
  58.    textResult.value="";  
  59.    var firstNumber=parseFloat(operatorNumber1);  
  60.    var secondNumber=parseFloat(operatorNumber2);  
  61.    if(operator=="+")  
  62.    {  
  63.     result=firstNumber+secondNumber;  
  64.    }  
  65.    else if(operator=="-")  
  66.    {  
  67.     result=firstNumber-secondNumber;  
  68.    }  
  69.    else if(operator=="*")  
  70.    {  
  71.     result=firstNumber*secondNumber;  
  72.    }  
  73.    else if(operator=="/")  
  74.    {  
  75.     if(secondNumber==0)  
  76.     {  
  77.      alert("除数不能为零!重新开始");  
  78.      return;  
  79.     }  
  80.     result=firstNumber/secondNumber;  
  81.    }  
  82.    textResult.value=result;  
  83.   }  
  84.   else  
  85.   {  
  86.    //将点击的按钮的值输入到文本框中  
  87.    //注释:在这里遇到一个问题,如果不用else就表示所有的判断完成之后,将必然执行后面的语句  
  88.    //这样导致的问题是文本框将是一个表达式显然不符合要求,所以数字的输入放在  
  89.    //else块中(相当于switch中的default)操作  
  90.    ss=s+x;  
  91.    textResult.value=s;    
  92.   }  
  93.  }  
  94. </script> 
  95. </head> 
  96. <body> 
  97. <p style="font-size:xx-large;text-align:center; color:#FF0000; font-family:Arial, Helvetica, sans-serif; font-style:oblique"> 计算器 旗舰版  </p> 
  98.    <div style="text-align:center"> 
  99.     <input type="text" id="textResult" class="textButton" value=""/> 
  100.     <table> 
  101.      <tr> 
  102.          <td> 
  103.         <input type="button" value="7" class="numberButton" onClick="Click();"/> 
  104.         <input type="button" value="8" class="numberButton" onClick="Click();"/> 
  105.         <input type="button" value="9" class="numberButton" onClick="Click();"/> 
  106.         <input type="button" value="/" class="operatorButton" onClick="Click();"/> 
  107.          </td> 
  108.         </tr> 
  109.         <tr> 
  110.          <td> 
  111.         <input type="button" value="4" class="numberButton" onClick="Click();"/> 
  112.         <input type="button" value="5" class="numberButton" onClick="Click();"/> 
  113.         <input type="button" value="6" class="numberButton" onClick="Click();"/> 
  114.         <input type="button" value="*" class="operatorButton" onClick="Click();"/> 
  115.             </td> 
  116.         </tr> 
  117.         <tr> 
  118.          <td> 
  119.         <input type="button" value="1" class="numberButton" onClick="Click();"/> 
  120.         <input type="button" value="2" class="numberButton" onClick="Click();"/> 
  121.         <input type="button" value="3" class="numberButton" onClick="Click();"/> 
  122.         <input type="button" value="-" class="operatorButton" onClick="Click();"/> 
  123.             </td> 
  124.         </tr> 
  125.         <tr> 
  126.          <td> 
  127.         <input type="button" value="0" class="numberButton" onClick="Click();"/> 
  128.         <input type="button" value="." class="numberButton" onClick="Click();"/> 
  129.         <input type="button" value="+" class="operatorButton" onClick="Click();"/> 
  130.         <input type="button" value="=" class="operatorButton" onClick="Click();"/> 
  131.             </td> 
  132.         </tr> 
  133.     </table> 
  134.     </div>   
  135. </body> 
  136. </html> 
  137.    

 


本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/673379,如需转载请自行联系原作者

相关文章:

  • 使用PEAP实现802.1X
  • 超实用Mac软件分享(二)
  • JDBC获取新增记录的自增主键
  • HTTP协议中状态码的应用
  • Android笔记:触摸事件的分析与总结----MotionEvent对象
  • Ubuntu的系统安装步骤
  • VC 文件复制函数
  • 再议“创建类似于输入法窗口的非激活窗口”
  • 20.23 20.4 20.5告警系统邮件引擎(上中下);20.26 运行告警系统
  • 20.20 告警系统主脚本;20.21 告警系统配置文件;20.22 告警系统监控项目
  • 2007年1月4日测试在额外域控制器上夺取FSMO笔记
  • centos安装raid卡驱动总结
  • 逻辑DG ORA-16240: Waiting for logfile
  • Zabbix Server is not running: the information displayed may not be current
  • 企业常用网管软件介绍及配置说明
  • AWS实战 - 利用IAM对S3做访问控制
  • CSS3 变换
  • css属性的继承、初识值、计算值、当前值、应用值
  • Docker入门(二) - Dockerfile
  • es的写入过程
  • JavaScript 基本功--面试宝典
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Sublime Text 2/3 绑定Eclipse快捷键
  • use Google search engine
  • VuePress 静态网站生成
  • 分享一份非常强势的Android面试题
  • 排序(1):冒泡排序
  • 山寨一个 Promise
  • 深度学习入门:10门免费线上课程推荐
  • 一个JAVA程序员成长之路分享
  • 主流的CSS水平和垂直居中技术大全
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #宝哥教你#查看jquery绑定的事件函数
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (C++17) optional的使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (zt)最盛行的警世狂言(爆笑)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二)windows配置JDK环境
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)IOS中获取各种文件的目录路径的方法
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .net反混淆脱壳工具de4dot的使用
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • @Transactional 详解
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [BZOJ2208][Jsoi2010]连通数
  • [BZOJ2850]巧克力王国
  • [C++]:for循环for(int num : nums)