JAVA简易计算器-lzy
- 格式:docx
- 大小:204.49 KB
- 文档页数:11
⽤java代码写的简易计算器(可以实现基本的加减乘除功能)package A;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.*;public class Calcular3 extends JFrame implements ActionListener,MouseListener{private int m1=0,n=0;//private double m2=0;//运算的数private int flag=0;JFrame f;JPanel p1,p2,p3;JTextField t;JButton b1[]=new JButton[18];String b[]= {"1","2","3","4","5","6","7","8","9","0","清空","退格",".","=","+","-","*","/"};public Calcular3(){f=new JFrame("计算器");t=new JTextField(35);p1=new JPanel();p2=new JPanel();p3=new JPanel();f.setBounds(100, 100, 400, 200);f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.EAST);p2.setLayout(new GridLayout(5,3));p3.setLayout(new GridLayout(4,1));p1.add(t);for(int i=0;i<14;i++) {b1[i]=new JButton(b[i]);p2.add(b1[i]);b1[i].addActionListener(this);}for(int i=14;i<18;i++) {b1[i]=new JButton(b[i]);p3.add(b1[i]);b1[i].addActionListener(this);}/*for(int i=0;i<18;i++) {b1[i].addActionListener(this);}*/f.setVisible(true);}//实现接⼝的⽅法public void mouseClicked(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void actionPerformed(ActionEvent e) {String str="";int i;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {if(i==9) {n=n*10;}else {n=n*10+i+1;}str=String.valueOf(n);//整形n转换成字符串strt.setText(str);//显⽰到⽂本框上}}for(i=14;i<18;i++) {//+、-、*、/if(e.getSource()==b1[i]) {//匹配运算符m1=Integer.parseInt(t.getText());if(flag==15) {m2=m1+m2;}else if(flag==16) {m2=m1-m2;}else if(flag==17) {m2=m1*m2;}else if(flag==18) {m2=m1/m2;}else m2=m1;//若⽆连续的运算符运算,保存当前数据到m2 if(i==14) flag=15;else if(i==15) flag=16;else if(i==16) flag=17;else flag=18;str=String.valueOf(b[i]);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据break;//找到匹配数据退出循环}}if(e.getSource()==b1[13]) {//=m1=Integer.parseInt(t.getText());if(flag==15) {m2=m2+m1;}else if(flag==16) {m2=m2-m1;}else if(flag==17) {m2=m2*m1;}else if(flag==18) {m2=m2/m1;}else m2=m1;str=String.valueOf(m2);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据flag=0;//flag还原0,表明没有未处理的运算符}if(e.getSource()==b1[10]) {//各变量变为0 清空m1=0;m2=0;flag=0;n=0;t.setText("0");//显⽰到⽂本框上}if(e.getSource()==b1[11]) {//退格m1=(int)(Double.parseDouble(t.getText())/10);n=m1;str=String.valueOf(m1);t.setText(str);}if(e.getSource()==b1[12]) {//⼩数点m1=Integer.parseInt(t.getText());str=String.valueOf(m1+b[12]);t.setText(str);//显⽰到⽂本框上int j=0;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {j++;m2=Math.pow(0.1, j)*Integer.parseInt(b[i]);str=String.valueOf(m1+m2);t.setText(str);//显⽰到⽂本框上}}}}//主函数public static void main(String[] args) {new Calcular3();}}。
java简易计算器实训报告(一)Java简易计算器实训报告实训目的通过编写一个简易的Java计算器,深入了解Java基础语法,并掌握对象的属性和行为。
实训过程本次实训采用Eclipse编写Java程序,具体过程如下:1.首先创建一个名为“Calaulator”的Java项目,再在其中创建一个名为“Calaulator”的类。
2.在Calaulator类中定义一个名为“calculate”的方法,此方法接收3个参数:一个char类型的操作符,两个double类型的操作数,返回值为double类型。
3.在方法体中根据传入的操作符进行相应的加、减、乘、除运算。
4.创建一个主函数,在其中调用calculate方法并输出结果。
实训收获通过本次实训,我掌握了Java的基础语法,并深入了解了对象的属性和行为。
同时,我还学会了如何使用Eclipse编写Java程序,提高了自己的编程水平。
实训总结Java语言作为一种强大而稳定的编程语言,具有广泛的应用场景。
通过本次实训,我深刻认识到Java的重要性,并希望能够在以后的学习中不断探索Java语言的更多使用方法。
实训反思在实训过程中,我发现自己对Java的基础语法了解不够深入,导致编写代码时遇到一些困难,需要不断查阅相关资料。
同时,在调试代码时也遇到了许多问题,发现自己对IDE的使用不够熟练,需要更多的实践和学习。
实训展望通过本次实训,我已经初步掌握了Java的基础语法和编程思想,但我认为这只是一个开始。
我需要不断地练习,深入了解Java的各种特性,将其应用到实际开发中。
未来,我希望能够成为一名优秀的Java工程师,为社会做出自己的贡献。
结语本次Java简易计算器实训让我收获颇丰,不仅加深了对Java的认识,也增强了自己的编程实践能力。
希望今后能够在Java的学习和实践中不断提高自己,取得更好的成果。
简易计算器(Android应用使用Java开发)随着智能手机的普及,手机应用程序也变得越来越多样化和智能化。
其中,计算器应用无疑是人们生活中最常用的一种应用之一。
本文将介绍如何使用Java开发一个简易计算器的Android应用程序。
1. 概述简易计算器是一款可以进行基本的数学计算的应用程序。
用户可以在界面上输入数字和操作符,计算器会自动根据用户的操作给出计算结果。
本应用程序采用Java语言进行开发,运行于Android操作系统。
2. 开发环境在开始开发前,我们需要搭建好Android开发环境。
首先,下载并安装Java Development Kit(JDK),确保版本为最新稳定版。
然后,下载并安装Android Studio,这是一款为Android开发而设计的集成开发环境(IDE)。
3. 创建项目打开Android Studio,并点击"Start a new Android Studio project"来创建一个新的项目。
在弹出的窗口中,填写项目名称、包名等基本信息,并选择适当的设备和目标SDK版本。
4. 设计界面在项目创建完成后,我们需要设计计算器的界面。
可以使用Android Studio自带的可视化UI设计器来拖拽和放置UI元素,也可以手动在XML布局文件中编写界面代码。
界面的核心组件包括输入框、按钮和显示区域。
5. 添加逻辑功能界面设计完成后,我们需要为计算器添加逻辑功能。
创建一个Java类作为计算器的主活动(Activity),在其中实现输入和操作的处理逻辑。
可以使用Android提供的计算相关API,例如使用eval()方法进行表达式计算。
6. 编译和调试在开发过程中,我们可以随时进行编译和调试来检查应用程序的运行情况。
点击Android Studio的运行按钮,选择目标设备并运行应用程序。
在模拟器或真机上进行调试,查看是否符合我们的预期效果。
7. 测试和发布在功能开发和调试完毕后,我们需要进行应用的测试阶段。
//只可以做简易的加减乘除运算//每次运算结束之后必须按一下清除才可以进行第二次运算import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.Event;public class Calculator {Button[] bt = new Button[10];//数字键Button bp,bj,bc,bu,bq,be;//分别对应的是加,减,乘,除,清除,等于public String numCache="";//缓存拿到的值,这个地方如果不赋初值的话会报错,就是必须在第一次使用前按下清除键public int num1,num2;//参加运算的值public String showNum="";//文本框显示的值public String operator="";//显示的运算符TextField tf;//文本框public int result;public static void main(String[] args) {new Calculator().setFrame();}/*frame*/public void setFrame() {Frame mFrame = new Frame("java简易计算器");//窗口Panel p1 = new Panel();//文本框的容器tf = new TextField(30);//文本框p1.add(tf);//添加文本框进入容器mFrame.add(p1,BorderLayout.NORTH);//将p1放到mFrame的北区域Panel p2 = new Panel();//存放button的容器p2.setLayout(new GridLayout(4,4));//放置button的p2容器,默认添加到center区//添加按钮bt[0] = new Button("0");bt[1] = new Button("1");bt[2] = new Button("2");bt[3] = new Button("3");bt[4] = new Button("4");bt[5] = new Button("5");bt[6] = new Button("6");bt[7] = new Button("7");bt[8] = new Button("8");bt[9] = new Button("9");bp = new Button("+");bj = new Button("-");bc= new Button("*");bu= new Button("/");bq= new Button("清除");be= new Button("=");//将button添加进panelfor(int i=0;i<10;i++) {p2.add(bt[i]);}p2.add(bp);p2.add(bj);p2.add(bc);p2.add(bu);p2.add(bq);p2.add(be);bp.addActionListener(new Monitor());bj.addActionListener(new Monitor());bc.addActionListener(new Monitor());bu.addActionListener(new Monitor());bq.addActionListener(new Monitor());be.addActionListener(new Monitor());mFrame.add(p2);mFrame.pack();//注册监听器类for(int i=0;i<10;i++) {bt[i].addActionListener(new Monitor());}mFrame.setBackground(Color.GRAY);//窗口的背景颜色mFrame.setVisible(true);//显示窗口mFrame.addWindowListener(new WindowAdapter(){//窗口的关闭事件public void windowClosing(WindowEvent e) {System.exit(-1);}});}//frame构造方法结束,第9行开始//事件监听class Monitor implements ActionListener {public void actionPerformed(ActionEvent e) {Button b = (Button)e.getSource();String str = b.getActionCommand();//如果按下的是运算符if(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")) {//按下的是运算符if((numCache)!="") {num1 = Integer.parseInt(numCache);}operator = str;tf.setText(operator);numCache = "";showNum = "";//如果按下的是清除键}else if(str.equals("清除")) {showNum = "";numCache="";tf.setText("0.");//如果按下的是等号}else if(str.equals("=")) {num2 = Integer.parseInt(numCache);if(operator.equals("+")) {result = num1+num2;}else if(operator.equals("-")) {result = num1-num2;}else if(operator.equals("*")) {result = num1*num2;}else{if(num2==0) {tf.setText("被除数不能为零");return;}result = num1/num2;}tf.setText(result+"");num1 = 0;num2 = 0;result = 0;}else {//如果按下的是数字showNum = showNum+b.getActionCommand();numCache = numCache+b.getActionCommand();tf.setText(showNum);}}}}//bug报告:(注:素材和资料部分来自网络,供参考。
java简易计算器设计思路一、引言(200字)计算器是一种用于进行数学运算的工具,我们经常使用计算器进行简单的加减乘除等运算。
而在计算机编程中,我们也可以设计一个简易计算器的程序,用于实现基本的数学运算功能。
本文将围绕设计一个简易计算器展开,主要包括用户输入的处理、运算符的识别、表达式的计算以及结果的输出等内容。
二、用户输入的处理(200字)计算器首先需要能够接收用户输入的表达式,包括数字和运算符。
在Java中可以使用Scanner类来获取用户的输入。
首先,我们需要创建一个Scanner对象,然后使用nextLine(方法获取用户输入的一行字符串。
接下来,我们需要对输入的字符串进行处理,将数字和运算符分开。
可以使用String的split(方法将字符串按照特定的分隔符进行分割。
根据运算符的特性,常见的分隔符可以是空格、加号、减号、乘号、除号等。
将得到的数字和运算符分别存储在一个列表中,以便后续的处理。
三、运算符的识别(200字)在处理用户输入后,我们需要对运算符进行识别和分类,以便进行相应的数学运算。
Java中可以使用if语句或者switch语句来对运算符进行判断。
针对常见的运算符如加号、减号、乘号、除号等,可以使用简单的逻辑判断语句进行处理。
对于更为复杂的运算符,比如平方根、阶乘、求幂等,可以使用if-else的嵌套语句进行处理。
根据识别结果,我们可以调用相应的数学函数进行运算。
四、表达式的计算(200字)识别运算符后,我们需要对表达式进行计算。
计算器的基本原理是根据输入的数字和运算符进行相应的数学运算,并返回结果。
在Java中,可以使用各种数学运算符,比如加号、减号、乘号、除号、取模等进行计算。
不同的运算符有不同的运算规则,需要根据具体需求进行操作。
在计算过程中,我们需要注意异常情况的处理,比如除零错误、非法运算符等。
Java提供了异常处理机制,可以使用try-catch语句来捕获异常并进行处理。
用Java实现的计算器计算器是一个广泛应用的工具,用于进行数学运算。
如今,随着计算机技术的不断发展,计算器也逐渐被软件程序所替代。
本文将介绍如何使用Java语言实现一个简单的计算器程序。
一、程序概述计算器程序主要包括用户界面和计算逻辑两部分。
用户界面负责显示计算器的按钮和输入输出框,计算逻辑负责根据用户输入进行运算并返回结果。
二、用户界面设计在Java中,我们可以使用Swing或JavaFX等图形库来设计用户界面。
本文选用JavaFX来实现计算器的界面。
界面需要包括数字按钮、运算符按钮、输入输出框等组件。
在程序启动时,我们需要初始化界面并设置各个组件的位置、大小和样式。
为了方便布局,我们可以使用GridPane等布局管理器来管理组件。
三、计算逻辑实现1. 表达式解析计算器需要将用户输入的表达式解析为计算机可以识别的格式。
Java中可以使用正则表达式或者逆波兰表达式来解析表达式。
本文选用简单的正则表达式方法进行解析。
2. 运算逻辑解析表达式后,我们需要根据运算符的优先级进行运算。
Java中可以使用栈来实现运算符的优先级判断和运算。
我们可以定义一个操作数栈和一个运算符栈,按照规则将表达式中的数字和运算符依次入栈,并根据运算符的优先级进行运算并将结果入栈。
四、完整代码示例import javafx.application.Application;import javafx.geometry.Insets;import javafx.scene.Scene;import javafx.scene.control.Button;import javafx.scene.control.TextField;import yout.GridPane;import javafx.stage.Stage;public class Calculator extends Application {private TextField inputField; // 输入框private Button[] numberButtons; // 数字按钮private Button[] operatorButtons; // 运算符按钮@Overridepublic void start(Stage primaryStage) {primaryStage.setTitle("计算器");primaryStage.setResizable(false);// 初始化界面GridPane gridPane = new GridPane();gridPane.setHgap(10);gridPane.setVgap(10);gridPane.setPadding(new Insets(10));// 初始化输入框inputField = new TextField();inputField.setEditable(false);inputField.setPrefHeight(40);inputField.setMaxWidth(Double.MAX_VALUE);gridPane.add(inputField, 0, 0, 4, 1);// 初始化数字按钮numberButtons = new Button[10];for (int i = 0; i < 10; i++) {numberButtons[i] = createNumberButton(String.valueOf(i), i); }gridPane.add(numberButtons[7], 0, 1);gridPane.add(numberButtons[9], 2, 1);gridPane.add(numberButtons[4], 0, 2);gridPane.add(numberButtons[5], 1, 2);gridPane.add(numberButtons[6], 2, 2);gridPane.add(numberButtons[1], 0, 3);gridPane.add(numberButtons[2], 1, 3);gridPane.add(numberButtons[3], 2, 3);gridPane.add(numberButtons[0], 0, 4);gridPane.add(createDotButton(), 1, 4);gridPane.add(createEqualButton(), 2, 4);// 初始化运算符按钮operatorButtons = new Button[4];operatorButtons[0] = createOperatorButton("+"); operatorButtons[1] = createOperatorButton("-"); operatorButtons[2] = createOperatorButton("*"); operatorButtons[3] = createOperatorButton("/"); gridPane.add(operatorButtons[0], 3, 1);gridPane.add(operatorButtons[1], 3, 2);gridPane.add(operatorButtons[3], 3, 4);Scene scene = new Scene(gridPane);primaryStage.setScene(scene);primaryStage.show();}private Button createNumberButton(String text, int number) { Button button = new Button(text);button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + number);});return button;}private Button createDotButton() {Button button = new Button(".");button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + ".");});return button;}private Button createEqualButton() {Button button = new Button("=");button.setPrefSize(60, 40);button.setOnAction(e -> {String expression = inputField.getText();// 调用计算逻辑进行计算if (expression != null && !expression.isEmpty()) { double result = calculate(expression);inputField.setText(String.valueOf(result));}});return button;}private Button createOperatorButton(String text) {Button button = new Button(text);button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + text);});return button;}private double calculate(String expression) {// 进行计算逻辑的实现// ...}public static void main(String[] args) {launch(args);}}五、总结通过本文的介绍,我们可以了解到使用Java语言实现一个简单计算器的基本框架和思路。
⽤JAVA作⼀个简单的计算器刚刚学java不久尝试着做了⼀个简单的计算器接下来讲讲我的思路1.创建⼀个main函数public static void main(String[] args){}2.创建对象调⽤函数public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数}3.创建scanner函数获取⽤户的数据public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据}4.输⼊第⼀个值public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据System.out.println("请输⼊⼀个值");}5.double 数据定义⽤⽤nextdouble 接受double的第⼀个数据public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据System.out.println("请输⼊⼀个值");double a = scanner.nextDouble();//接受double类型的数据}6.注意这⾥可以分解,可以再输出⼀个运算符,为了清楚可以这么写,但没必要,string定义符号是字符型接受⽤next // System.out.println("请输⼊运算符:");String operator = scanner.next();//接收字符串数据注意:这边说下之前next 和nextline 区别 next 是不能够空格的,就算空格也只能够取前⾯的,⽽ nextline 可以把空格后⾯的都能够取到7.double 数据定义⽤ nextdouble 接受double的第⼆个数据// System.out.println("请输⼊⼀个数");double b = scanner.nextDouble();//接受double类型的数据注意:这边也是⼀样可以再写⼀个输出8.⽤double类型来定义结果 resultdouble result = 0;9.接下来要写外部的⽅法了,分别定义加减乘余,并返回⽅法public static double add(double a,double b){return a+b;}//加法public static double minus(double a,double b){return a-b;}//减法public static double multiply(double a,double b){return a*b;}//乘法public static double divide(double a,double b){return a/b;}//除法public static double remainder(double a,double b){return a%b;}//余10.回到主函数分别来调⽤外⾯的⽅法,这⾥⽤if else if 来判断是否输⼊的⽅法等等于当前的符号if ("+".equals(operator)){//如果输⼊的运算符等于加号就进来result = add(a,b);//结果,调⽤加}else if("-".equals(operator)){result = minus(a,b);//结果,调⽤减}else if("*".equals(operator)){result = multiply(a,b);//结果,调⽤乘}else if("/".equals(operator)){result = divide(a,b);//结果,调⽤除}else if("%".equals(operator)){result = remainder(a,b);//结果,调⽤余}注意:"-".equals(operator), "".equals()这个⽅式是字符串的== ,⽤来判断字符串的相等的,切记不能够⽤==,会报错11.最后输出结果System.out.println("结果:"+result);12.奉上完整的代码package com.lx.method;import java.util.Scanner;public class Demo06 {//做⼀个简单的计算器public static double add(double a,double b){return a+b;}//加法public static double minus(double a,double b){return a-b;}//减法public static double multiply(double a,double b){return a*b;}//乘法public static double divide(double a,double b){return a/b;}//除法public static double remainder(double a,double b){return a%b;}//余public static void main(String[] args) {Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据System.out.println("请输⼊⼀个值");double a = scanner.nextDouble();//接受double类型的数据// System.out.println("请输⼊运算符:");String operator = scanner.next();//接收字符串数据// System.out.println("请输⼊⼀个数");double b = scanner.nextDouble();//接受double类型的数据double result = 0;if ("+".equals(operator)){//如果输⼊的运算符等于加号就进来result = add(a,b);}else if("-".equals(operator)){result = minus(a,b);}else if("*".equals(operator)){result = multiply(a,b);}else if("/".equals(operator)){result = divide(a,b);}else if("%".equals(operator)){result = remainder(a,b);}System.out.println("结果:"+result);}}结果:莫%运算在上⾯结果中我就在来说下% 运算吧,从刚刚结果看来我们得出以下⼏个要点1. 如果 a % b , a>b ,那么外⾯就拿a除以b余下来的值,我们拿余下来的数20 %11 = 92. 如果a % b , a=b ,那么等于b 相除下来余数就是0 ,我们就拿 020 % 10 = 03. 如果 a % b , a<b , 那么我们就拿a的⾃⼰20 % 1000 = 20。
java计算器简易代码
作为计算机学习者,如果你早期学过编程的话,那么也许编写一个计算器也是一项初级任务。
今天我们就来学习一下如何利用Java语言编写一个基本计算器,让你的计算器更加智能。
首先,让我们选择一个好的编程环境,比如Eclipse,这是一个专业的Java开发环境,它可以为代码的调试提供全方位的支持。
接下来我们就开始编写代码:
1. 我们首先需要创建一个Java项目,为了运行程序,我们需要添加一个Main方法。
2. 接下来,我们需要创建一个Java类,以实现这个简单计算器的功能。
3. 我们需要在Java类中创建一个基本的界面,包括数字和运算符的按钮,以及显示区域。
4. 按钮是非常重要的,因为它们是连接显示区域和相应功能的工具。
因此,我们需要声明和实现按钮和显示区域的组件。
5. 在Java类中,我们需要利用ActionListener接口来实现按钮的事件处理器方法。
6. 对于每个按钮,我们需要定义它的数字、运算符和相应的操作。
7. 最后,我们需要在主方法中创建该计算器的实例,在界面中显示组件,从而使用户可以计算数学问题。
总之,以上是Java计算器的基本步骤,如果想让你的计算器更加智能,还可以添加我们想要的其他组件功能。
通过加强这个简单的计算器,你可以更好地了解Java的编程语言,更好地编写程序。
Java实现⼀个简易计算器做⼀个多功能计算器 ====== 欢迎使⽤计算器系统 ========1. int + int2. double + double 、3. 计算 n 的阶乘4. 计算 a的 n次⽅、5. 退出系统、import java.util.Scanner;public class Calculator {public static void main(String[] args) {//计算器界⾯calInter();Scanner sc = new Scanner(System.in);System.out.println("请输⼊功能选项:");int i = sc.nextInt();int j = 1;while(true){switch (i){case 1:System.out.println("结果为:"+addInt());break;case 2:System.out.println("结果为:"+addDouble());break;case 3:System.out.println("结果为:"+factor());break;case 4:System.out.println("结果为:"+power());break;case 5:exit();j = 0;break;default:System.out.println("输⼊功能选项有误,您只能选择1~5之间的整数,请重新输⼊!");}if(j == 0){break;}System.out.println("请输⼊功能选项:");i = sc.nextInt();}}//计算器界⾯public static void calInter(){System.out.println("====== 欢迎使⽤计算器系统 ========");System.out.println("1. int + int");System.out.println("2. double + double ");System.out.println("3. 计算 n 的阶乘");System.out.println("4. 计算 a的 n次⽅");System.out.println("5. 退出系统");}//Int加法public static int addInt(){Scanner sc = new Scanner(System.in);System.out.println("第⼀个int数为:");int a = sc.nextInt();System.out.println("第⼆个int数为:");int b = sc.nextInt();return a + b;}//double加法public static double addDouble(){Scanner sc = new Scanner(System.in);System.out.println("第⼀个double数为:");double a = sc.nextDouble();System.out.println("第⼆个数double为:");double b = sc.nextDouble();return a + b;}//n的阶乘public static int factor(){Scanner sc = new Scanner(System.in);System.out.println("阶乘n为:");int n = sc.nextInt();int fact = 1;for(int i = 1; i <= n ;i++){fact *= i;}return fact;}//a的n次⽅public static double power(){Scanner sc = new Scanner(System.in); System.out.println("底数a为:");int a = sc.nextInt();System.out.println("幂数n为:");int n = sc.nextInt();return Math.pow(a,n);}//退出系统public static void exit(){System.out.println("退出系统");}}。
java简易计算器程序输入一行,输出一行Java简易计算器程序是一种功能强大的工具,它可以解决我们日常生活中的许多计算问题。
无论是简单的加法、减法,还是复杂的乘法、除法,这个程序都能迅速、准确地给出答案。
首先,让我们来了解一下它的输入方式。
用户只需在一行中输入算式,使用加号“+”表示加法,减号“-”表示减法,星号“*”表示乘法,斜线“/”表示除法。
例如,输入“5+2”,即代表了一个简单的加法运算。
接下来,让我们看一下程序的输出结果。
它会在一行中返回运算结果,例如输入“5+2”,输出结果将会是“7”。
这种即时反馈,使得计算器程序成为了我们日常生活中的得力助手。
这个简易计算器程序在实际应用中具有广泛的用途。
例如,在购物时,我们可以使用它来计算折扣后的价格。
此外,它还适用于学习、工作中的各种数学问题。
不论是计算面积、求解方程还是处理复杂表达式,这个程序都能为我们提供方便快捷的计算服务。
然而,作为程序的用户,我们也要注意一些使用要点。
首先,输入的算式要满足基本的数学规则,比如除数不能为零,否则程序将无法给出结果。
此外,在进行复杂运算时,可以使用括号来明确计算的先后顺序,提高运算的准确性。
在编写这个简易计算器程序时,我们需要注意程序的设计逻辑和代码的可读性。
良好的设计和清晰的代码结构可以提高程序的可维护性和拓展性。
同时,我们还要考虑异常处理,避免程序在输入错误时崩溃。
总结而言,Java简易计算器程序是一项非常有用且实用的工具。
它的简单易用性和功能全面性使得我们在日常生活和工作中可以更加高效地进行各种数学计算。
因此,掌握并善用这个程序,将为我们的生活带来方便,并为我们的学习与工作提供有力的支持。
java代码写的简易计算器(可以实现基本的加减乘除功能)计算器java写⼀个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过⽤户交互实现。
import java.util.Scanner;/*** 计算器* 写4个⽅法:加减乘除* 利⽤循环加switch进⾏⽤户交互* 传递需要操作的两个数* 输出结果*/public class Demo04 {public static double a;public static double b;//运算符public static String operator;//=符public static String equal;//结果public static double sum=0;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输⼊数字:");a = scanner.nextDouble();System.out.println("输⼊运算符:");operator = scanner.next();System.out.println("输⼊数字:");b = scanner.nextDouble();do {switch (operator){case "+":sum= add(a, b);System.out.println("输⼊=获取结果:");equal = scanner.next();coninue();break;case "-":sum=subtract(a,b);System.out.println("输⼊=获取结果:");equal = scanner.next();coninue();break;case "*":sum=multiply(a,b);System.out.println("输⼊=获取结果:");equal = scanner.next();coninue();break;case "/":if (b==0){System.out.println("被除数不能为0");operator = "q";break;}else {sum=divide(a,b);System.out.println("输⼊=获取结果:");equal = scanner.next();coninue();break;}default:System.out.println("运算符输⼊错误!");}}while (operator.equals("+")||operator.equals("-")||operator.equals("*")||operator.equals("/"));scanner.close();}//加public static double add(double a,double b){return a+b;}//减public static double subtract(double a,double b){return a-b;}//乘public static double multiply(double a,double b){return a*b;}//除public static double divide(double a,double b){return a/b;}//获得结果或再次输⼊public static void coninue(){Scanner scanner = new Scanner(System.in);if (equal.equals("=")){System.out.println(a+operator+b+"="+sum);System.out.println("输⼊运算符+,-,*,/继续或输⼊其他字符结束");operator=scanner.next();if (operator.equals("+")||operator.equals("-")||operator.equals("*")||operator.equals("/")){ System.out.println("输⼊数字:");b = scanner.nextDouble();a=sum;}else {System.out.println("输⼊错误!");}}else {System.out.println("输⼊错误!");}}}。
java简易计算器完整代码import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculate extends JFrame implements ActionListener {/****/private static final long serialVersionUID = 1L;/*** @param args*/float userFloata=0f;float userFloatb=0f;double result;JLabel label1 ;JLabel label2;JLabel label3;JTextField textField1;JTextField textField2;JTextField textField3;JButton addButton;JButton subtractButton;JButton rideButton;JButton divideButton;public Calculate(){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle("简易计算器");JPanel viewJPanel_1=new JPanel();JPanel viewJPanel_2=new JPanel();addButton=new JButton("加");addButton.addActionListener(this);viewJPanel_1.add(addButton);subtractButton=new JButton("减");subtractButton.addActionListener(this);viewJPanel_1.add(subtractButton);rideButton=new JButton("乘");rideButton.addActionListener(this);viewJPanel_1.add(rideButton);divideButton=new JButton("除");divideButton.addActionListener(this);viewJPanel_1.add(divideButton);label1=new JLabel("数据1:");viewJPanel_2.add(label1);textField1=new JTextField(5);textField1.addActionListener(this);viewJPanel_2.add(textField1);label2=new JLabel("数据2:");viewJPanel_2.add(label2);textField2=new JTextField(5);textField2.addActionListener(this);viewJPanel_2.add(textField2);label3=new JLabel("结果是:");viewJPanel_2.add(label3 );textField3=new JTextField(5);viewJPanel_2.add(textField3);setSize(420,120);setVisible(true);validate();getContentPane().add(viewJPanel_1,BorderLayout.NORTH);getContentPane().add(viewJPanel_2,BorderLayout.CENTER);}public void CalculateEventHandel(){try{userFloata= Float.parseFloat(textField1.getText().trim());userFloatb= Float.parseFloat(textField2.getText().trim());} catch (NumberFormatException e) {JOptionPane.showMessageDialog(this, "请输入数字型数据!");textField1.setText("");textField1.requestFocus();textField2.setText("");textField3.setText("");return;}}public static void main(String[] args) { // TODO Auto-generated method stubnew Calculate();//a.CalculateEventHandel();}public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif(e.getSource()==addButton){this.CalculateEventHandel();result=userFloata+userFloatb;// System.out.println(""+result);textField3.setText(""+result);}else if(e.getSource()==subtractButton){ this.CalculateEventHandel();result=userFloata-userFloatb;textField3.setText(""+result);}else if(e.getSource()==rideButton){this.CalculateEventHandel();result=userFloata*userFloatb;textField3.setText(""+result);}else if(e.getSource()==divideButton){this.CalculateEventHandel();result=userFloata/userFloatb;textField3.setText(""+result);}}}。
java简易计算器设计思路Java简易计算器设计思路一、引言计算器是我们日常生活中常用的工具之一,可以帮助我们进行各种简单的数学计算。
本文将介绍如何使用Java编程语言设计一个简易的计算器。
二、功能需求我们的计算器需要具备以下基本功能:1. 实现加、减、乘、除四则运算;2. 能够处理小数、整数和负数的运算;3. 具备清除操作,清零当前计算结果;4. 能够处理连续计算,即进行多次连续的运算。
三、设计思路在设计简易计算器时,我们可以考虑以下步骤:1. 用户界面设计首先,我们需要设计一个用户界面,让用户能够输入数字和选择运算符号。
可以使用Java的Swing或JavaFX进行界面设计。
2. 输入数字和运算符在用户界面中,我们可以使用文本框和按钮来实现数字的输入和运算符的选择。
用户在文本框中输入数字,然后点击相应的按钮选择运算符号。
3. 运算处理根据用户的选择,我们可以利用Java中的if或switch语句来进行相应的运算处理。
比如用户选择加法运算,则获取用户输入的两个数字并相加。
同样,对于减法、乘法和除法运算,我们也可以使用相应的语句进行处理。
4. 显示结果最后,我们需要将计算结果显示在用户界面的文本框中。
将处理后的结果显示在界面上,让用户直观地看到计算结果。
5. 清除操作我们还可以添加一个清除按钮,使用户能够清除当前的计算结果,重新进行新的计算。
四、扩展功能除了基本的计算功能外,我们还可以考虑增加以下扩展功能:1. 添加括号功能,使计算器能够处理复杂的表达式;2. 添加开平方、取余、求幂等高级运算;3. 添加历史记录功能,保存用户之前的计算结果;4. 添加单位转换功能,使计算器能够进行长度、重量、温度等单位之间的转换。
五、总结通过以上设计思路,我们可以实现一个简易的计算器,满足用户的基本计算需求。
同时,我们可以根据实际需求添加扩展功能,提升计算器的实用性和灵活性。
希望本文对您设计和实现一个Java简易计算器有所帮助。
I1.2 退格键和清零键:用” Backspace ”’ C 和” CE 按钮实现; ................... 1 1.3计算器的科学计算方法: .................................................. 1 1.3.1 开方:用数字按钮和“ Sqrt ”按钮进行运算; ........................... 1 1.3.2 百分比:用数字按钮和“ % ”按钮进行运算; ......................... 1 1.3.3 求倒数:用数字按钮和“ 1/x ”按钮进行运算; . (1)1.3.4 求自然对数:用数字按钮和“In 按钮进行运算; (1)1.3.5 三角函数:用数字按钮和 “ tan ”“ cos 按钮进行运算 ................. 1 1.3.6 角度换算成弧度:用数字按钮和 “’按钮进行运算 ...................... 1 1.3.7 求反:用数字按钮和 -7+'按钮进行运算 (1)1.3.8 平方和三次方:用数字按钮和“ x A 2 ”“ 按钮进行运算 (1)1.4 常数: (2)1.4.1 n 用 Math 类中的PI 来实现 (2)1.4.2自然对数e :用Math 类中的E 来实现 (2)2 设计 ............................................................................. 2 2.1用户界面设计............................................................. 2 2.1.1该计算器程序的设计:用户界面包括Swing 组件,不过程序中大都使用的是AWT 组件 .................................................................. 2 2.1.2 在 AWT 组件, ....................................................... 2 2.1.3这个界面设计中包含了五个接口,分别控制运算符,数字,清除,存储功 能和小数点的输入 ............................................................. 2 2.1.4 程序设计中,使用了布局管理: . (3)2.2概要设计 ................................................................ 3 2.2.1它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法 (3)3 实现 (4)测试 ............................................................................ 14 4.1 实现加法运算:4+12=16 .......................................................................................... 14 4.2 实现乘法运算:3*9=27 ............................................................................................ 15 4.3 用”(实现清零功能: ................................................... 16 4.4 用” Backspace 实现退格功能 : .......................................... 17 4.5求倒数:1/4=0.25 (18)1 需求分析 1.1计算器的基本功能:............................................................................................. 1 1.1.1加法运算: 用数字按钮和“ + ”按钮进行运算; 1.1.2减法运算: 用数字按钮和“ -”按钮进行运算; 1.1.3乘法运算: 用数字按钮和“ * ”按钮进行运算; 1.1.4除法运算: 用数字按钮和“ /”按钮进行运算; ....................................... 1 ........................................ 1 ....................................... 1 . (1)1需求分析该计算器程序除了具备加减乘除基本功能外,还有清零键C、CE和退格键Backspace和一些部分的科学计算方法,包括开方、求倒、百分比,由于时间问题,之后会完善键盘事件的监听功能。
JAVA实现简单计算器```import java.util.Scanner;public class Calculatorpublic static void main(String[] args)Scanner input = new Scanner(System.in);System.out.println("欢迎使用简单计算器!");boolean running = true;while (running)System.out.println("请输入计算表达式(格式:操作数运算符操作数,例如:2 + 3),输入 exit 退出:");String expression = input.nextLine(;if (expression.equalsIgnoreCase("exit"))running = false;continue;}String[] tokens = expression.split(" ");if (tokens.length != 3)System.out.println("输入不合法,请重新输入!");continue;}trydouble operand1 = Double.parseDouble(tokens[0]);String operator = tokens[1];double operand2 = Double.parseDouble(tokens[2]);double result = calculate(operand1, operand2, operator);System.out.println("计算结果为:" + result);} catch (NumberFormatException e)System.out.println("操作数必须为数字,请重新输入!");} catch (IllegalArgumentException e)System.out.println(e.getMessage();}}System.out.println("感谢使用简单计算器,再见!");}public static double calculate(double operand1, double operand2, String operator)double result;switch (operator)case "+":result = operand1 + operand2;break;case "-":result = operand1 - operand2;break;case "*":result = operand1 * operand2;break;case "/":if (operand2 == 0)throw new IllegalArgumentException("除数不能为零!"); }result = operand1 / operand2;break;default:throw new IllegalArgumentException("运算符不合法!"); }return result;}```以上是一个简单的JAVA实现计算器的程序。
面向对象课程设计(Java)题目:简易计算器专业:电子商务班级:1110025学生姓名:指导老师:2013 年 1月 6日目录一、设计内容 (1)二、设计要求 (1)三、总体设计 (1)四、具体设计 (1)五、程序设计 (6)设计体会与小结 (15)简易计算器设计一、设计内容设计一个图形界面(GUI)的应用程序,完成简单的运算。
通过计算器的编辑来检测和提升自己的java能力,并最终完成课程设计报告。
二、设计要求1、应用自己所学课程知识完成对计算器的基本任务。
2、查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。
3、通过应用java程序编写计算器来提升对简单的图形界面的了解和掌握。
三、总体设计该计算器基本运算没有问题,清零、正负号、求倒数、退格功能都能很好的实现,总体能完成一个计算器的基本功能,但仍有许多地方需要改进,比如小数点的实现所存在的一些问题,虽然在基本的运算过程当中不会造成太大影响,但这依然不能认为是一个很好的计算器,同时,在另一方面,该计算器还没能很好的实现连续计算的功能,必须每次按下等号按钮计算出结果后才能用产生的结果接着进行下一次的计算,改进的方法是在运算符上同时注册Result类,让运算符同时拥有计算结果的功能。
四、具体设计1、程序流程图:2、主要代码展示及说明:总体代码的设计:程序主窗体继承JFrame类,使用24个JBotton按钮实现数字和基本功能,并且分别注册监听,采用6行4列网格布局,完成计算器界面的基本设置,最后对按钮进行计算分析,计算并显示结果。
这段代码主要是对程序的主框架进行相应的设置super("简易计算器");setSize(300,260);this.setLayout(new BorderLayout());jPanel1=new JPanel();jPanel1.setLayout(new GridLayout(1,1)); //一行一列的布局jPanel2=new JPanel();jPanel2.setLayout(new GridLayout(6,4)); //六行四列的布局resultField=new JTextField("0");jPanel1.add(resultField);this.add(jPanel1,BorderLayout.NORTH);this.add(jPanel2,BorderLayout.CENTER);设置数字按钮1到9并添加监控以及符号等的添加监控s1=new JButton(" 1 "); s1.addActionListener(this);s2=new JButton(" 2 "); s2.addActionListener(this);s3=new JButton(" 3 "); s3.addActionListener(this);s4=new JButton(" 4 "); s4.addActionListener(this);s5=new JButton(" 5 "); s5.addActionListener(this); s6=new JButton(" 6 "); s6.addActionListener(this); s7=new JButton(" 7 "); s7.addActionListener(this); s8=new JButton(" 8 "); s8.addActionListener(this); s9=new JButton(" 9 "); s9.addActionListener(this); s0=new JButton(" 0 "); s0.addActionListener(this); b1=new JButton(" + "); b1.addActionListener(this); b2=new JButton(" - "); b2.addActionListener(this); b3=new JButton(" * "); b3.addActionListener(this); b4=new JButton(" / "); b4.addActionListener(this);b5=new JButton(" ^ "); b5.addActionListener(this); b6=new JButton(" 开方 "); b6.addActionListener(this); b7=new JButton(" % "); b7.addActionListener(this);b8=new JButton(" x! "); b8.addActionListener(this);b9=new JButton(" 1/x "); b9.addActionListener(this);f1=new JButton(" . "); f1.addActionListener(this); f2=new JButton(" = "); f2.addActionListener(this);f3=new JButton(" C "); f3.addActionListener(this);f4=new JButton(" 负 "); f4.addActionListener(this); f5=new JButton(" 退格 "); f5.addActionListener(this); jPanel2.add(f3);jPanel2.add(b4);jPanel2.add(b3);jPanel2.add(f5);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b5);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f4);jPanel2.add(b6);jPanel2.add(b7);jPanel2.add(b8);jPanel2.add(b9);jPanel2.add(f2);(3)数据输入用方法num(int i)设计如下:public void num(int i){String s = null;s=String.valueOf(i); //返回整数i的字符串表示形式if(end){ //如果数字输入结束,则将文本框置零,重新输入resultField.setText("0");end=false;}if((resultField.getText()).equals("0")){//如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);}else{ //如果文本框的内容不为零,则在内容后面添加数字str = resultField.getText() + s;resultField.setText(str);}以及用JFrame的方法actionPerformed(ActionEvent e)来获取数据(4)符号运算及清零、退格的设计如下:if(add){ // 加法num1=num1 +num2;}else if(sub){ //减法num1=num1 - num2;}else if(mul){ //乘法num1=num1 * num2;}else if(div){ //除法if(num2==0) throw new ArithmeticException("除数不能为零");elsenum1=num1 / num2;}else if(chf){ //乘方if(num2==0) num1=1;elsenum1=Math.pow(num1, num2);}else if(evo){ //开方if(num2<0) throw new ArithmeticException("被开方数不能小于零");else num1=Math.sqrt(num2);}else if(rec){ //倒数if(num2<0) throw new ArithmeticException("分母不能小于零");else num1=1/num2;}else if(per){ //百分num1=num1/100.0;}else if(pur){ //阶乘if(num2<0) throw new ArithmeticException("负数不能求阶乘");else for(int i=1;i<num2;i++){num1=i*num1;}}resultField.setText(String.valueOf(num1));end=true;}else if(e.getSource()==f3){ //实现清零resultField.setText("0");}else if(e.getSource()==f4){ //实现负号if(resultField.getText()!="0"){resultField.setText("-"+resultField.getText());}}else if(e.getSource()==f5){ //实现退格int i;i=(resultField.getText()).length();if(i==1){resultField.setText("0");}else { str=resultField.getText();resultField.setText(str.substring(0,i-1));}}}五、程序设计import java.awt.*;import java.awt.event.*;import javax.swing.*;public class test1 extends JFrame implements ActionListener{ // JFrame jframe1;JPanel jPanel1,jPanel2;JTextField resultField;JButtons1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,b5,b6,b7,b8,b9,f1,f 2,f3,f4,f5; private boolean end,add,sub,mul,div,evo,chf,per,rec,pur;private String str;private double num1,num2;public test1(){super("简易计算器");setSize(300,260);this.setLayout(new BorderLayout());jPanel1=new JPanel();jPanel1.setLayout(new GridLayout(1,1)); //一行一列的布局jPanel2=new JPanel();jPanel2.setLayout(new GridLayout(6,4)); //四行五列的布局resultField=new JTextField("0");jPanel1.add(resultField);this.add(jPanel1,BorderLayout.NORTH);s1=new JButton(" 1 "); s1.addActionListener(this);s2=new JButton(" 2 "); s2.addActionListener(this); s3=new JButton(" 3 "); s3.addActionListener(this); s4=new JButton(" 4 "); s4.addActionListener(this); s5=new JButton(" 5 "); s5.addActionListener(this); s6=new JButton(" 6 "); s6.addActionListener(this); s7=new JButton(" 7 "); s7.addActionListener(this); s8=new JButton(" 8 "); s8.addActionListener(this); s9=new JButton(" 9 "); s9.addActionListener(this); s0=new JButton(" 0 "); s0.addActionListener(this); b1=new JButton(" + "); b1.addActionListener(this); b2=new JButton(" - "); b2.addActionListener(this); b3=new JButton(" * "); b3.addActionListener(this); b4=new JButton(" / "); b4.addActionListener(this);b5=new JButton(" ^ "); b5.addActionListener(this); b6=new JButton(" 开方 "); b6.addActionListener(this); b7=new JButton(" % "); b7.addActionListener(this);b8=new JButton(" x! "); b8.addActionListener(this);b9=new JButton(" 1/x "); b9.addActionListener(this);f1=new JButton(" . "); f1.addActionListener(this); f2=new JButton(" = "); f2.addActionListener(this);f3=new JButton(" C "); f3.addActionListener(this);f4=new JButton(" 负 "); f4.addActionListener(this); f5=new JButton(" 退格 "); f5.addActionListener(this); jPanel2.add(f3);jPanel2.add(b4);jPanel2.add(b3);jPanel2.add(f5);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b5);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f4);jPanel2.add(b6);jPanel2.add(b7);jPanel2.add(b8);jPanel2.add(b9);jPanel2.add(f2);this.add(jPanel2,BorderLayout.CENTER);}public void num(int i){String s = null;s=String.valueOf(i); //返回整数i的字符串表示形式if(end){ //如果数字输入结束,则将文本框置零,重新输入resultField.setText("0");end=false;}if((resultField.getText()).equals("0")){//如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);}else{ //如果文本框的内容不为零,则在内容后面添加数字str = resultField.getText() + s;resultField.setText(str);}}public void actionPerformed(ActionEvent e)throws ArithmeticException {//数字事件if(e.getSource()==s1)num(1);else if(e.getSource()==s2)num(2);else if(e.getSource()==s3)num(3);else if(e.getSource()==s4)num(4);else if(e.getSource()==s5)num(5);else if(e.getSource()==s6)num(6);else if(e.getSource()==s7)num(7);else if(e.getSource()==s8)num(8);else if(e.getSource()==s9)num(9);else if(e.getSource()==s0)num(0);//符号事件else if(e.getSource()==b1)sign(1);else if(e.getSource()==b2)sign(2);else if(e.getSource()==b3)sign(3);else if(e.getSource()==b4)sign(4);else if(e.getSource()==b5)sign(5);else if(e.getSource()==b6)sign(6);else if(e.getSource()==b7)sign(7);else if(e.getSource()==b8)sign(8);else if(e.getSource()==b9)sign(9);else if(e.getSource()==f1){ //实现"."str=resultField.getText();if(str.indexOf(".")<=1){str+=".";resultField.setText(str);}}else if(e.getSource()==f2){ //实现"=" num2=Double.parseDouble(resultField.getText());if(add){ // 加法num1=num1 +num2;}else if(sub){ //减法num1=num1 - num2;}else if(mul){ //乘法num1=num1 * num2;}else if(div){ //除法if (num2==0) throw new ArithmeticException("除数不能为零");elsenum1=num1 / num2;}else if(chf){ //乘方if(num2==0) num1=1;elsenum1=Math.pow(num1, num2);}else if(evo){ //开方if(num2<0) throw new ArithmeticException("被开方数不能小于零");else num1=Math.sqrt(num2);}else if(rec){ //倒数if(num2<0) throw new ArithmeticException("分母不能小于零");else num1=1/num2;}else if(per){ //百分num1=num1/100.0;}else if(pur){ //阶乘if(num2<0) throw new ArithmeticException("负数不能求阶乘");else for(int i=1;i<num2;i++){num1=i*num1;}}resultField.setText(String.valueOf(num1));end=true;}else if(e.getSource()==f3){ //实现清零resultField.setText("0");}else if(e.getSource()==f4){ //实现负号if(resultField.getText()!="0"){resultField.setText("-"+resultField.getText());}}else if(e.getSource()==f5){ //实现退格int i;i=(resultField.getText()).length();if(i==1){resultField.setText("0");}else { str=resultField.getText();resultField.setText(str.substring(0,i-1));}}}public void sign(int s){if(s==1){add=true;sub=false;mul=false;div=false;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==2){add=false;sub=true;mul=false;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==3){add=false;sub=false;mul=true;div=false;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==4){add=false;sub=false;mul=false;div=true;evo=false;chf=false;per=false;pur=false;rec=false;}else if(s==5){add=false;sub=false;mul=false;div=false;evo=false;chf=true;per=false;pur=false;}else if(s==6){ add=false;sub=false;mul=false;div=false;evo=true;chf=false;per=false;pur=false;rec=false;}else if(s==7){ add=false;sub=false;mul=false;div=false;evo=false;chf=false;per=true;pur=false;rec=false;}else if(s==8){ add=false;sub=false;mul=false;div=false;evo=false;chf=false;per=false;pur=true;rec=false;}else if(s==9){ add=false;sub=false;mul=false;evo=false;chf=false;per=false;pur=false;rec=true;}num1=Double.parseDouble(resultField.getText());end=true;}}public class mainclass {public static void main(String[] args){try{test1 th1=new test1();th1.show();}catch (Exception e){System.out.println(e);}}}设计体会与小结经过一周的实习,本学期的java课程设计到此也算告一段落了,经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java基本知识及软件开发的了解。
import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;/使用java 语言开发一个简易计算器/public class TestJsq extends JFrame implements ActionListener, KeyListener {private JTextField jtf;private JButton jb_bk, jb_ce, jb_c;private String xs = "";private double sum = 0;private int fh;public static void main(String[] args) {new TestJsq().creatCUI();}public void creatCUI() {JFrame jf = new JFrame();jf.setTitle("计算器");jtf = new JTextField("0.");jtf.setHorizontalAlignment(JTextField.RIGHT);jf.add(jtf, BorderLayout.NORTH);JPanel jp_main = new JPanel(new BorderLayout());jf.add(jp_main);JPanel jp1 = new JPanel(new GridLayout(1, 3, 1, 1));jb_bk = new JButton("Backspace");jb_bk.setForeground(Color.RED);jb_bk.addActionListener(this);jb_ce = new JButton("CE");jb_ce.setForeground(Color.RED);jb_ce.addActionListener(this);jb_c = new JButton("C");jb_c.setForeground(Color.RED);jb_c.addActionListener(this);jp1.add(jb_bk);jp1.add(jb_ce);jp1.add(jb_c);jp_main.add(jp1, BorderLayout.NORTH);JPanel jp2 = new JPanel(new GridLayout(4, 5, 1, 1));String str[] = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "", "%","1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };for (int i = 0; i < 20; i++) {JButton jb = new JButton(str[i]);jb.addActionListener(this);jb.setForeground(Color.blue);if (i == 3 || i == 8 || i == 13 || i == 18 || i == 19) { jb.setForeground(Color.RED);}jp2.add(jb);}jp_main.add(jp2, BorderLayout.CENTER);jf.setResizable(false);jf.setBounds(50, 50, 350, 350);jf.setVisible(true);}Overridepublic void actionPerformed(ActionEvent e) {String s = e.getActionCommand();if (s.equals("CE") || s.equals("C")) {xs = "";jtf.setText("0.");} else if (s.equals("Backspace")) {String str = xs.substring(0, xs.length() - 1);xs = str;jtf.setText(xs);} else if (s.equals("7") || s.equals("8") || s.equals("9") || s.equals("4") || s.equals("5") || s.equals("6")|| s.equals("1") || s.equals("2") || s.equals("3")|| s.equals("0") || s.equals(".")) {xs = xs + s;jtf.setText(xs);} else if (s.equals("+/-")) {double x = Double.parseDouble(xs);xs="" + (-x);jtf.setText(xs);} else if (s.equals("/")) {fh = 4;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("")) {fh = 3;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("-")) {fh = 2;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("+")) {fh = 1;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("sqrt")) {double x = Double.parseDouble(xs);double x1 = Math.sqrt(x);xs = x1 + "";jtf.setText(xs);} else if (s.equals("%")) {double x = Double.parseDouble(xs);x=0.01 xx;xs=x+"";jtf.setText(xs);} else if (s.equals("1/x")) {if (xs == "0") {jtf.setText("除数不能为0");} else {double x = Double.parseDouble(xs);double x1 = 1 / x;xs = x1 + "";jtf.setText(String.valueOf(xs));}} else if (s.equals("=")) {if (fh = 0) {switch (fh) {case 1:int point1 = xs.indexOf(".");if (point1 = -1) {String s1 = xs.substring(0, point1);String z1 = xs.substring(point1 + 1, xs.length());int z1_num = z1.length();xs = "";double ss1 = Integer.decode(s1)+ (double) Integer.decode(z1) / (10 z1_num);sum = sum + ss1;} else {sum = sum + Integer.decode(xs);xs = "";}fh = 0;break;case 2:int point2 = xs.indexOf(".");if (point2 = -1) {String s2 = xs.substring(0, point2);String z2 = xs.substring(point2 + 1, xs.length());int z2_num = z2.length();xs = "";double ss2 = Integer.decode(s2)+ (double) Integer.decode(z2) / (10 z2_num);sum = sum - ss2;} else {sum = sum - Integer.decode(xs);xs = "";}fh = 0;break;case 3:int point3 = xs.indexOf(".");if (point3 = -1) {String s3 = xs.substring(0, point3);String z3 = xs.substring(point3 + 1, xs.length());int z1_num = z3.length();xs = "";double s4 = Integer.decode(s3)+ (double) Integer.decode(z3) / (10 z1_num);sum = sum s4;} else {sum = sum Integer.decode(xs);xs = "";}fh = 0;break;case 4:int point4 = xs.indexOf(".");if (point4 = -1) {String s4 = xs.substring(0, point4);String z4 = xs.substring(point4 + 1, xs.length());int z4_num = z4.length();xs = "";double s5 = Integer.decode(s4)+ (double) Integer.decode(z4) / (10 z4_num);sum = sum / s5;} else {sum = sum / Integer.decode(xs);xs = "";}fh = 0;break;default:break;}xs = String.valueOf(sum);jtf.setText(xs);fh = 0;} else {jtf.setText(null);}}}Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stub}Overridepublic void keyReleased(KeyEvent e) { // TODO Auto-generated method stub }Overridepublic void keyTyped(KeyEvent e) { // TODO Auto-generated method stub }}。
java简易计算器的设计思路随着计算机技术的不断发展,计算器也已经成为了我们生活中不可或缺的工具之一。
而Java语言作为一种面向对象的编程语言,也可以实现一个简易计算器。
下面,本文将介绍Java简易计算器的设计思路。
首先,我们需要设计一个计算器的图形用户界面(GUI)。
在Java 中,可以使用Swing来构建图形界面。
我们可以添加一个JPanel面板,然后向其中添加一些按钮来实现计算器的数字输入和运算。
例如,我们可以添加一个JButton,标签为“1”,当用户单击该按钮时,将数字1添加到计算器的文本框中。
其次,我们需要一个变量来存储计算器的运算结果。
在用户单击了计算器中的“=”按钮后,我们需要将这个变量中保存的结果显示在计算器的文本框中。
然后,我们需要实现计算器的算法。
不同的运算符号需要不同的算法实现。
例如,加法运算可以通过将两个数相加实现,而乘法运算可以通过将两个数相乘实现。
我们可以通过一个switch语句来判断用户选择的运算符号,然后调用相应的算法实现。
最后,我们需要添加一些边界检查和异常处理。
例如,当用户输入非法字符时,我们需要提示用户输入有误,或者当除数为零时,我们需要提示用户无法进行该运算。
综上所述,Java简易计算器的设计思路包括以下几个步骤:设计图形界面、实现运算结果变量的保存和显示、实现算法、添加边界检查和异常处理。
通过这些步骤的实现,我们可以打造出一个功能简单但实用的Java计算器。
JAVA简易计算器系统流程实现,总体能完成一个计算器的基本功能,但仍有许多地方需要改进,比如小数点的实现所存在的一些问题,虽然在基本的运算过程当中不会造成太大影响,但这依然不能认为是一个很好的计算器,同时,在另一方面,该计算器还没能很好的实现连续计算的功能,必须每次按下等号按钮计算出结果后才能用产生的结果接着进行下一次的计算,改进的方法是在运算符上同时注册Result类,让运算符同时拥有计算结果的功能.实现代码import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import bel;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.SwingConstants;public class Calculator extends WindowAdapter implements ActionListener { JFrame frame;JTextField show;JButton bc, c, ce, ab, jia, jian, cheng, chu, equ, point, sqrt, ds, bfh, zf;// 按钮退格,清空,复位,关于,加,减,乘,除,等号,小数点,2次方根,倒数,百分号,正负号JButton b[] = new JButton[10]; // 按钮数组,数字键0~9double sum = 0, getValue;int i = 0, j = 0, p = 0, l, action;JDialog about;final int slength = 30; // 设置结果显示有效长度public void disp() {frame = new JFrame();frame.setTitle("bbb的个人计算器");frame.setSize(360, 230);frame.setLocation(380, 260);frame.setBackground(Color.LIGHT_GRAY);frame.setLayout(new FlowLayout(FlowLayout.CENTER));frame.setResizable(false);//计算器disTop模块,包括数字显示文本框、back,ce,c,about按钮show = new JTextField(31);show.setText("0");show.setHorizontalAlignment(SwingConstants.RIGHT);show.setEditable(false);frame.add(show);Panel dispTop = new Panel();frame.add(dispTop);dispTop.setLayout(new GridLayout(1, 4, 3, 3));bc = new JButton(" Back ");bc.setForeground(Color.BLUE);dispTop.add(bc);ce = new JButton(" CE ");ce.setForeground(Color.BLUE);dispTop.add(ce);c = new JButton(" C ");c.setForeground(Color.BLUE);dispTop.add(c);//广告按钮,显示计算器制作者ab = new JButton(" About ");ab.setForeground(Color.BLUE);dispTop.add(ab);about = new JDialog(frame, "关于计算器", true);Label ct = new Label("本计算器由 bbb 制作", 1);ct.setForeground(Color.RED);about.add(ct, "Center");about.setSize(200, 100);about.setLocation(500, 300);//主要按钮显示面板包括disLeft和disRightPanel dispMain = new Panel();frame.add(dispMain);dispMain.setLayout(new GridLayout(1, 2, 10, 10));//disLeft面板,包括0-9、+/-、。
这十二个按钮Panel dispLeft = new Panel();dispMain.add(dispLeft);dispLeft.setLayout(new GridLayout(4, 3, 3, 3));Panel dispRight = new Panel();//disRight面板,包括+、-、*、/、sqrt、%、1/x、=这个人几个按钮dispMain.add(dispRight);dispRight.setLayout(new GridLayout(4, 2, 3, 3));//新建0-9这是个按钮,并将其添加到disLeft中for (l = 9; l >= 0; l--) {b[l] = new JButton(String.valueOf(l));dispLeft.add(b[l]);b[l].addActionListener(this);}//新建其余按钮,并分别将其添加到各自的面板中jia = new JButton("+");jia.setForeground(Color.RED); jian = new JButton("-");jian.setForeground(Color.RED); cheng = new JButton("*"); cheng.setForeground(Color.RED); chu = new JButton("/");chu.setForeground(Color.RED); equ = new JButton("=");equ.setForeground(Color.RED); point = new JButton(".");zf = new JButton(" +/- ");sqrt = new JButton("sqrt");bfh = new JButton("%");ds = new JButton("1/x"); dispRight.add(chu);dispRight.add(sqrt); dispRight.add(cheng); dispRight.add(bfh);dispRight.add(jian); dispRight.add(ds);dispRight.add(jia);dispRight.add(equ);dispLeft.add(zf);dispLeft.add(point);//为各个按钮绑定监听器about.addWindowListener(this); bc.addActionListener(this); ce.addActionListener(this);c.addActionListener(this);ab.addActionListener(this); jia.addActionListener(this); jian.addActionListener(this); cheng.addActionListener(this); chu.addActionListener(this); equ.addActionListener(this); point.addActionListener(this); zf.addActionListener(this); sqrt.addActionListener(this); bfh.addActionListener(this); ds.addActionListener(this); frame.addWindowListener(this); frame.setVisible(true);}public void actionPerformed(ActionEvent e) {getValue = Double.valueOf(show.getText()).doubleValue();if (e.getSource() == jia) { // 加运算,可连加if (j == 0) {sum = getValue;} else if (action == 1) {sum += getValue;}setSum();j++;p = 0;i = 0;action = 1;} else if (e.getSource() == jian) { // 减运算,可连减if (j == 0) {sum = getValue;} else if (action == 2) {sum -= getValue;}setSum();j++;p = 0;i = 0;action = 2;} else if (e.getSource() == cheng) { // 乘运算,可连乘if (j == 0) {sum = getValue;} else if (action == 3) {sum *= getValue;}setSum();j++;p = 0;i = 0;action = 3;} else if (e.getSource() == chu) { // 除运算,可连除if (j == 0)sum = getValue;else if (action == 4) {sum /= getValue;}setSum();j++;p = 0;i = 0;action = 4;} else if (e.getSource() == equ) { // 等号,运算最后一个操作数switch (action) {case 1:show.setText(String.valueOf(sum += getValue));break;case 2:show.setText(String.valueOf(sum -= getValue));break;case 3:show.setText(String.valueOf(sum *= getValue));break;case 4:show.setText(String.valueOf(sum /= getValue));break;}setSum();i = 0;j = 0;action = 0;} else if (e.getSource() == point) { // 小数点,只能按一个小数点if (p == 0)show.setText(show.getText() + e.getActionCommand());p = 1;} else if (e.getSource() == c || e.getSource() == ce) { // 清空与复位i = 0;j = 0;p = 0;sum = 0;action = 0;show.setText("0");} else if (e.getSource() == bc) { // 退格String s = show.getText();if (s.length() > 1) {show.setText("");for (l = 0; l < s.length() - 1; l++) { // 按一下,删除尾部一位char a = s.charAt(l);show.setText(show.getText() + a);}} elseshow.setText("0");} else if (e.getSource() == ab) { // 关于about.setVisible(true);} else if (e.getSource() == sqrt) { // 开2次方根sum = Math.sqrt(getValue);setSum();i = 0;} else if (e.getSource() == ds) { // 求倒数sum = 1 / getValue;setSum();i = 0;} else if (e.getSource() == bfh) { // 百分号sum = getValue / 100;setSum();i = 0;} else if (e.getSource() == zf) { // 正负号切换,正号不显示String s = show.getText();char a = s.charAt(0);if (a == '-') {show.setText("");for (l = 1; l < s.length(); l++) { // 去掉负号show.setText(show.getText() + s.charAt(l));}} else if (getValue != 0) { // 加上负号show.setText("-" + s);}}for (l = 0; l < 10; l++) { // 0~9数字键触发if (e.getSource() == b[l]) {if (i == 0)show.setText("");String s = show.getText();if (s.length() < slength)show.setText(show.getText() + e.getActionCommand());if (e.getSource() == b[0] && getValue == 0 && p == 0)show.setText("0");if (e.getSource() != b[0] && getValue == 0 && p == 0)show.setText(e.getActionCommand());i++;// i用来标记数字键触发的状态}}}public void setSum() { // 把计算结果显示出来show.setText(String.valueOf(sum));String s = show.getText();char a = s.charAt((s.length() - 1));char b = s.charAt((s.length() - 2));if (a == '0' && b == '.') { // 如果是整数,则去掉后面的小数点和0 show.setText(String.valueOf(Math.round(sum)));}}public void windowClosing(WindowEvent e) {if (e.getSource() == about)about.setVisible(false);else if (e.getSource() == frame)System.exit(0);}public static void main(String args[]) {new Calculator().disp();}}运行结果整体界面如图所示:测试结果:123+456= 123-456= 123*456=123/456= 1/10=16^0.5=。