简易的科学计算器的实现

---Java版

import javax.swing.*;//新的窗口组件包

import java.awt.*;

import java.awt.event.*;

public class rf implements ActionListener

{ JFrame jf=new JFrame();

boolean dotExist, operated, equaled; // 帮助运算的布尔变量

double result; // 目前的结果

char lastOperator; // 表示上一运算符

JTextField jtf; // 显示栏

JButton dot, plus, minus, multi, div, sqrt, equal, change, clear,quyu; // 运算符

JButton[] numbers;

Panel p=new Panel();

public rf() // 构造者

{

jf.setTitle("简易计算器");

// 初始化变量

dotExist = false; // 表示当前的数是否有小数点

operated = false; // 表示任意运算符是否被按下

equaled = false; // 表示等号是否被按下

result = ;

lastOperator = '?';

// 初始化窗口变量

jtf = new JTextField("");

jtf.setEditable(false); //设置文本框的可编辑性

jf.setSize(,);

jf.setVisible(true);

numbers = new JButton[];

for (int i = ; i < ; i++)

numbers[i] = new JButton("" + i); //从0到9,,10个数字按钮

dot = new JButton(".");

plus = new JButton("+");

minus = new JButton("-");

multi = new JButton("*");

div = new JButton("/");

sqrt = new JButton("√");

equal = new JButton("=");

change= new JButton("±");

clear = new JButton("NC"); //复位

quyu=new JButton("%");

p.setLayout(new GridLayout(,)); //绘制一个5行4列的布局管理器

p.add(numbers[]); //把各个按钮添加到布局管理器中

p.add(numbers[]);

p.add(numbers[]);

p.add(plus);

p.add(numbers[]);

p.add(numbers[]);

p.add(numbers[]);

p.add(minus);

p.add(numbers[]);

p.add(numbers[]);

p.add(numbers[]);

p.add(multi);

p.add(dot);

p.add(numbers[]);

p.add(sqrt);

p.add(div);

p.add(quyu);

p.add(change);

p.add(clear);

p.add(equal);

jf.add(jtf,BorderLayout.NORTH); //把显示框添加到北区也就是最上边

jf.add(p,BorderLayout.CENTER); //把各个按钮放到中区

numbers[].addActionListener(this); //鼠标事件监听器

numbers[].addActionListener(this);

numbers[].addActionListener(this);

numbers[].addActionListener(this);

plus.addActionListener(this);

numbers[].addActionListener(this);

numbers[].addActionListener(this);

numbers[].addActionListener(this);

minus.addActionListener(this);

numbers[].addActionListener(this);

numbers[].addActionListener(this);

numbers[].addActionListener(this);

multi.addActionListener(this);

dot.addActionListener(this);

sqrt.addActionListener(this);

div.addActionListener(this);

equal.addActionListener(this);

change.addActionListener(this);

clear.addActionListener(this);

quyu.addActionListener(this);

}

// 对按钮进行反应的方法

public void actionPerformed(ActionEvent e)

{

JButton btn = (JButton)e.getSource();

if (btn == clear)

{

jtf.setText("");

dotExist = false; //小数点、运算符、等号、结果、上一个运算符

operated = false;

equaled = false;

result = ;

lastOperator = '?';

}

else if (btn == equal)

{

operate('=');

equaled = true;

}

else if (btn == plus)

{

operate('+');

equaled = false;

}

else if (btn == minus)

{

operate('-');

equaled = false;

}

else if (btn == multi)

{

operate('*');

equaled = false;

}

else if (btn == div)

{

operate('/');

equaled = false;

}

else if (btn==quyu){

operate('%');

equaled=false;

}

else if (btn == change) //正负号

{

operate('±');

operate('=');

equaled = true;

}

else if (btn == sqrt)

{

operate('√');

operate('=');

equaled = true;

}

else

{

if (equaled)

result = ;

for (int i = ; i < ; i++)

if (btn == numbers[i])

{

if (jtf.getText().equals(""))

jtf.setText("" + i);

else if(! operated) //如果按下的不是运算符

jtf.setText(jtf.getText() + i);

else

{

jtf.setText("" + i);

operated = false;

}

}

if (btn == dot && ! dotExist)

{

jtf.setText(jtf.getText() + ".");

}

}

}

// 进行运算的方法

private void operate(char operator)

{

double currentNumber = Double.valueOf(jtf.getText()).doubleValue();

if (lastOperator == '?')

result = currentNumber;

else if (lastOperator == '+')

result += currentNumber;

else if (lastOperator == '-')

result -= currentNumber;

else if (lastOperator == '*')

result *= currentNumber;

else if (lastOperator == '/')

result /= currentNumber;

else if(lastOperator=='%')

result %=currentNumber;

else if (lastOperator == '±')

result *= -;

else if (lastOperator == '√')

result = Math.sqrt(currentNumber);

else if (lastOperator == '=' && equaled)

result = currentNumber;

jtf.setText("" + result);

operated = true;

lastOperator = operator;

}

public static void main(String[] args)

{new rf(); } //创建了一个rf的实例

}

科学计算器(JAVA实现)

前记: 大二学 Java 的时候写的,现在贴上来,只为留念. 再翻代码,自己看着都头疼.一重重的 if 嵌套,当时写得费劲,现在看着更费劲. 代码思想: 代码的大致思想是这样: 首先定义一个算式字符串 ...

【java图形计算器】 java awt swing组件应用

package package1; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swi ...

想找个计算器当本命?来试试UWP应用《纸书科学计算器》

久违了.上次在博客园发文还是4年前,正是高中参加NOIP的时候.这4年里发生了很多事,乃至再次看到过去的文章时,仿佛看到了自己也不熟悉的风景.最近很想把我的博客重新拾起来,慢慢灌溉,写一些微不足道的技 ...

整理一些《纸书科学计算器》的小Tips

本文最开始是在2016年的文章 Win10应用更新啦! 发表之后撰写的,当时那篇文章收到了不少人点赞,应用在国内市场的日下载量也突然上涨,让我感到受宠若惊,这里要感谢Wp ...

Win10应用《纸书科学计算器》更新啦!

在2016年8月拿了计算机设计大赛国家一等奖,现在仍记得我在答辩时还给评委们普及了一波UWP平台的知识.受此鼓励,这款应用也不会停下更新的脚步^_^.最近从1.9小幅升级 ...

html&plus;css&plus;js实现科学计算器

代码地址如下:http://www.demodashi.com/demo/13751.html 项目描述 纯html+css+js实现一个科学计算器,支持平方开方指数对数等基本函数,支持键盘输入,有简 ...

《学习R》笔记:科学计算器、检查变量和工作区、向量、矩阵和数组、列表和数据框

一.第二章 科学计算器 要检查两个数字是否一样,要使用 all.equal() ,不要使用 == ,== 符号仅用于比较两个整型数是否存在相同 . > all.equal(sqrt(2)^2,2 ...

数据结构之栈—强大的四则复杂运算计算器&lpar;超过windows自带的科学计算器&rpar;【中缀转后缀表达式】

比windows自带计算器还强的四则复杂运算计算器! 实测随机打出两组复杂算式:-7.5 * 6 / ( -2 + ( -6.5 -  -5.22 ) )与7.5+-3*8/(7+2) windows ...

java小型科学计算器

/** * 1.先转换为逆波兰顺序 * 数字直接存入list,符号压入栈中,但是如果栈底元素不大于该运算符的运算顺序,则将栈底pop,直到大于栈底运算符为止,再压入栈中, * 最后将运算符依次全部po ...

随机推荐

9&period;29判断变量x是奇数还是偶数

方法一: package qqq; public class Jiou { public static void main(String[] args) { // TODO Auto-generate ...

Linux计算机进程地址空间与内核装载ELF

本文基于Linux™系统对进程创建与加载进行分析,文中实现了Linux库函数fork.exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程. 一.初识Li ...

实现一个JavaScript模块化加载器

对任何程序,都存在一个规模的问题,起初我们使用函数来组织不同的模块,但是随着应用规模的不断变大,简单的重构函数并不能顺利的解决问题.尤其对JavaScript程序而言,模块化有助于解决我们在前端开发中 ...

OpenCV——KNN分类算法 &lt&semi;摘&gt&semi;

KNN近邻分类法(k-Nearest Neighbor)是一个理论上比较成熟的方法,也是最简单的机器学习算法之一. 这个算法首先贮藏所有的训练样本,然后通过分析(包括选举,计算加权和等方式)一个新样本 ...

使用 python 自动打包 Android 和 iOS

https://github.com/jinzunyue/package-Android-and-iOS

mariadb&sol;mysql配置允许远程访问方式

首先配置允许访问的用户,采用授权的方式给用户权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT ...

PS 给天空添加蓝天白云&lt&semi;转载&gt&semi;

https://jingyan.baidu.com/article/b2c186c8e83b1cc46ef6ffee.html 给图片添加蓝天白云的步骤: 1.打开要加蓝天白云的照片.(如图一) [图 ...

使用MapReduce实现温度排序

温度排序代码,具体说明可以搜索其他博客 KeyPair.java package temperaturesort; import org.apache.hadoop.io.IntWritable; i ...

科学计算器java_科学计算器的Java实现相关推荐

  1. 带括号的计算器 java_【福利】java新手做的复合型计算器!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 先前用那个代码不走样说要审核,我这里不用那个来发代码 import javax.swing.JFrame; import javax.swing.JPan ...

  2. 多项式计算器 java_多项式计算器

    /** 完成多项式的计算器,可以进行多项式的加法,减法,乘法三种运算. */ import java.util.ArrayList; import java.util.List; import jav ...

  3. 一元多项式计算器Java_一元多项式计算器代码.doc

    一元多项式计算器代码.doc 一元多项式计算器代码INCLUDEINCLUDEINCLUDETYPEDEFSTRUCTPOLYNODE{FLOATCOEF//系数INTEXP//指数STRUCTPOL ...

  4. 手写计算器java_可编程科学计算器app

    可编程科学计算器app是一款功能超级强大的科学计算器,它通过自建程序解决很多工程测算的问题!欢迎有需要的朋友在芒果下载站下载体验! 可编程科学计算器app官方介绍 程序开发科学计算器是一个和Matla ...

  5. 微信小程序 科学计算器(微信小程序+java+python)

    微信小程序之科学计算器 (微信小程序+java+python) 先把自己的小程序和页面贴出来 1.前后端实现步骤: 1.前端采用的就是微信小程序开发工具,后端采用的是以springboot为基础,调用 ...

  6. 科学计算机eq7,科学计算器HiEdu 580 Scientific Calculator

    科学计算器是一款计算器软件,支持多种运算让用户能够在多方面都能够使用到的一款计算器软件,你可以用其来计算大学当中相当多的内容,而除了是计算器之外这款软件也是一款辅助性的工具,能够为用户提供单位上面的转 ...

  7. deepin系统15.6版本安装执行那个exe文件_深度操作系统 deepin 20(1003)正式版发布:计算器支持科学计算,新增邮件、相机等应用...

    原标题:深度操作系统 deepin 20(1003)正式版发布:计算器支持科学计算,新增邮件.相机等应用 IT之家10月22日消息 deepin 20 正式版发布一个月后,社区版本迎来了第一次更新 ( ...

  8. 小米科学计算机开立方,小米计算器安卓版_小米计算器怎么开立方_小米科学计算器_易玩网...

    软件简介 网提供小米计算器app,小米计算器是一款非常好用的安卓手机计算器,小米计算器集普通计算.科学计算.房贷计算.汇率计算.个税计算及单位换算为一体,功能非常强大,感兴趣的朋友快来吧! 功能介绍 ...

  9. 科学计算机如何开机,计算器上关机和开机键分别是什么?

    由于计算器分2113为科学计算机和普通计算器5261,按键数量/大小4102/系统等都不一样,1653所以开关等还是有所区别的.一.普通计算器:二.科学计算器:扩展资料:计算器使用方法使用方法计算器包 ...

  10. JavaScript,js实现 科学计算器,普通计算器,在线计算器

    JavaScript,js实现 科学计算器,普通计算器,在线计算器 样式 普通计算器 高级计算器 js计算逻辑 样式 普通 高级 普通计算器 <div class="calculato ...

最新文章

  1. Azure操作手册集合
  2. 杀手级AI补代码工具问世,支持23种语言及5种主流编辑器,程序员沸腾了
  3. Django 07模型层—单表操作(增删改查)
  4. java 注解 demo_JAVA语言注解概念使用及Demo讲解
  5. LVS三种模式的区别及负载均衡算法
  6. Effective C++ 条款21
  7. linux tomcat环境变量配置_Tomcat
  8. Django笔记(1)
  9. vmware传东西到linux后文件变小,在VMWARE的Linux虚拟机上删除大容量文件后硬盘空间大小还不变怎么办?虚拟机虚拟机的各种应用及问题...
  10. ECS服务器下挂载数据盘
  11. 常用接口抓包以及接口测试工具总结
  12. 斯坦福大学CS143编译原理课程笔记:3.编译器的性价比
  13. 使用junit4测试spring项目中service方法
  14. K - 迷宫问题 POJ - 3984(广度搜索)
  15. mmsegmentation自定义数据集
  16. 加权平均数的例子_什么是加权平均数(加权平均数公式例子)
  17. 准确率(accuracy)、精确率(Precision)、召回率(Recall)
  18. Blender游戏开发教程
  19. 文献阅读报告:MutiPath: Multiple Probabilistic Anchor Trajectory Hypotheses for Behavior Prediction
  20. 嵌入式Linux开发_Ping来Ping去

热门文章

  1. Isight2020安装步骤(step by step)
  2. C 语言中获取文件长度(ftell函数)
  3. 数据库系统概论-绪论
  4. [量子计算]量子计算的发展史与中国现在的量子计算整体水平
  5. 制作课件需要哪些软件
  6. C语言实现密码字典生成器
  7. 计算机应用水平测试excel,职称计算机考试Excel操作题及答案
  8. 编译DXperience 7.1源码和升级原有的应用程序
  9. 用 C 语言编写一个网络蜘蛛来搜索网上出现的电子邮件地址
  10. linux wps 数学符号,2016版WPS数学符号如何输入