Java实现简易计算器
- 格式:doc
- 大小:119.50 KB
- 文档页数:13
JavaFx-编写⼀个简单的计算器,实现加减乘除0.题⽬描述编写⼀个简单的计算器,完成加、减、乘、除的功能1.源代码import javafx.application.Application;import javafx.stage.Stage;import yout.HBox;import yout.BorderPane;import bel;import javafx.scene.control.TextField;import javafx.scene.control.Button;import javafx.scene.Scene;import javafx.geometry.Insets;import javafx.geometry.Pos;public class Test2 extends Application {private TextField num1 = new TextField();private TextField num2 = new TextField();private TextField res = new TextField();private Button btAdd = new Button("Add");private Button btSub = new Button("Subtract");private Button btMul = new Button("Multiply");private Button btDiv = new Button("Divide");@Overridepublic void start(Stage primaryStage) {HBox top = new HBox();top.setAlignment(Pos.CENTER);top.setPadding(new Insets(5,10,5,10));top.setSpacing(10);top.getChildren().addAll(new Label("Number1"),num1,new Label("Number2"),num2,new Label("Result"),res);HBox bottom = new HBox();bottom.setAlignment(Pos.CENTER);bottom.setPadding(new Insets(5,10,5,10));bottom.setSpacing(10);bottom.getChildren().addAll(btAdd,btSub,btMul,btDiv);BorderPane pane = new BorderPane();pane.setTop(top);pane.setBottom(bottom);btAdd.setOnAction(e -> Add());btSub.setOnAction(e -> Sub());btMul.setOnAction(e -> Mul());btDiv.setOnAction(e -> Div());Scene scene = new Scene(pane, 900, 80);primaryStage.setResizable(false);primaryStage.setScene(scene);primaryStage.setTitle("Calculator");primaryStage.show();}private void Add() {double n1 = Double.parseDouble(num1.getText());double n2 = Double.parseDouble(num2.getText());res.setText(String.format("%.2f", n1+n2));}private void Sub() {double n1 = Double.parseDouble(num1.getText());double n2 = Double.parseDouble(num2.getText());res.setText(String.format("%.2f", n1-n2));}private void Mul() {double n1 = Double.parseDouble(num1.getText());double n2 = Double.parseDouble(num2.getText());res.setText(String.format("%.2f", n1*n2));}private void Div() {double n1 = Double.parseDouble(num1.getText());double n2 = Double.parseDouble(num2.getText());res.setText(String.format("%.2f", n1/n2));}public static void main(String[] args) {unch(args);}}2.运⾏结果3.技术总结 上半部分放⼊⼀个HBox中,下半部分放⼊⼀个HBox中。
⽤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实现简易计算器学院:姓名:学号:班级:20 年月一、实验目的通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。
此次课程设计实训主要是Java语言程序设计的实现。
通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。
二、实验要求用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。
三、详细内容1.界面设计界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:图1-1其中主要代码为:public mainWindow(){this.setTitle("计算器");//用户图形界面标题this.setVisible(true);//用户图形界面可缩小this.setResizable(false);//用户图形界面不可放大this.setSize(350,300);//设置用户图形界面的大小this.setLocation(400,150);//用户图形界面在屏幕中的显示位置JPanel panel1 = new JPanel();//新建一个画板JPanel panel2 = new JPanel();button1 = new JButton("1");...reset = new JButton("CE");Container container = this.getContentPane();container.add(panel2,BorderLayout.NORTH);container.add(panel1);panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列result.setEnabled(false);result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小result.setEditable(false);result.setHorizontalAlignment(SwingConstants.RIGHT);panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));...panel1.add(divide);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果2.四则运算较为简单的实现了简单的加、减、乘、除运算,主要代码如下:ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};3.其他功能另外添加了平方根,倒数,平方等功能,主要代码如下:平方根运算的实现:ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};倒数运算的实现:ActionListener reciprocal1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};平方运算的实现:ActionListener square1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};4.程序测试经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!5.实训小结通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。
java计算器设计实验报告《Java计算器设计实验报告》摘要:本实验报告基于Java语言,设计了一个简单的计算器。
通过使用面向对象的编程方法,实现了基本的加、减、乘、除运算,并且实现了用户界面的交互操作。
本实验报告详细介绍了计算器的设计思路、实现过程和代码结构,并对实验结果进行了分析和总结。
1. 引言计算器是人们日常生活中常用的工具之一,它能够帮助人们进行简单的数学运算。
随着计算器的普及和发展,计算器的功能也越来越丰富,例如科学计算器、金融计算器等。
本实验旨在通过使用Java语言,设计一个简单的计算器,以加深对面向对象编程的理解和应用。
2. 设计思路在设计计算器时,首先需要确定计算器的功能需求,包括加法、减法、乘法、除法等基本运算。
其次,需要考虑用户界面的设计,使用户能够方便地输入数字和选择运算符。
最后,需要考虑计算器的实现方式,包括数据结构的选择、算法的设计等。
3. 实现过程在本实验中,我们使用Java语言和Swing库来实现计算器的设计。
首先,我们创建一个Calculator类来处理计算器的逻辑操作,包括加法、减法、乘法、除法等运算。
然后,我们创建一个CalculatorUI类来处理用户界面的设计,包括数字按钮、运算符按钮和显示屏的设计。
最后,我们将Calculator类和CalculatorUI类进行整合,实现一个完整的计算器。
4. 代码结构以下是计算器的主要代码结构:Calculator类:- add(double a, double b):加法运算- subtract(double a, double b):减法运算- multiply(double a, double b):乘法运算- divide(double a, double b):除法运算CalculatorUI类:- createNumberButton(int number):创建数字按钮- createOperatorButton(String operator):创建运算符按钮- createDisplayScreen():创建显示屏Main类:- main(String[] args):主函数,启动计算器界面5. 实验结果分析通过实验,我们成功地实现了一个简单的计算器,用户能够输入数字并进行加、减、乘、除等运算。
java实验报告——简单计算器的编写五篇范文第一篇:java实验报告——简单计算器的编写JAVA实验报告——简单计算器的编写班级:学号:姓名:一、实验目的1.掌握java图形用户界面(GUI)的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.掌握常用组件的事件接口4.应用awt和swing组件进行应用程序设计二、实验条件1.计算机一台2.java软件开发环境三、实验步骤1、编写代码:mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener {private static final long serialVersionUID =-***457Lprivate class WindowCloser extends WindowAdapter {public void windowClosing(WindowEvent we){System.exit(0);}}int i;private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”, “1”,“2”, “3”, “-”, “.”, “0”, “=”, “+” };JButton[] buttons = new JButton[str.length]; JButton reset = new JButton(“CE”); JTextField display = new JTextField(“0”);public JCalculator(){super(“Calculator”);JPanel panel1 = new JPanel(new GridLayout(4, 4)); for(i = 0;i < str.length;i++){buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(“Center”, display);panel2.add(“East”, reset);getContentPane().setLayout(new BorderLayout()); getContentPane().add(“North”, panel2); getContentPane().add(“Center”, panel1);for(i = 0;i < str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800);setVisible(true);pack();}public void actionPerformed(ActionEvent e){ Object target = e.getSource();String label = e.getActionCommand();if(target == reset)handleReset();else if(“0123456789.”.indexOf(label)> 0)handleNumber(label);elsehandleOperator(label);}boolean isFirstDigit = true;public void handleNumber(String key){if(isFirstDigit)display.setText(key);else if((key.equals(“.”))&&(display.getText().indexOf(“.”)< 0))display.setText(display.getText()+ “.”);else if(!key.equals(“.”))display.setText(display.getText()+ key);isFirstDigit = false;}public void handleReset(){display.setText(“0”);isFirstDigit = true;operator = “=”;}double number = 0.0;String operator = “=”;public void handleOperator(String key){if(operator.equals(“+”))number += Double.valueOf(display.getText());else if(operator.equals(“-”))number-= Double.valueOf(display.getText());else if(operator.equals(“*”))number *= Double.valueOf(display.getText());else if(operator.equals(“/”))number /= Double.valueOf(display.getText());else if(operator.equals(“=”))number = Double.valueOf(display.getText());display.setText(String.valueOf(number));operator = key;isFirstDigit = true;}public static void main(String[] args){new JCalculator();} }2、运行结果,见截图计算测试:123+456=579结果正确,程序无误。
基于java的简易计算器的设计摘要自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了C语言中指针特点,因而变得简单了很多。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,其具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
本文介绍了用java语言编写一个简易计算器。
实现数学上的加、减、乘、除、乘方、开方、阶乘、正弦、余弦运算等相关运算。
利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。
关键词:程序设计;简易计算器;java语言THE DESIGN OF SIMPLE CALCULATOR BASED ON JA V AABSTRACTSince the inception of the java language, java language Take irresistible trend soon beca me widespread international popular object-oriented programming language, both with advan ced language features, and less of the C language pointer characteristics, and thus becomes a l ot simpler . Java is a cross-platform application software can write object-oriented programmi ng language, which has excellent versatility, efficiency, platform portability, and security, are widely used in personal PC, data center, gaming consoles, scientific super-computers, mobile phones and the Internet, also has the world's largest developer of professional community. In t he global cloud computing and mobile Internet industry environment, Java and more have sig nificant advantages and broad prospects.This article describes the use java language a simple calculator. Achieve mathematical addition, subtraction, multiplication, division, involution, evolution, factorial, sine, cosine op erations and other related operations. With this program you can easily carry out daily operati ons of small-scale, small simple, is a useful tool.Key words:program design;simple calculator;java language目录1前言 (1)1.1 课程设计背景 (1)1.2 需求环境 (1)1.3 课程设计思路 (1)2课程设计概要 (2)3 计算器详细设计 (3)3.1 计算器界面……….………….........………………………………………. .33.1.1 CAL主类的显示分布 (3)3.1.2计算器显示界面实现代码 (3)3.2 监听各个按钮的类 (5)3.2.1 编写监听类目的 (5)3.2.2 监听类实现代码 (5)3.3 按键响应类 (7)3.3.1 响应类编写的目的 (7)3.2.2 响应类实现代码 (7)3.3 运算处理类 (9)3.3.1 处理方式 . (9)3.2.2 处理类实现代码 (9)4 运行与调试 (12)4.1 进入程序主界面 (12)4.2 加减乘除功能实现 (12)4.3 正余弦、正切功能实现 (13)4.4 阶乘功能实现 (13)4.5 乘方、开方功能实现 (14)5 实验总结 (15)参考文献 (16)附录:源代码 (17)1 前言1.1 课程设计背景日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。
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.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame{private JPanel jp;private JTextField tAdd1,tAdd2,tAdd3,tSub1,tSub2,tSub3,tMul1,tMul2,tMul3,tDiv1,tDiv2,tDiv3;private JLabel tShow,label1,label2,label3,label4,label5,label6,label7,label8;private JButton result,exit;//构造器public Calculator(){super("简易计算器");Init();}//初始化public void Init(){ //显示区tShow=new JLabel(" 感谢使用简易计算器!"); tShow.setBounds(0, 0, 300, 20);//加法区tAdd1=new JTextField(); tAdd2=new JTextField(); tAdd3=new JTextField();label1=new JLabel("+"); label2=new JLabel("=");tAdd1.setBounds(5, 25, 80, 20); label1.setBounds(85, 25, 15, 15);tAdd2.setBounds(100,25,80,20); label2.setBounds(180,25,15,15);tAdd3.setBounds(190,25,130,20);//减法区tSub1=new JTextField(); tSub2=new JTextField(); tSub3=new JTextField();label3=new JLabel("-"); label4=new JLabel("=");tSub1.setBounds(5, 50, 80, 20); label3.setBounds(85, 50, 15, 15);tSub2.setBounds(100,50,80,20); label4.setBounds(180,50,15,15);tSub3.setBounds(190,50,130,20);//乘法区tMul1=new JTextField(); tMul2=new JTextField(); tMul3=new JTextField();label5=new JLabel("*"); label6=new JLabel("=");tMul1.setBounds(5, 75, 80, 20); label5.setBounds(85,75, 15, 15);tMul2.setBounds(100,75,80,20); label6.setBounds(180,75,15,15);tMul3.setBounds(190,75,130,20);//除法区tDiv1=new JTextField(); tDiv2=new JTextField(); tDiv3=new JTextField();label7=new JLabel("/"); label8=new JLabel("=");tDiv1.setBounds(5, 100, 80, 20); label7.setBounds(85,100, 15, 15);tDiv2.setBounds(100,100,80,20); label8.setBounds(180,100,15,15);tDiv3.setBounds(190,100,130,20);result=new JButton("开始计算");result.setBounds(10,140,100,40);exit=new JButton("退出");exit.setBounds(180,140,100,40);jp=(JPanel)this.getContentPane();jp.setLayout(null);jp.add(tShow); jp.add(tAdd1); jp.add(label1); jp.add(tAdd2); jp.add(label2); jp.add(tAdd3);jp.add(tSub1); jp.add(label3); jp.add(tSub2); jp.add(label4); jp.add(tSub3); jp.add(tMul1);jp.add(tMul2); jp.add(label5); jp.add(tMul3); jp.add(label6); jp.add(tDiv1); jp.add(label7);jp.add(tDiv2); jp.add(label8); jp.add(tDiv3); jp.add(result); jp.add(exit);//动作事件exit.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});result.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Double d = null;String a=null,b=null;a=tAdd1.getText(); b=tAdd2.getText();if(!a.isEmpty()&&!b.isEmpty()) //if(a!=null&b!=null&&a!=""&b!="")不行{d=Double.parseDouble(a)+Double.parseDouble(b);tAdd3.setText(d+""); //将d转换为字符串型// tAdd3.setText(String.valueOf(d));}a=tSub1.getText(); b=tSub2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)-Double.parseDouble(b);tSub3.setText(d+"");}a=tMul1.getText(); b=tMul2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)*Double.parseDouble(b);tMul3.setText(d+"");}a=tDiv1.getText(); b=tDiv2.getText();if(!a.isEmpty()&&!b.isEmpty()){d=Double.parseDouble(a)/Double.parseDouble(b);tDiv3.setText(String.valueOf(d));}}});}//主函数public static void main(String[] args){Calculator cal=new Calculator();cal.setVisible(true);cal.setResizable(false);cal.setSize(330,230);cal.setLocationRelativeTo(null);cal.setDefaultCloseOperation(EXIT_ON_CLOSE);}}。
eclipse实现简单计算器代码.package Computer;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.util.LinkedList;import java.text.NumberFormat;public class Cacultor extends Frame implements ActionListener{/*** @param args*/NumberButton numberButton[];OperationButton operationButton[];Button 小数点按钮,正负号按钮,退格按钮,求倒数按钮,等号按钮,清零按钮;Panel panel;JTextField resultShow;String 运算符号[]={"+","-","*","/"};LinkedList 链表;boolean 是否按下等号=false;public Cacultor(){super("计算器");链表=new LinkedList();numberButton=new NumberButton[10];for(int i=0;i<=9;i++){numberButton[i]=new NumberButton(i);numberButton[i].addActionListener(this);}operationButton=new OperationButton[4];for(int i=0;i<4;i++){operationButton[i]=new OperationButton(运算符号[i]);operationButton[i].addActionListener(this);}小数点按钮=new Button(".");正负号按钮=new Button("+/-");等号按钮=new Button("=");求倒数按钮=new Button("1/x");退格按钮=new Button("退格");清零按钮=new Button("c");清零按钮.setForeground(Color.red);退格按钮.setForeground(Color.red);等号按钮.setForeground(Color.red);求倒数按钮.setForeground(Color.blue);正负号按钮.setForeground(Color.blue);小数点按钮.setForeground(Color.blue);退格按钮.addActionListener(this);清零按钮.addActionListener(this);等号按钮.addActionListener(this);小数点按钮.addActionListener(this);正负号按钮.addActionListener(this);求倒数按钮.addActionListener(this);resultShow=new JTextField(10);resultShow.setHorizontalAlignment(JTextField.RIGHT); resultShow.setForeground(Color.blue);resultShow.setFont(new Font("TimesRoman",Font.PLAIN,14)); resultShow.setBorder(newSoftBevelBorder(BevelBorder.LOWERED));resultShow.setBackground(Color.white);resultShow.setEditable(false);panel=new Panel();panel.setLayout(new GridLayout(4,5));panel.add(numberButton[1]);panel.add(numberButton[2]);panel.add(numberButton[3]);panel.add(operationButton[0]);panel.add(清零按钮);panel.add(numberButton[4]);panel.add(numberButton[5]);panel.add(numberButton[6]);panel.add(operationButton[1]);panel.add(退格按钮);panel.add(numberButton[7]);panel.add(numberButton[8]);panel.add(numberButton[9]);panel.add(operationButton[2]);panel.add(求倒数按钮);panel.add(numberButton[0]);panel.add(正负号按钮);panel.add(小数点按钮);panel.add(operationButton[3]);panel.add(等号按钮);add(panel,BorderLayout.CENTER);add(resultShow,BorderLayout.NORTH);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});setVisible(true);setBounds(100,50,240,180);setResizable(false);validate();}//按钮事件的处理public void actionPerformed(ActionEvent e){if(e.getSource() instanceof NumberButton){NumberButton b=(NumberButton)e.getSource();if(链表.size()==0){int number=b.getNumber();链表.add(""+number);resultShow.setText(""+number);是否按下等号=false;}else if(链表.size()==1&&是否按下等号==false){ int number=b.getNumber();String num=(String)链表.getFirst();String s=num.concat(""+number);链表.set(0, s);resultShow.setText(s);}else if(链表.size()==1&&是否按下等号==true){int number=b.getNumber();链表.removeFirst();链表.add(""+number);是否按下等号=false;resultShow.setText(""+number);}else if(链表.size()==2){int number=b.getNumber();链表.add(""+number);resultShow.setText(""+number);}else if(链表.size()==3){int number=b.getNumber();String num=(String)链表.getLast();String s=num.concat(""+number);链表.set(2, s);resultShow.setText(s);}}else if(e.getSource()instanceof OperationButton){ OperationButton b=(OperationButton)e.getSource();if(链表.size()==1){String fuhao=b.get运算符号();链表.add(fuhao);}else if(链表.size()==2){String fuhao=b.get运算符号();链表.set(1, fuhao);}else if(链表.size()==3){String fuhao=b.get运算符号();String number1=(String)链表.getFirst();String number2=(String)链表.getLast();String 运算符号=(String)链表.get(1);try{double n2=Double.parseDouble(number2); double n=0;if(运算符号.equals("+")){n=n1+n2;}else if(运算符号.equals("-")){n=n1-n2;}else if(运算符号.equals("*")){n=n1*n2;}else if(运算符号.equals("/")){n=n1/n2;}链表.clear();链表.add(""+n);链表.add(fuhao);resultShow.setText(""+n);}catch(Exception ee){}}}else if(e.getSource()==等号按钮){是否按下等号=true;if(链表.size()==1&&链表.size()==2){ String num=(String)链表.getFirst(); resultShow.setText(""+num);}else if(链表.size()==3){String number1=(String)链表.getFirst(); String number2=(String)链表.getLast(); String 运算符号=(String)链表.get(1);try{double n2=Double.parseDouble(number2); double n=0;if(运算符号.equals("+")){n=n1+n2;}else if(运算符号.equals("-")){n=n1-n2;}else if(运算符号.equals("*")){n=n1*n2;}else if(运算符号.equals("/")){n=n1/n2;}resultShow.setText(""+n);链表.set(0, ""+n);链表.removeLast();链表.removeLast();}catch(Exception ee){}}}else if(e.getSource()==小数点按钮){if(链表.size()==0){是否按下等号=false;}else if(链表.size()==1){String dot=小数点按钮.getLabel();String num=(String)链表.getFirst();String s=null;if(num.indexOf(dot)==-1){s=num.concat(dot);链表.set(0, s);}else{s=num;}链表.set(0, s);resultShow.setText(s);}else if(链表.size()==3){String dot=小数点按钮.getLabel(); String num=(String)链表.getLast(); String s=null;if(num.indexOf(dot)==-1){s=num.concat(dot);链表.set(2, s);}else{s=num;}resultShow.setText(s);}}else if(e.getSource()==退格按钮){if(链表.size()==1){String num=(String)链表.getFirst();if(num.length()>=1){num=num.substring(0,num.length()-1); 链表.set(0, num);resultShow.setText(num);}else{链表.removeLast();resultShow.setText("0");}}else if(链表.size()==3){String num=(String)链表.getLast();if(num.length()>=1){num=num.substring(0,num.length()-1); 链表.set(2, num);resultShow.setText(num);}else{链表.removeLast();resultShow.setText("0");}}}else if(e.getSource()==正负号按钮){if(链表.size()==1){String number1=(String)链表.getFirst(); try{double d=Double.parseDouble(number1); d=-1*d;String str=String.valueOf(d);链表.set(0, str);resultShow.setText(str);}catch(Exception ee){}}else if(链表.size()==3){String number2=(String)链表.getLast();try{double d=Double.parseDouble(number2); d=-1*d;String str=String.valueOf(d);链表.set(2, str);resultShow.setText(str);}catch(Exception ee){}}}else if(e.getSource()==求倒数按钮){if(链表.size()==1||链表.size()==2){String number1=(String)链表.getFirst(); try{double d=Double.parseDouble(number1); d=1.0/d;String str=String.valueOf(d);链表.set(0, str);resultShow.setText(str);}catch(Exception ee){}}else if(链表.size()==3){String number2=(String)链表.getLast();try{double d=Double.parseDouble(number2); d=1.0/d;String str=String.valueOf(d);链表.set(0, str);resultShow.setText(str);}catch(Exception ee){}}}else if(e.getSource()==清零按钮){是否按下等号=false;resultShow.setText("0");链表.clear();}}public static void main(String[] args) {// TODO Auto-generated method stub new Cacultor();}}。
java编写的计算器设计报告实验7:综合实验二一、试验目的进一步掌握图形用户界面GUI,了解Swing组件的使用,以及系统提供的该工具的作用,进一步掌握JAVA事件响应机制的原理,更好的掌握面向对象编程的思路。
二、实验要求创建一个界面来实现一个简单的计算器,要求:1、实现最基本的计算器界面,包括:0~9的10个数字按钮,加、减、乘、除、等于5个运算符按钮,一个结果存放的文本区域。
2、实现最基本的加、减、乘、除运算,并能得到正确结果。
3、实现连续的运算,小数点的使用,并考虑各种可能导致异常的情况,将程序作完善;4、可以通过关闭按钮实现关闭窗口。
三、实验步骤、结果1、程序代码:import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent; importjava.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class ZhxCacu extends JFrame implements ActionListener { JPanel jpResult = new JPanel();JPanel jpButton = new JPanel();JTextField jtfResult = new JTextField("0");JButton zero = new JButton("0"); //数字键0JButton one = new JButton("1"); //数字键1JButton two = new JButton("2"); //数字键2JButton three = new JButton("3"); //数字键3JButton four = new JButton("4"); //数字键4JButton five = new JButton("5"); //数字键5JButton six = new JButton("6"); //数字键6JButton seven = new JButton("7"); //数字键7JButton eight = new JButton("8"); //数字键8JButton nine = new JButton("9"); // 数字键9JButton plus = new JButton("+");JButton sub = new JButton("-");JButton mul = new JButton("*");JButton div = new JButton("/");JButton equal = new JButton("=");JButton ce = new JButton("ce"); // 置零键JButton point = new JButton(".");JButton tzero = new JButton("00");//com代表敲击运算符,digit代表敲击数字键boolean com = false;boolean digit = false;float total=0;String sum="";int symbol=0;int b,c=0;public ZhxCacu(){// 添加结果输入框并设置对齐方式jpResult.setLayout(new BorderLayout());jpResult.add(jtfResult);jtfResult.setEditable(false);jtfResult.setHorizontalAlignment(SwingConstants.RIGHT); //将组件添加到窗体上this.add(jpResult,"North");this.add(jpButton,"Center");// 定义按钮区域布局管理器为网格布局jpButton.setLayout(new GridLayout(6, 3, 10, 10));// 添加各个按钮键jpButton.add(seven);jpButton.add(eight);jpButton.add(nine);jpButton.add(four);jpButton.add(five);jpButton.add(six);jpButton.add(one);jpButton.add(two);jpButton.add(three);jpButton.add(zero);jpButton.add(tzero);jpButton.add(plus);jpButton.add(sub);jpButton.add(mul);jpButton.add(div);jpButton.add(point);jpButton.add(equal);jpButton.add(ce);one.addActionListener(this);//对1按钮添加监听事件two.addActionListener(this);//对2按钮添加监听事件three.addActionListener(this);//对3按钮添加监听事件four.addActionListener(this);//对4按钮添加监听事件five.addActionListener(this);//对5按钮添加监听事件six.addActionListener(this);//对6按钮添加监听事件seven.addActionListener(this);//对7按钮添加监听事件eight.addActionListener(this);//对8按钮添加监听事件nine.addActionListener(this);//对9按钮添加监听事件zero.addActionListener(this);//对0按钮添加监听事件ce.addActionListener(this);//对置零按钮添加监听事件plus.addActionListener(this);//对+按钮添加监听事件equal.addActionListener(this);//对=按钮添加监听事件sub.addActionListener(this);//对-按钮添加监听事件mul.addActionListener(this);//对*按钮添加监听事件div.addActionListener(this);//对/按钮添加监听事件tzero.addActionListener(this);//对00按钮添加监听事件point.addActionListener(this);//对.按钮添加监听事件pack();//初始化窗体大小最合适大小this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});this.setSize(300,300);this.setVisible(true);}public static void main(String[] args) {// TODO 自动生成方法存根new ZhxCacu();}public void actionPerformed(ActionEvent e) {// TODO 自动生成方法存根//数字if(e.getSource()==one){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("1");com = false;digit = true;}else{sum = jtfResult.getText()+"1"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==two){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("2");com = false;digit = true;}else{sum = jtfResult.getText()+"2"; jtfResult.setText(sum);}}else if(e.getSource()==three){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("3");com = false;digit = true;}else{sum = jtfResult.getText()+"3"; jtfResult.setText(sum);}}else if(e.getSource()==four){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("4");com = false;digit = true;}else{sum = jtfResult.getText()+"4"; jtfResult.setText(sum);}}else if(e.getSource()==five){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("5");com = false;digit = true;}else{sum = jtfResult.getText()+"5"; jtfResult.setText(sum);}}else if(e.getSource()==six){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("6");com = false;digit = true;}else{sum = jtfResult.getText()+"6"; jtfResult.setText(sum);}}else if(e.getSource()==seven){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("7");com = false;digit = true;}else{sum = jtfResult.getText()+"7";jtfResult.setText(sum);}}else if(e.getSource()==eight){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("8");com = false;digit = true;}else{sum = jtfResult.getText()+"8"; jtfResult.setText(sum);}}else if(e.getSource()==nine){if(com||digit==false){//第一次敲击数字按钮jtfResult.setText("9");com = false;digit = true;}else{sum = jtfResult.getText()+"9"; jtfResult.setText(sum);}}else if(e.getSource()==zero){if(com||digit==false){//第一次敲击数字按jtfResult.setText("0");com = false;digit = true;}else{sum = jtfResult.getText()+"0"; jtfResult.setText(sum);if(Float.parseFloat(sum)!=0){}else{if(b==1){sum = jtfResult.getText()+"0"; jtfResult.setText(sum);}elsejtfResult.setText("0");}}}else if(e.getSource()==tzero){if(com||digit==false){//第一次敲击数字按jtfResult.setText("00");com = false;digit = true;}else{sum = jtfResult.getText()+"00";jtfResult.setText(sum);}}else if(e.getSource()==point){if(com||digit==false){//第一次敲击数字按钮b=1;com = true;digit = false;}else if(c==1); else{b=1;sum = jtfResult.getText()+".";jtfResult.setText(sum);c=1;}}//运算else if(e.getSource()==plus){symbol = 1;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==sub){symbol = 2;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==mul){symbol = 3;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==div){symbol = 4;c=0;total = Float.parseFloat(jtfResult.getText()); com = true;digit = false;}else if(e.getSource()==ce){com = true;digit = false;total=0;sum ="0" ;jtfResult.setText(sum);}//=else if(e.getSource()==equal){com = true;digit = false;switch(symbol){case 1:jtfResult.setText(newFloat(total+Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;b reak;case 2:jtfResult.setText(newFloat(total-Float.parseFloat(jtfResult.getText())).toString());b=0;c=0;break;case 3:jtfResult.setText(newFloat(total*Float.parseFloat(jtfResult.getText())).toString());b=0;c =0;break;case 4:if( Float.parseFloat(jtfResult.getText())==0 ){try{throw new Exception();}catch(Exception a){jtfResult.setText("错误~被除数不能为0,请重新输入:");}}elsejtfResult.setText(newFloat(total/Float.parseFloat(jtfResult.getText())).toString());b=0;c =0;break;}digit=false;total = 0;}}}2、界面:四、实验中的问题以及解决方案:1、问题: 被除数为0解决:抛出异常2、问题: 阻止0、小数点在同一数字中重复出现解决: 设置标志,五、总结:1、进一步了解了项目开发的步骤,思路,以及程序的布局和框架结构,尤其是对JAVA的模块化设计有了更为深入的了解。
Java实现简易计算器,可以计算算术表达式:Java源码如下://GridFrame.java文件import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;//计算机框架布局public class GridFrame extends JFrame{//定义面板,并设置为网格布局,4行4列,组件水平、垂直间距均为3JPanel p=new JPanel(new GridLayout(5,4,3,3));JTextArea out=new JTextArea();//定义文本框String temp="";//定义字符串数组,为按钮的显示文本赋值//注意字符元素的顺序与循环添加按钮保持一致Stringstr[]={"C","(",")","BS","7","8","9","/","4","5","6"," *","1","2","3","-","0",".","=","+"};JButton btn[]=new JButton[str.length]; //声明按钮数组public GridFrame(String s){super(s);//为窗体名称赋值setLayout(new BorderLayout());//定义窗体布局为边界布局//循环定义按钮,并添加到面板中for(int i=0;i<str.length;i++){btn[i]=new JButton(str[i]);btn[i].addActionListener(al);p.add(btn[i]);}//将文本框放置在窗体NORTH位置getContentPane().add(out,BorderLayout.NORTH);out.setRows(2);//将面板放置在窗体CENTER位置getContentPane().add(p,BorderLayout.CENTER);setVisible(true);setSize(350,250);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocationRelativeTo(null);//让窗体居中显示}//实现监听器ActionListener al=new ActionListener(){public void actionPerformed(ActionEvent e){Object currKey=e.getSource();if(currKey==btn[12]){out.setText(out.getText()+"1");}else if(currKey==btn[13]){out.setText(out.getText()+"2");}else if(currKey==btn[14]){out.setText(out.getText()+"3");}else if(currKey==btn[8]){}else if(currKey==btn[9]){ out.setText(out.getText()+"5"); }else if(currKey==btn[10]){ out.setText(out.getText()+"6"); }else if(currKey==btn[4]){ out.setText(out.getText()+"7"); }else if(currKey==btn[5]){ out.setText(out.getText()+"8"); }else if(currKey==btn[6]){ out.setText(out.getText()+"9"); }else if(currKey==btn[16]){ out.setText(out.getText()+"0"); }else if(currKey==btn[17]){ out.setText(out.getText()+"."); }else if(currKey==btn[1]){ out.setText(out.getText()+"("); }else if(currKey==btn[2]){ out.setText(out.getText()+")"); }else if(currKey==btn[7]){ out.setText(out.getText()+"/"); }else if(currKey==btn[11]){}else if(currKey==btn[15]){out.setText(out.getText()+"-");}else if(currKey==btn[19]){out.setText(out.getText()+"+");}else if(currKey==btn[18]){out.setText(out.getText()+"\n=");temp=out.getText();temp=temp.substring(0,out.getText().length()-2);;Calculator cal=new Calculator(temp);out.setText(out.getText()+String.valueOf(cal.getRes ult()));}//清除键if(currKey==btn[0]){out.setText("");}//退格键if(currKey==btn[3]){String str=out.getText();if(str.length()!=0){String str1=str.substring(0, str.length()-1);out.setText(str1);}}}};public static void main(String[]args){GridFrame gl=new GridFrame("简易计算机!");}}//ArithHelper.java文件public class ArithHelper{//默认除法运算精度private static final int DEF_DIV_SCALE=16;//这个类不能实例化private ArithHelper(){}/***提供精确的加法运算。
java 计算器实验报告Java计算器实验报告引言:计算器是我们日常生活中常用的工具,使用计算器可以快速进行数学运算。
在计算器中,我们可以通过输入数字和运算符来执行各种算术操作。
为了更好地理解计算器的工作原理,我们进行了Java计算器的实验。
一、实验目的本次实验的目的是设计和实现一个简单的Java计算器。
通过这个实验,我们可以加深对Java编程语言的理解,并且掌握Java图形用户界面(GUI)的基本知识。
二、实验环境本次实验使用的是Java开发工具包(JDK)和Eclipse集成开发环境(IDE)。
在实验之前,我们需要确保已经正确安装了JDK和Eclipse。
三、实验步骤1. 创建一个新的Java项目,并命名为"Calculator"。
2. 在项目中创建一个新的Java类,命名为"CalculatorGUI"。
3. 在"CalculatorGUI"类中,创建一个窗口,并设置窗口的标题和大小。
4. 在窗口中添加一个文本框,用于显示计算结果。
5. 在窗口中添加一些按钮,用于输入数字和运算符。
6. 为每个按钮添加事件监听器,以便在用户点击按钮时执行相应的操作。
7. 实现计算器的基本功能,包括加法、减法、乘法和除法。
8. 运行程序,测试计算器的功能。
四、实验结果经过实验,我们成功地实现了一个简单的Java计算器。
用户可以通过按钮输入数字和运算符,并且计算器可以正确地执行相应的运算。
计算结果会显示在文本框中。
五、实验总结通过这个实验,我们学习了如何使用Java编程语言创建图形用户界面,并且掌握了Java计算器的基本实现方法。
在实验过程中,我们遇到了一些问题,比如如何处理用户输入错误的情况,如何处理除数为零的情况等。
通过不断调试和改进,我们最终解决了这些问题,并实现了一个功能完善的计算器。
在今后的学习和工作中,我们可以进一步扩展这个计算器的功能,比如添加科学计算功能、实现复杂运算等。
java实现简单的加减乘除计算器本⽂实例为⼤家分享了java实现加减乘除计算器的具体代码,供⼤家参考,具体内容如下代码123456 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.FlowLayout;import javax.swing.*;@SuppressWarnings("unused")class Sumjp {JOptionPane jp = new JOptionPane();Sumjp(String str) {JOptionPane.showMessageDialog(null, str);System.exit(0);}Sumjp(String[] str){}}public class JiSuan extends JFrame implements ActionListener,ItemListener{ /****/private static final long serialVersionUID = 1L;double x1,x2,sum = 0;String f;JTextField txt = new JTextField(30);JTextField txt1 = new JTextField(5);JTextField txt2 = new JTextField(5);JTextField txt3 = new JTextField(5);JLabel lb1 = new JLabel("数据1:");JLabel lb2 = new JLabel("符号:");JLabel lb3 = new JLabel("数据2:");JButton jbtn = new JButton("确定");JiSuan(){setSize(350,150);setVisible(true);setTitle("计算器:");setDefaultCloseOperation(EXIT_ON_CLOSE);setLayout(new FlowLayout());add(lb1);add(txt1);// add(lb2);// add(txt2);JComboBox<String> jc = new JComboBox<String>();jc.addItem("加");jc.addItem("减");jc.addItem("乘");jc.addItem("除");545556575859606162636465666768697071727374757677787980818283848586878889add(jc); add(lb3);add(txt3); add(jbtn); add(txt);validate();jc.addItemListener(this);jbtn.addActionListener(this); } public void itemStateChanged(ItemEvent ie){ f = (String)ie.getItem().toString(); }public void actionPerformed(ActionEvent e){x1 = Double.parseDouble(txt1.getText());//f = txt2.getText(); x2 = Double.parseDouble(txt3.getText()); if(f.equals("加")){ sum = x1 + x2;}if(f.equals("减")){sum = x1 - x2; } if(f.equals("乘")){sum = x1*x2;}if(f.equals("")){ sum = x1/x2; }txt.setText(x1 + f + x2 + "=" + sum);new Sumjp(x1 + f + x2 + "=" + sum);}public static void main(String[] args) {// TODO ⾃动⽣成的⽅法存根new JiSuan();} }⼩编再为⼤家分享⼀段代码,感谢作者分享:利⽤java 语法做⼀个很简单的加减乘除计算器:12345678910111213/* 实现思路:1.选择所有数据从键盘输⼊2.使⽤switch 语句进⾏判断3.需要从控制台上输⼊三次 *第⼀个数字 *运算符*第⼆个数字最终在控制台上显⽰:欢迎使⽤简单计算器系统: 请输⼊第⼀个数字:10 请输⼊运算符:+1415161718192021222324252627282930313233343536373839404142434445464748495051525354请输⼊第⼆个数字:20运算结果:10+20=30s.nextInt(); */public class Calculator {public static void main(String[] args){java.util.Scanner s = new java.util.Scanner(System.in); System.out.println("欢迎使⽤简单计算器");System.out.print("请输⼊第⼀个数字:"); int num1 = s.nextInt();System.out.print("请输⼊运算符:"); String operator = s.next(); System.out.print("请输⼊第⼆个数字:"); int num2 = s.nextInt();int result = 0;switch (operator){case "+":result = num1 + num2;break;case "-":result = num1 - num2; break; case "*": result = num1 * num2; break;case "/":result = num1 * num2;break;case "%": result = num1 % num2; } System.out.println(num1+operator+num2+"="+result); }}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
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简易计算器有所帮助。
《网络编程技术》结课论文2012 — 2013学年第二学期题目:简单计算器程序专业班级:网信10-2学号:************姓名:-----------指导老师:---------日期:2013-06-25目录1引言 (3)2基础理论 (3)2.1 AWT 组件 (3)2.2 Swing 组件 (3)2.3 java事件处理机制 (4)3 功能设计 (5)3.1计算器系统概述 (5)3.2功能模块设计 (6)3.3详细设计 (6)4 系统实现 (7)4.1需求分析 (7)4.2设计思路 (8)4.3主要代码展示及说明 (8)4.4调试与分析 (12)5 总结 (12)参考文献 (13)1引言近年来随着计算机和网络在社会领域的发展,java的应用正在不断地走向深入, Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。
Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。
特别是Java企业应用编程接口为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
本次设计是通过java编程技术来设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算,该计算器可以实现加法、减法、乘法、除法的简单运算,也可以实现一些简单的扩展运算,这次课程设计的主要目的在于检测对java 应用的熟练程度,发现问题并及时改正和提高,同时扩展对java知识的进一步了解和认识,强化自己的编程能力,为将来在新的旅途中能更好的发挥自身的才能!2基础理论2.1 AWT 组件布局管理器管理组件如何放置在容器中,AWT 中最常用的四种布局类:FlowLayout、BorderLayout、GridLayout、CardLayout。
本项目主要采用了GridLayout 布局。
java编写⼀个贷款计算器https:///flueky/article/details/77099454 房贷有两种贷款⽅式:1是等额本息还款;2是等额本⾦还款。
简单的说就是等额本息就是每⽉还款额相等,⽐如⼀个⽉固定还款3000元,每⽉不变,就是这种等额本息还款的⽅式。
另外⼀种就是每⽉还款额不等,⼀个⽉⽐⼀个⽉少点。
但是还款初期还款额⽐较⼤,越往后还款越少。
具体哪种适合⾃⼰要结合⾃⾝的情况。
如果看利息的话第⼆种还款总利息要少于第⼀种。
好了我们现在再说⼀下两者还款的计算⽅式: (⼀)等额本息还款: 每⽉还本付息=【贷款本⾦x⽉利率x(1+⽉利率)^还款⽉数】/【(1+⽉利率)^还款⽉数-1】 每⽉还利息=剩余本⾦x贷款⽉利率(第⼀个⽉的本⾦就是贷款额,逐⽉递减) 每⽉还款本⾦=每⽉还款⾦额-每⽉还利息 剩余本⾦=上⽉剩余本⾦-本⽉偿还本⾦ 还款总利息=贷款额X贷款⽉数x⽉利率x(1+⽉利率)^还款⽉数/【(1+还款⽉数)^还款⽉数-1】-贷款总额 注:^这个符号是次⽅的意思 主要计算公式就是这样,等额本息公式详细推导过程并不是很难,应⽤⾼中阶段的数学知识就可以完全理解清楚。
(⼆)等额本⾦还款 每⽉还本付息=(本⾦/还款⽉数)+(本⾦-累计已还本⾦)x⽉利率 每⽉本⾦=总本⾦/还款⽉数 每⽉利息=(本⾦-累计已还本⾦)x⽉利率 还款总利息=(还款⽉数+1)x贷款额x⽉利率/2java编写⼀个简易版贷款计算器1 import javax.swing.*;2 import java.awt.*;3 import java.awt.event.*;4 import javax.swing.border.*;56 public class LoanCalculator extends JFrame {7 private class ButtonListener implements ActionListener {8 @Override9 public void actionPerformed(ActionEvent e) {10 // TODO Auto-generated method stub11 double interest=12 Double.parseDouble(jtfAnnualInterestRate.getText());13 int year=14 Integer.parseInt(jtfNumberOfYears.getText());15 double loanAmount=16 Double.parseDouble(jtfLoanAmount.getText());1718 double monthlyInterest=interest/1200;19 double monthlyPayment= loanAmount*monthlyInterest/(1-1/Math.pow(1+monthlyInterest,20 year*12));21 double totalPayment=monthlyPayment*year*12;2223 jtfMonthlyPayment.setText(String.format("%.2f", monthlyPayment));24 jtfTotalPayment.setText(String.format("%.2f", totalPayment));25 }26 }2728 private JTextField jtfAnnualInterestRate=new JTextField();29 private JTextField jtfNumberOfYears=new JTextField();30 private JTextField jtfLoanAmount=new JTextField();31 private JTextField jtfMonthlyPayment=new JTextField();32 private JTextField jtfTotalPayment=new JTextField();3334 private JButton jbtComputeLoan=new JButton("Compute Payment");3536 public LoanCalculator(){37 JPanel p1=new JPanel(new GridLayout(5,2));38 p1.add(new JLabel("Annual Interest Rate"));39 p1.add(jtfAnnualInterestRate);40 p1.add(new JLabel("Number of Years"));41 p1.add(jtfNumberOfYears);42 p1.add(new JLabel("Loan Amount"));43 p1.add(jtfLoanAmount);44 p1.add(new JLabel("Monthly Payment"));45 p1.add(jtfMonthlyPayment);46 p1.add(new JLabel("Total Payment"));47 p1.add(jtfTotalPayment);48 p1.setBorder(new TitledBorder("Enter loan amount, interest rate,"49 + " and year"));5051 JPanel p2=new JPanel(new FlowLayout(FlowLayout.RIGHT));52 p2.add(jbtComputeLoan);53 add(p1,BorderLayout.CENTER);54 add(p2,BorderLayout.SOUTH);55 jbtComputeLoan.addActionListener(new ButtonListener());5657 }5859 public static void main(String[] args) {60 // TODO Auto-generated method stub61 LoanCalculator frame=new LoanCalculator();62 frame.setTitle("LoanCalculator");63 frame.pack();64 frame.setLocationRelativeTo(null);65 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);66 frame.setVisible(true);67 }6869 }另⼀种编写⽅式:https:///flueky/article/details/77099454注:利率⼀律按照4.9计算。
java简易计算机代码Java是一种面向对象的编程语言,广泛应用于计算机编程领域。
下面我们来看一段简易的Java代码,实现一个计算器的功能。
我们需要定义一个Calculator类,代码如下:```javapublic class Calculator {// 定义两个整型变量,用于存储输入的数字private int num1;private int num2;// 构造方法,用于初始化Calculator对象public Calculator(int num1, int num2) {this.num1 = num1;this.num2 = num2;}// 加法运算方法public int add() {return num1 + num2;}// 减法运算方法public int subtract() {return num1 - num2;}// 乘法运算方法public int multiply() {return num1 * num2;}// 除法运算方法public double divide() {// 判断除数是否为0,避免除以0的错误if (num2 != 0) {return (double)num1 / num2;} else {System.out.println("除数不能为0!");return 0;}}// 主方法,程序入口public static void main(String[] args) {// 创建一个Calculator对象,传入两个待计算的数值Calculator calculator = new Calculator(10, 5);// 调用加法运算方法,并输出结果int sum = calculator.add();System.out.println("两数之和:" + sum);// 调用减法运算方法,并输出结果int difference = calculator.subtract();System.out.println("两数之差:" + difference);// 调用乘法运算方法,并输出结果int product = calculator.multiply();System.out.println("两数之积:" + product);// 调用除法运算方法,并输出结果double quotient = calculator.divide();if (quotient != 0) {System.out.println("两数之商:" + quotient);}}}```在上面的代码中,我们首先定义了一个Calculator类,包含了两个私有的整型变量num1和num2,用于存储输入的数字。
Java实训作业题目:Java实现简易计算器学院:姓名:学号:班级:20 年月一、实验目的通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。
此次课程设计实训主要是Java语言程序设计的实现。
通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。
二、实验要求用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。
三、详细内容1.界面设计界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:图1-1其中主要代码为:public mainWindow(){this.setTitle("计算器");//用户图形界面标题this.setVisible(true);//用户图形界面可缩小this.setResizable(false);//用户图形界面不可放大this.setSize(350,300);//设置用户图形界面的大小this.setLocation(400,150);//用户图形界面在屏幕中的显示位置JPanel panel1 = new JPanel();//新建一个画板JPanel panel2 = new JPanel();button1 = new JButton("1");...reset = new JButton("CE");Container container = this.getContentPane();container.add(panel2,BorderLayout.NORTH);container.add(panel1);panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列result.setEnabled(false);result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小result.setEditable(false);result.setHorizontalAlignment(SwingConstants.RIGHT);panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));...panel1.add(divide);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果2.四则运算较为简单的实现了简单的加、减、乘、除运算,主要代码如下:ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};3.其他功能另外添加了平方根,倒数,平方等功能,主要代码如下:平方根运算的实现:ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};倒数运算的实现:ActionListener reciprocal1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};平方运算的实现:ActionListener square1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};4.程序测试经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!5.实训小结通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。
学会将书本上的知识运用在实际中,提升了编程能力。
四、源代码import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.xml.bind.DatatypeConverter;public class Calculator{public static void main(String[] args){new mainWindow();//新建主类调用}}class mainWindow extends JFrame{JTextField result = new JTextField("0");//结果栏用于存储运算结果JButton button0;//按钮0JButton button1;//按钮1JButton button2;//按钮2JButton button3;//按钮3JButton button4;//按钮4JButton button5;//按钮5JButton button6;//按钮6JButton button7;//按钮7JButton button8;//按钮8JButton button9;//按钮9JButton reciprocal;//倒数按钮JButton square;//平方按钮JButton sqrt;//平方根按钮JButton reset;//清零按钮JButton add;//加法按钮JButton reduce;//减法按钮JButton multiply;//乘法按钮JButton divide;//除法按钮JButton equal;//等号按钮JButton point;//小数点按钮double a,b,c;String flag;public mainWindow(){this.setTitle("计算器");//用户图形界面标题this.setVisible(true);//用户图形界面可缩小this.setResizable(false);//用户图形界面不可放大this.setSize(350,300);//设置用户图形界面的大小this.setLocation(400,150);//用户图形界面在屏幕中的显示位置JPanel panel1 = new JPanel();//新建一个画板JPanel panel2 = new JPanel();button1 = new JButton("1");button2 = new JButton("2");button3 = new JButton("3");button4 = new JButton("4");button5 = new JButton("5");button6 = new JButton("6");button7 = new JButton("7");button8 = new JButton("8");button9 = new JButton("9");button0 = new JButton("0");reciprocal = new JButton("1/X");square = new JButton("X^2");sqrt = new JButton("√ ̄");add = new JButton("+");reduce = new JButton("-");multiply = new JButton("*");divide = new JButton("/");equal = new JButton("=");point = new JButton(".");reset = new JButton("CE");Container container = this.getContentPane();container.add(panel2,BorderLayout.NORTH);container.add(panel1);panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列result.setEnabled(false);result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小result.setEditable(false);result.setHorizontalAlignment(SwingConstants.RIGHT);panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(square);square.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(sqrt);sqrt.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(reset);reset.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(button7);button1.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(button8);button2.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(button9);button3.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(add);add.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(button4);button4.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(button5);button5.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(button6);button6.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(reduce);reduce.setFont(new Font("Dialog",Font.PLAIN,25)); panel1.add(button1);button7.setFont(new Font("Dialog",Font.PLAIN,20)); panel1.add(button2);button8.setFont(new Font("Dialog",Font.PLAIN,20)); panel1.add(button3);button9.setFont(new Font("Dialog",Font.PLAIN,20)); panel1.add(multiply);multiply.setFont(new Font("Dialog",Font.PLAIN,20)); panel1.add(button0);button0.setFont(new Font("Dialog",Font.PLAIN,20)); panel1.add(point);point.setFont(new Font("Dialog",Font.PLAIN,20));panel1.add(equal);equal.setFont(new Font("Dialog",Font.PLAIN,25)); equal.setForeground(Color.red);//将等号设置为红色panel1.add(divide);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果button0.addActionListener(al0);//设置20个按钮的监听事件button1.addActionListener(al1);button2.addActionListener(al2);button3.addActionListener(al3);button4.addActionListener(al4);button5.addActionListener(al5);button6.addActionListener(al6);button7.addActionListener(al7);button8.addActionListener(al8);button9.addActionListener(al9);reciprocal.addActionListener(reciprocal1);square.addActionListener(square1);sqrt.addActionListener(sqrt1);reset.addActionListener(reset1);add.addActionListener(add1);point.addActionListener(point1);multiply.addActionListener(multiply1);divide.addActionListener(divide1);equal.addActionListener(equal1);reduce.addActionListener(reduce1);}ActionListener al0 = new ActionListener(){ //各个按钮的监听事件实现运算public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "0");}};ActionListener al1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "1");}};ActionListener al2 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "2");}};ActionListener al3 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "3");}};ActionListener al4 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "4");}};ActionListener al5 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "5");}};ActionListener al6 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "6");}};ActionListener al7 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "7");}};ActionListener al8 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "8");}};ActionListener al9 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + "9");}};ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};ActionListener reciprocal1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};ActionListener square1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};ActionListener multiply1 = new ActionListener(){ public void actionPerformed(ActionEvent e){ String str = result.getText();a = DatatypeConverter.parseDouble(str);flag = "*";result.setText("");}};ActionListener divide1 = new ActionListener(){ public void actionPerformed(ActionEvent e){ String str = result.getText();a = DatatypeConverter.parseDouble(str);flag = "/";result.setText("");}};ActionListener add1 = new ActionListener(){ public void actionPerformed(ActionEvent e){ String str = result.getText();a = DatatypeConverter.parseDouble(str);flag = "+";result.setText("");}};ActionListener reduce1 = new ActionListener(){ public void actionPerformed(ActionEvent e){ String str = result.getText();a = DatatypeConverter.parseDouble(str);flag = "-";result.setText("");}};ActionListener reset1 = new ActionListener(){ public void actionPerformed(ActionEvent e){ result.setText("0");}};ActionListener point1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();result.setText(str + ".");}};ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};}。