JavaScript实现简单计算器

article/2025/10/24 0:56:51

一、两个输入框输入数值计算

步骤

1、编写html代码,实现计算器页面视图效果

2、编写js,实现点击输入数字和符号输出结果

1、编写html

1.1定义两个输入框和一个隐藏框。

1.2定义加减乘除四个按钮,并在里面设置一个单击事件onclick,单击后调用clac()函数,并将运算符号传递给函数。

1.3定义0-9十个按钮,并在里面设置一个单击事件onclick,单击后调用click1()函数,并将数字传递给函数。

1.4定义一个计算按钮,并在里面设置一个单击事件onclick,单击后调用result()函数,计算出结果。

1.5定义一个清空按钮,并在里面设置一个单击事件onclick,单击后调用click2()函数,将输入框的内容清空。

在<body></body>主体中编写html以下代码:

第一个数:<input type="number" name="num1" id="num1" /><br />
第二个数:<input type="number" name="num2" id="num2" /><br />
<input type="hidden" name="num3" id="num3" />//隐藏框,type="hidden"
<input type="button" value="加" onclick="clac('+')" />
<input type="button" value="减" onclick="clac('-')" />
<input type="button" value="乘" onclick="clac('*')" />
<input type="button" value="除" onclick="clac('/')" />
<br />
<input type="button" value="1" onclick="click1(1)" />
<input type="button" value="2" onclick="click1(2)" />
<input type="button" value="3" onclick="click1(3)" />
<input type="button" value="4" onclick="click1(4)" />
<input type="button" value="5" onclick="click1(5)" />
<br />
<input type="button" value="6" onclick="click1(6)" />
<input type="button" value="7" onclick="click1(7)" />
<input type="button" value="8" onclick="click1(8)" />
<input type="button" value="9" onclick="click1(9)" />
<input type="button" value="0" onclick="click1(0)" /><br />
<input type="button" value="计算" onclick="result()" />
<input type="button" value="清空" onclick="click2()" />

2、编写js

2.1定义一个flag标志,并赋值为true,当点击计算符号之后,改变flag的值为false。

2.2创建click1函数,判断flag的值,如果是true就定位到第一个输入框,如果是false就定位到第二个输入框,将点击传过来的值与输入框里面的字符串拼接到一起。

document.querySelector(),进行html定位,如果是用class属性来定位,定位时class属性值前面要加点号(.),如果是用id属性来定位,定位时id属性值前面要加#。

可以使用.value取出这个属性的value值。

function click1(num){if(flag){var num1=document.querySelector("#num1");num1.value+=num;}else{var num2=document.querySelector("#num2");num2.value+=num;}			
}

2.3创建clac函数,定位到隐藏框,将点击传过来的符号放入输入框,并将flag值改为false。

function clac(s){var d=document.querySelector("#num3");d.value=s;flag=false;
}

2.4定义result函数,定位到两个输入框,取出其中的值并转成整数,定位到隐藏输入框,取出里面的符号,然后判断是什么符号,进行相应的运算,弹出运算结果。

function result(){var num1=parseInt(document.querySelector("#num1").value);var num2=parseInt(document.querySelector("#num2").value);var d=document.querySelector("#num3").value;switch (d){case '+':alert(num1+num2);break;case '-':alert(num1-num2);break;case '*':alert(num1*num2);break;case '/':alert(num1/num2);break;default:alert("输入有误")break;}
}

2.5创建click2函数,定位三个输入框,并复制为空。

function click2(){document.querySelector("#num1").value="";document.querySelector("#num2").value="";document.querySelector("#num3").value="";
}

在<script></script>标签中编写以下JavaScript代码 :

<script type="text/javascript">var flag=true;function clac(s){var d=document.querySelector("#num3");d.value=s;flag=false;}function click1(num){if(flag){var num1=document.querySelector("#num1");num1.value+=num;}else{var num2=document.querySelector("#num2");num2.value+=num;}}function result(){var num1=parseInt(document.querySelector("#num1").value);var num2=parseInt(document.querySelector("#num2").value);var d=document.querySelector("#num3").value;switch (d){case '+':alert(num1+num2);break;case '-':alert(num1-num2);break;case '*':alert(num1*num2);break;case '/':alert(num1/num2);break;default:alert("输入有误")break;}}function click2(){document.querySelector("#num1").value="";document.querySelector("#num2").value="";document.querySelector("#num3").value="";}
</script>

效果图如下 

 二、一个输入框输入数值和符号并计算

页面html代码如下:

<input type="text" id="num1" />
<br/>
<input type="button" value="+" onclick="click2('+')"/>
&nbsp;
<input type="button" value="-" onclick="click2('-')"/>
&nbsp;
<input type="button" value="*" onclick="click2('*')"/>
&nbsp;
<input type="button" value="/" onclick="click2('/')"/>
&nbsp;
<br/>
<input type="button" value="1" onclick="click1(1)"/>
&nbsp;
<input type="button" value="2" onclick="click1(2)"/>
&nbsp;
<input type="button" value="3" onclick="click1(3)"/>
&nbsp;
<input type="button" value="4" onclick="click1(4)"/>
&nbsp;
<input type="button" value="5" onclick="click1(5)"/>
&nbsp;
<br/>
<input type="button" value="6" onclick="click1(6)"/>
&nbsp;
<input type="button" value="7" onclick="click1(7)"/>
&nbsp;
<input type="button" value="8" onclick="click1(8)"/>
&nbsp;
<input type="button" value="9" onclick="click1(9)"/>
&nbsp;
<input type="button" value="0" onclick="click1(0)"/>
&nbsp;
<br/>
<br/>
<input type="button" value="计算" onclick="eq()"/>
&nbsp;
<input type="button" value="清空" onclick="reset()"/>

JavaScript代码如下: 

<script type="text/javascript">var num1;function click1(num){num1=document.querySelector("#num1");num1.value+=num;}function click2(s){num1=document.querySelector("#num1");//定位到输入框var lasts=num1.value.charAt(num1.value.length-1);//取出输入框中字符串的最后一个字符,即运算符var ss=(lasts=='+'||lasts=='-'||lasts=='*'||lasts=='/');if(num1.value!=""&&!ss){num1.value+=s;}}function eq(){var n1="";var n2="";var s1=""num1=document.querySelector("#num1");num1.value+="=";var j=0;//循环遍历字符串for(i in num1.value){var m=num1.value[j];if(m=="+"||m=="-"||m=="*"||m=="/"){//判断是否是运算符,是的话执行以下语句n1=num1.value.substring(0,j);//截取运算符前面的字符串s1=num1.value[j];//获取运算符n2=num1.value.substring(j+1,num1.value.length-1);//获取运算符后面的字符串break;}j++;}//将截取的字符串转成整数n1=parseInt(n1);n2=parseInt(n2);switch (s1){case "+":num1.value+=(n1+n2);break;case "-":num1.value+=(n1-n2);break;case "*":num1.value+=(n1*n2);break;case "/":num1.value+=(n1/n2);break;default:break;}}function reset(){num1=document.querySelector("#num1");num1.value="";}</script>

效果图如下 

三、 两个数值、符号、结果分别一个输入框

html代码如下:

第一个值:<input type="number" class="clear" id="num1" /><br />
<input type="button" value="1" onclick="click1(1)" />
<input type="button" value="2" onclick="click1(2)" />
<input type="button" value="3" onclick="click1(3)" />
<input type="button" value="4" onclick="click1(4)" />
<input type="button" value="5" onclick="click1(5)" />
<input type="button" value="6" onclick="click1(6)" />
<input type="button" value="7" onclick="click1(7)" />
<input type="button" value="8" onclick="click1(8)" />
<input type="button" value="9" onclick="click1(9)" />
<input type="button" value="0" onclick="click1(0)" />
<input type="button" value="清除" onclick="reset1()" />
<hr /> 运算方法:
<input type="text" id="num3" /><br />
<input type="button" value="加" onclick="calc('+')" />
<input type="button" value="减" onclick="calc('-')" />
<input type="button" value="乘" onclick="calc('*')" />
<input type="button" value="除" onclick="calc('/')" />
<hr /> 第二个值:
<input type="number" class="clear" id="num2" /><br />
<input type="button" value="1" onclick="click2(1)" />
<input type="button" value="2" onclick="click2(2)" />
<input type="button" value="3" onclick="click2(3)" />
<input type="button" value="4" onclick="click2(4)" />
<input type="button" value="5" onclick="click2(5)" />
<input type="button" value="6" onclick="click2(6)" />
<input type="button" value="7" onclick="click2(7)" />
<input type="button" value="8" onclick="click2(8)" />
<input type="button" value="9" onclick="click2(9)" />
<input type="button" value="0" onclick="click2(0)" />
<input type="button" value="清除" onclick="reset2()" />
<hr />
<input type="button" value="计算" class="result" onclick="result()" />
<input type="text" name="res1" id="res1" value="" />

 JavaScript代码如下:

<script type="text/javascript">//第一个输入框输入数字function click1(num) {var num1 = document.querySelector("#num1");num1.value += num;}//第一个输入框输重置function reset1() {var num1 = document.querySelector("#num1");num1.value = "";}//第三个输入框输入数字function click2(num) {var num1 = document.querySelector("#num2");num1.value += num;}//第三个输入框重置function reset2() {var num2 = document.querySelector("#num2");num2.value = "";}//第二个输入框输入运算符function calc(s) {var num3 = document.querySelector("#num3");num3.value = s;}//第四个输入框输出结果function result() {var num1 = parseInt(document.querySelector("#num1").value);var num2 = parseInt(document.querySelector("#num2").value);var s = document.querySelector("#num3").value;var res = document.querySelector("#res1");switch(s) {case '+':res.value = num1 + num2;break;case '-':res.value = num1 - num2;break;case '*':res.value = num1 * num2;break;case '/':res.value = num1 / num2;break;default:break;}}
</script>

效果图如下:


http://chatgpt.dhexx.cn/article/lj5xJNxL.shtml

相关文章

Java编写简单计算器

本文用Java的swing来实现一个简单计算器&#xff0c;主要内容为图形用户界面GUI的实现以及运算表达式核心算法的设计编写。 程序运行环境为Windows10 &#xff0c;编译环境为IntelliJ IDEA Community Edition 2022.2.3 一、具体功能&#xff1a; 1、&#xff1a;输入&#x…

项目一:简单计算器的实现

项目概述 1.1项目目标和主要内容 学习图形界 面的设计&#xff0c;利用 MFC 应用程序&#xff08;Java swing 或 QT 框架&#xff0c;或 C#&#xff09;创建基于对话框的应用程序&#xff0c;添加按钮、编辑框等控件&#xff1b; 能通过设计的按钮控件输入并实现简单算术运算&a…

【C语言】实现简易计算器

目录 1.实现逻辑 2.运行过程 3.优化前代码分析 主函数 计算函数 4.优化后代码分析 主函数 计算方法函数 输入操作数的函数 5.完整代码展示 1.实现逻辑 实现一个简易的计算器&#xff0c;可以计算两个整数的加减乘除 2.运行过程 3.优化前代码分析 主函数 int main()…

java工作流引擎,roadflow(一个强大的工作流引擎)

JAVA工作流引擎(J-RoadFlow) J-RoadFlow工作流平台是知名的.NET工作流引擎RoadFlow的JAVA移植版。该工作流平台由从事多年OA和工作流实施及开发的团队研发&#xff0c; 采用最简单的SM架构实现大中小企业中日常复杂业务流程审批。JAVA版不仅仅是.NET版本的移植&#xff0c;从架…

Easy-Flows - Java的简单愚蠢的工作流引擎

The simple, stupid workflow engine for Java 源代码名称&#xff1a;easy-flows源代码网址&#xff1a;http://www.github.com/j-easy/easy-flowseasy-flows 源代码文档easy-flows 源代码下载 Git URL git://www.github.com/j-easy/easy-flows.git Git Clone 代码到本地 g…

Flowable工作流引擎

Flowable工作流引擎 Flowable-基础篇(根据BV1Pb4y1p7Ku整理) 一、简介 Flowable是BPMN的一个基于java的软件实现&#xff0c;不过Flowable不仅仅包括BPMN&#xff0c;还有DMN决策表和CMMN Case管理引擎&#xff0c;并且有自己的用户管理、微服务API等一系列功能&#xff0c;…

Java工作流引擎

Java工作流引擎有很多&#xff0c;有免费和商业的 主流免费&#xff1a;Activiti和Flowable Activiti和Flowable都是来自于一个叫JBPM的开源工作流。在早期Jboss发行JBPM4的时候&#xff0c;因为合作伙伴关系闹的不开心。于是其中一个核心人员离职。加入了Alfresco(Activiti所…

工作流引擎技术选型

一、主流开源框架介绍 1、工作流相关文档 1.Camunda 官方文档&#xff1a;https://camunda.com/ 中文文档&#xff1a;介绍 | docs.camunda.org 2.Activiti 官方文档&#xff1a;https://www.activiti.org/ 中文文档&#xff1a;[activiti6用户手册 3.Snaker 官方文档&…

Java开源工作流引擎 介绍

Java开源工作流引擎 http://www.open-open.com/08.htm 身为拿来主义者&#xff0c; 很好的吸取经验才是我们的目的&#xff01; Willow 由Huihoo Power开发详细可到其中文主页查看。 更多Willow信息 OpenWFE OpenWFE是一个开放源码的Java工作流引擎。它是一个完整的业务处理…

最近进行的一次技术选型(工作流引擎)及相关知识介绍

前言 最近有个新项目&#xff0c;需要实现类似工作流引擎的效果&#xff0c;如果不知道是啥&#xff0c;看完本文就懂了。 公司内其实也有些自研的&#xff0c;可能就是不像开源的这些那样&#xff0c;还支持这个那个规范&#xff0c;都是基于需求定制开发的&#xff0c;扩展…

java工作流引擎(j-roadflow)快速入门教程

使用j-roadflow java工作流引擎创建一个流程分为两个步骤&#xff0c;创建表单和创建流程。 一、创建表单。 在流程管理--表单管理下点新建表单即开始创建一个新的表单&#xff1a; 点击之后打开表单设计器并弹出表单属性设置&#xff1a; 表单名称&#xff1a;为您新建的表单…

为什么使用工作流引擎,什么是工作流引擎,工作流引擎选型以及如何使用

文章目录 为什么使用工作流引擎&#xff1f;不使用工作流存在以下问题工作流优缺点 什么是工作流引擎尝试自己构建工作流引擎有哪些选型方案呢基于bpmn标准进行流程定义国产自定义 如何使用SnakerFlow工作流以请假流程来看下数据库中数据流转情况初始状态员工发起请假申请 常见…

工作流引擎

1 绪论 【社会上的需求.】 1.1 课题的研究背景 工作流的概念起源于生产组织和办公自动化领域。它是针对日常工作中具有固定程序的活动而提出得一个概念。它的主要特点是使处理过程自动化&#xff0c;通过将工作分解成定义良好的任务、角色&#xff0c;按照一定的规则和过程来执…

LeaRun.Java工作流引擎 快速开发业务流程

工作流引擎是用来开发工作流转的框架。作为应用系统的一部分&#xff0c;能根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案&#xff0c;包含组织结构、流程、节点、转向规则等。 而低代码开发框架&#xff0c;是能够解决一个可以直接在后台配置就可以开…

IBPS java工作流引擎介绍

java工作流引擎是什么&#xff1f;看了这篇文章&#xff0c;相信80%的人都会明白的。IBPS低代码开发平台是近些年流辰信息的主打产品&#xff0c;实践证明&#xff0c;该产品推向市场后&#xff0c;得到了企业信息化部门、各高校、电力等企业的喜爱和支持。本文为大家着重介绍I…

Java开源工作流引擎有什么突出特点?

在高效办公需求日渐增长的当天&#xff0c;如何利用优质软件助力企业提升办公效率&#xff0c;是很多企业一直在寻觅的途径。Java开源工作流引擎可以借助其优势特点助力企业实现标准化发展&#xff0c;高效提高工作效率。那么&#xff0c;Java开源工作流引擎到底有什么用的突出…

后端web开发框架——Spring Boot

为什么使用Spring Boot 简化配置&#xff0c;无需编写太多的 xml 配置文件&#xff0c;效率很高&#xff1b;Spring 可以整合很多各式各样的框架&#xff0c;并能很好的集成&#xff1b;基于 Spring 构建&#xff0c;使开发者快速入门&#xff0c;门槛很低&#xff1b;Spring …

Web前端开发工具和框架

摘要&#xff1a;技术的快速发展让很多人学习起来无所适从&#xff0c;幸运的是&#xff0c;很多优秀的 Web 开发人员和设计人员在努力寻找各种有特色的解决方案。 因此&#xff0c;我们有了很多优秀的小工具和库&#xff0c;每一个都是用来解决特定的问题或维护一组特定的项目…

后端Web开发框架(Java)

本文节选自霍格沃兹测试学院内部教材 Spring Boot 是由 Pivotal 团队提供的全新框架&#xff0c;其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。讲的通俗一点就是 Spring …

Python中如何选择Web开发框架?

Python开发中Web框架可谓是百花齐放&#xff0c;各式各样的web框架层出不穷&#xff0c;那么对于需要进行Python开发的我们来说&#xff0c;如何选择web框架也就变成了一门学问了。本篇文章主要是介绍目前一些比较有特点受欢迎的Web框架&#xff0c;我们可以根据各个Web框架的特…