如何使用Java对象语言编写一个加减乘除计算器要有代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Java对象语言编写一个加减乘除计算器要有代码相关的知识,希望对你有一定的参考价值。

如何使用Java对象语言编写一个加减乘除计算器要有代码

下面文件名要为:JiSuanQi.java

import java.awt.*;

import java.awt.event.*;

public class JiSuanQi

   String s="",s1=null,s2=null;

   Frame f=new Frame("计算器");

  TextField tf=new TextField(30);

  Panel p1=new Panel();

  Panel p2=new Panel();

  Panel p3=new Panel();

  Button bt1=new Button("=");

  Button bt2=new Button("删除");

  Button[] bt=new Button[16];

  int id=0;

   public static void main(String[] args)

   

       new JiSuanQi().init();

   

    public void init()

    

       f.setBackground(new Color(85,247,253));

       f.setLayout(new BorderLayout(4,4));

       p2.setLayout(new GridLayout(4,4,4,4));

       p3.setLayout(new BorderLayout(4,4));

       f.setResizable(false);

       f.add(p1,BorderLayout.NORTH);

       f.add(p2);

       p3.add(bt2,BorderLayout.NORTH);

       p3.add(bt1);

       p1.add(tf);

       f.add(p3,BorderLayout.EAST);

       String[] b="1","2","3","+","4","5","6","-","7","8","9","*","0",".","复位","/";

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

       

           bt[i]=new Button(b[i]);

           p2.add(bt[i]);

       

       bt[0].setForeground(Color.blue);

       bt[1].setForeground(Color.blue);

       bt[2].setForeground(Color.blue);

       bt[4].setForeground(Color.blue);

       bt[5].setForeground(Color.blue);

       bt[6].setForeground(Color.blue);

       bt[8].setForeground(Color.blue);

       bt[9].setForeground(Color.blue);

       bt[10].setForeground(Color.blue);

       bt[12].setForeground(Color.blue);

       bt[13].setForeground(Color.blue);

       bt[3].setForeground(Color.red);

       bt[7].setForeground(Color.red);

       bt[11].setForeground(Color.red);

       bt[15].setForeground(Color.red);

       bt[14].setForeground(Color.red);

       bt1.setForeground(Color.red);

       bt2.setForeground(Color.red);

       f.pack();

       f.setVisible(true);

       f.addWindowListener(new WindowAdapter()

       

          public void windowClosing(WindowEvent e)

          

             System.exit(0); 

           

       

       );

       bt[0].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=1;

                 s2+=1;

                 tf.setText(s);

           

       

       );

          bt[1].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=2;

                 s2+=2;

                 tf.setText(s);

           

       

       );

       bt[2].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=3;

                 s2+=3;

                 tf.setText(s);

           

       

       );

       bt[4].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=4;

                 s2+=4;

                 tf.setText(s);

           

       

       );

       bt[5].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=5;

                 s2+=5;

                 tf.setText(s);

           

       

       );

       bt[6].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=6;

                 s2+=6;

                 tf.setText(s);

           

       

       );

       bt[8].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=7;

                 s2+=7;

                 tf.setText(s);

           

       

       );

       bt[9].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=8;

                 s2+=8;

                 tf.setText(s);

           

       

       );

       bt[10].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=9;

                 s2+=9;

                 tf.setText(s);

           

       

       );

       bt[12].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+=0;

                 s2+=0;

                 tf.setText(s);

           

       

       );

       bt[13].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s+='.';

                 s2+='.';

                 tf.setText(s);

           

       

       );

       bt[3].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s1=s;

                 s+='+';

                 id=1;

                 s2="";

                 tf.setText(s);

           

       

       );

       bt[7].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s1=s;

                 s+='-';

                 id=2;

                 s2="";

                 tf.setText(s);

           

       

       );

       bt[11].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s1=s;

                 s+='*';

                 id=3;

                 s2="";

                 tf.setText(s);

           

       

       );

       bt[14].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s="";

                 s2="";

                 tf.setText(s);

           

       

       );

       bt[15].addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 s1=s;

                 s+='/';

                 id=4;

                 s2="";

                 tf.setText(s);

           

       

       );

       bt1.addActionListener(new ActionListener()

       

           public void actionPerformed(ActionEvent e)

           

                 if(id<1) ;

                    else

                     s+='=';

                     double a=Double.parseDouble(s1);

                     double b=Double.parseDouble(s2);

                     double c=0;

                     switch(id)

                     

                       case 1:c=a+b; break;

                       case 2:c=a-b; break;

                       case 3:c=a*b; break;

                       case 4:c=a/b; break;

                                  

                   s+=c;  

                   tf.setText(s);

                             

                 s="";s1="";s2="";id=0;

           

       

       );

       bt2.addActionListener(new ActionListener()

       

               public void actionPerformed(ActionEvent e)

                

             char[] c1;

             char[] c2=new char[s.length()-1];

             c1=s.toCharArray();

             for(int i=0;i<s.length()-1;i++)

                 c2[i]=c1[i];

             s=s.valueOf(c2); 

             

             

             if(id<1)

             

                s1=s;

             

            if(s2.length()>=1)

            

             char[] c3;

             char[] c4=new char[s2.length()-1];   

             c3=s2.toCharArray();

             for(int i=0;i<s2.length()-1;i++)

             c4[i]=c3[i];

             s2=s2.valueOf(c4);   

              

                    tf.setText(s);   

               

       

       );

    

参考技术A 新建一个java类,定义加法的方法。定义方式为声明两个变量,然后相加,赋给第三个变量,并使用return返回出来。见下图所示:
如何使用java实现加减乘除运算
在第一步中的java类中,定义减法的方法。定义方式跟加法类似,只要把加法中的“+”号修改为“-”,再修改方法名。见下图所示:
如何使用java实现加减乘除运算
在第一步中的java类中,定义乘法的方法。定义方式为声明两变量相乘并赋值,返回的类型不再是int,一般则定义为double。见下图所示:
如何使用java实现加减乘除运算
在第一步中的java类中,定义除法的方法。与乘法基本一样。除数不能为0,所以要进行判断一下。见下图所示:
如何使用java实现加减乘除运算
最后在main函数中,实例化该java类,并通过实例化的别名点方法名实现调用加减乘除的方法(如:例子中的TestHello test = new TestHello();test.sum(8, 9);),右键运行控制台打印出结果。见下图所示:
如何使用java实现加减乘除运算
补充一下:细心的同学,应该注意到通过实例化的别名点方法名又赋值给另外一个变量,这个也可以省略,直接修改为System.out.println(int sum = test.sum(8, 9));这种方式打印出来。见下图所示:
如何使用java实现加减乘除运算
使用java实现加减乘除已讲述完毕,相信你会成功实现。另外,所有的方法及结果展示,如下图所示:
如何使用java实现加减乘除运算
如何使用java实现加减乘除运算
参考技术B import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class CalculatorPanel extends Panel implements ActionListener

private final TextField display;
private boolean start=true;
private String op="=";
private double arg=0;

public CalculatorPanel()
setLayout(new BorderLayout());
display = new TextField("0");
display.setEditable(false);
add(display,"North");
Panel p = new Panel();
p.setLayout(new GridLayout(4,4));
String buttons="789/456*123-0.=+";
for (int i = 0; i < buttons.length(); i++)

addButton(p,buttons.substring(i, i+1));

add(p,"Center");


@Override
public void actionPerformed(ActionEvent evt)
String s = evt.getActionCommand();
if ('0' <= s.charAt(0) && s.charAt(0) <= '9'|| s.equals("."))

if (start)

display.setText(s);
else
display.setText(display.getText() + s);

start = false;

else
if (start)
if (s.equals("-"))
display.setText(s);
start = false;

else

op = s;



else
double x = Double.parseDouble(display.getText());
calculate(x);
op = s;
start = true;



public void calculate(double n)
if (op.equals("+")) arg += n;
else if (op.equals("-")) arg -= n;
else if (op.equals("*")) arg *= n;
else if (op.equals("/")) arg /= n;
else if (op.equals("=")) arg = n;
display.setText("" + arg);


private void addButton(Container c, String s)
Button b = new Button(s);
c.add(b);
b.addActionListener(this);


class CalculatorFrame extends Frame


public CalculatorFrame()
setTitle("Calculator");
setSize(300,200);
setResizable(false);
// pack();

addWindowListener(new WindowAdapter()

public void windowClosing(WindowEvent e)

System.exit(0);


);
this.add(new CalculatorPanel());



public class MyAWTCalculator
public static void main(String[] args)
// TODO code application logic here
CalculatorFrame calculatorframe = new CalculatorFrame();
calculatorframe.setVisible(true);


怎么用eclipse去编写一个计算器?

我编写出来之后,框架什么的都有了,按钮的话,按下去也是会在文本框那里显示,可是我不知道要调用什么函数才能让数字能连续性的按出来,还有加减乘除四则运算,要怎么去实现?我现在的面板是这样的

eclipse中一般是使用java swing做界面,计算器的函数功能使用一些工具函数,示例如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener
private static final long serialVersionUID = 8199443193151152362L;
private JButton bto_s=new JButton("sqrt"),bto_zf=new JButton("+/-"),bto_ce=new JButton("CE"),bto_c=new JButton("C"),bto_7=new JButton("7"),
bto_8=new JButton("8"),bto_9=new JButton("9"),bto_chu=new JButton("/"),bto_4=new JButton("4"),bto_5=new JButton("5"),
bto_6=new JButton("6"),bto_cheng=new JButton("*"),bto_1=new JButton("1"),bto_2=new JButton("2"),bto_3=new JButton("3"),
bto_jian=new JButton("-"),bto_0=new JButton("0"),bto_dian=new JButton("."),bto_deng=new JButton("="),bto_jia=new JButton("+");
JButton button[]=bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,
    bto_0,bto_dian,bto_deng,bto_jia;
private JTextField text_double;// = new JTextField("0");
private String operator = "="; //当前运算的运算符
private boolean firstDigit = true; // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
private double resultNum = 0.0; // 计算的中间结果
private boolean operateValidFlag = true; //判断操作是否合法
public Calculator()

   super("Calculator");
   this.setBounds(300, 300, 300, 300);
   this.setResizable(false);
   this.setBackground(Color.orange);
   this.setDefaultCloseOperation(EXIT_ON_CLOSE);
   this.getContentPane().setLayout(new BorderLayout());//设置布局
   text_double=new JTextField("0",20);//设置文本区
   text_double.setHorizontalAlignment(JTextField.RIGHT);//设置水平对齐方式未右对齐
   this.getContentPane().add(text_double,BorderLayout.NORTH);//将文本区添加到Content北部
   JPanel panel=new JPanel(new GridLayout(5,4));//在内容窗口添加一个网格布局
   this.getContentPane().add(panel);//添加panel面板
   for(int i=0;i<button.length;i++)//在面板上添加按钮
    panel.add(button[i]);
  
   for(int i=0;i<button.length;i++)
   button[i].addActionListener(this);//为按钮注册
   text_double.setEditable(false);//文本框不可编辑
   text_double.addActionListener(this);//
  
   this.setVisible(true);

public void actionPerformed(ActionEvent e)//

   String c= e.getActionCommand();//返回与此动作相关的命令字符串。
   if(c.equals("C"))
    handleC();           //用户按了“C”键
   
   else if (c.equals("CE"))       // 用户按了"CE"键
   
    text_double.setText("0");
   
   else if ("0123456789.".indexOf(c) >= 0) // 用户按了数字键或者小数点键
   
    handleNumber(c); // handlezero(zero);
    else            //用户按了运算符键
   
               handleOperator(c);
   

private void handleC()       // 初始化计算器的各种值

   text_double.setText("0");
   firstDigit = true;
   operator = "=";
   
private void handleNumber(String button) 
   if (firstDigit)//输入的第一个数字
   
   text_double.setText(button);
    else if ((button.equals(".")) && (text_double.getText().indexOf(".") < 0))//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面
    //如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1
   
   text_double.setText(text_double.getText() + ".");
    else if (!button.equals("."))//   如果输入的不是小数点,则将数字附在结果文本框的后面
   
   text_double.setText(text_double.getText() + button);
   
//   以后输入的肯定不是第一个数字了
   firstDigit = false;
   
private void handleOperator(String button) 
  
   if (operator.equals("/")) 
//   除法运算
//   如果当前结果文本框中的值等于0
   if (getNumberFromText() == 0.0)
//   操作不合法
   operateValidFlag = false;
   text_double.setText("除数不能为零");
    else 
   resultNum /= getNumberFromText();
   
    else if (operator.equals("+"))
//   加法运算
   resultNum += getNumberFromText();
    else if (operator.equals("-"))
//   减法运算
   resultNum -= getNumberFromText();
    else if (operator.equals("*"))
//   乘法运算
   resultNum *= getNumberFromText();
    else if (operator.equals("sqrt")) 
//   平方根运算
    if(getNumberFromText()<0)
     operateValidFlag = false;
    text_double.setText("被开方数不能为负数");
    else
   resultNum = Math.sqrt(resultNum);
   
   else if (operator.equals("+/-"))
//    正数负数运算
    resultNum = resultNum * (-1);
     else if (operator.equals("="))
//    赋值运算
    resultNum = getNumberFromText();
    
   if (operateValidFlag) 
//    双精度浮点数的运算
    long t1;
    double t2;
    t1 = (long) resultNum;
    t2 = resultNum - t1;
    if (t2 == 0) 
    text_double.setText(String.valueOf(t1));
     else 
    text_double.setText(String.valueOf(resultNum));
    
    
   operator = button; //运算符等于用户按的按钮
   firstDigit = true;
   operateValidFlag = true;

private double getNumberFromText() //从结果的文本框获取数字

   double result = 0;
   try 
   result = Double.valueOf(text_double.getText()).doubleValue(); // ValueOf()返回表示指定的 double 值的 Double 实例
    catch (NumberFormatException e)
   
   return result;
   
public static void main(final String[] args) 
new Calculator();

参考技术A

用eclipse编写计算器的步骤如下:

1、新建Java项目。打开eclipse,【新建】|【Java项目】命令,弹出【创建Java项目】对话框,在【项目名】里输入要创建的项目名eclipsehello1。

2、新建一个命名为Calculator .Java类。打开eclipse,【新建】|【类】命令,弹出【新建Java类】对话框。

3、在代码编辑区输入以下内容并保存:import java.awt.*;import java.applet.*;public class Calculator extends Applet TextField tfAnswer; //显示输入和结果的文本域 Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision; //运算符按钮 Button[] b=new Button[10];  //数字按钮。

4、String currentOp,preOp; //当前操作和上一步操作 String foreText,backText; //当前输入和上一次输入 boolean isFloat = false; //运算类型标志。

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。

就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

参考技术B import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener
private static final long serialVersionUID = 8199443193151152362L;
private JButton bto_s=new JButton("sqrt"),bto_zf=new JButton("+/-"),bto_ce=new JButton("CE"),bto_c=new JButton("C"),bto_7=new JButton("7"),
bto_8=new JButton("8"),bto_9=new JButton("9"),bto_chu=new JButton("/"),bto_4=new JButton("4"),bto_5=new JButton("5"),
bto_6=new JButton("6"),bto_cheng=new JButton("*"),bto_1=new JButton("1"),bto_2=new JButton("2"),bto_3=new JButton("3"),
bto_jian=new JButton("-"),bto_0=new JButton("0"),bto_dian=new JButton("."),bto_deng=new JButton("="),bto_jia=new JButton("+");
JButton button[]=bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,
bto_0,bto_dian,bto_deng,bto_jia;
private JTextField text_double;// = new JTextField("0");
private String operator = "="; //当前运算的运算符
private boolean firstDigit = true; // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
private double resultNum = 0.0; // 计算的中间结果
private boolean operateValidFlag = true; //判断操作是否合法
public Calculator()

super("Calculator");
this.setBounds(300, 300, 300, 300);
this.setResizable(false);
this.setBackground(Color.orange);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(new BorderLayout());//设置布局
text_double=new JTextField("0",20);//设置文本区
text_double.setHorizontalAlignment(JTextField.RIGHT);//设置水平对齐方式未右对齐
this.getContentPane().add(text_double,BorderLayout.NORTH);//将文本区添加到Content北部
JPanel panel=new JPanel(new GridLayout(5,4));//在内容窗口添加一个网格布局
this.getContentPane().add(panel);//添加panel面板
for(int i=0;i<button.length;i++)//在面板上添加按钮
panel.add(button[i]);

for(int i=0;i<button.length;i++)
button[i].addActionListener(this);//为按钮注册
text_double.setEditable(false);//文本框不可编辑
text_double.addActionListener(this);//

this.setVisible(true);

public void actionPerformed(ActionEvent e)//

String c= e.getActionCommand();//返回与此动作相关的命令字符串。
if(c.equals("C"))
handleC(); //用户按了“C”键

else if (c.equals("CE")) // 用户按了"CE"键

text_double.setText("0");

else if ("0123456789.".indexOf(c) >= 0) // 用户按了数字键或者小数点键

handleNumber(c); // handlezero(zero);
else //用户按了运算符键

handleOperator(c);


private void handleC() // 初始化计算器的各种值

text_double.setText("0");
firstDigit = true;
operator = "=";

private void handleNumber(String button)
if (firstDigit)//输入的第一个数字

text_double.setText(button);
else if ((button.equals(".")) && (text_double.getText().indexOf(".") < 0))//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面
//如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1

text_double.setText(text_double.getText() + ".");
else if (!button.equals("."))// 如果输入的不是小数点,则将数字附在结果文本框的后面

text_double.setText(text_double.getText() + button);

// 以后输入的肯定不是第一个数字了
firstDigit = false;

private void handleOperator(String button)

if (operator.equals("/"))
// 除法运算
// 如果当前结果文本框中的值等于0
if (getNumberFromText() == 0.0)
// 操作不合法
operateValidFlag = false;
text_double.setText("除数不能为零");
else
resultNum /= getNumberFromText();

else if (operator.equals("+"))
// 加法运算
resultNum += getNumberFromText();
else if (operator.equals("-"))
// 减法运算
resultNum -= getNumberFromText();
else if (operator.equals("*"))
// 乘法运算
resultNum *= getNumberFromText();
else if (operator.equals("sqrt"))
// 平方根运算
if(getNumberFromText()<0)
operateValidFlag = false;
text_double.setText("被开方数不能为负数");
else
resultNum = Math.sqrt(resultNum);

else if (operator.equals("+/-"))
// 正数负数运算
resultNum = resultNum * (-1);
else if (operator.equals("="))
// 赋值运算
resultNum = getNumberFromText();

if (operateValidFlag)
// 双精度浮点数的运算
long t1;
double t2;
t1 = (long) resultNum;
t2 = resultNum - t1;
if (t2 == 0)
text_double.setText(String.valueOf(t1));
else
text_double.setText(String.valueOf(resultNum));


operator = button; //运算符等于用户按的按钮
firstDigit = true;
operateValidFlag = true;

private double getNumberFromText() //从结果的文本框获取数字

double result = 0;
try
result = Double.valueOf(text_double.getText()).doubleValue(); // ValueOf()返回表示指定的 double 值的 Double 实例
catch (NumberFormatException e)

return result;

public static void main(final String[] args)
new Calculator();

本回答被提问者采纳
参考技术C m_first=m_firzorf*(m_firstz m_firstx); //计算出第一个数 m_x=m_复杂加分加money :-) 建议你去CSDN,在那里你能找到很多你需要的

以上是关于如何使用Java对象语言编写一个加减乘除计算器要有代码的主要内容,如果未能解决你的问题,请参考以下文章

java:编写一个计算器小程序,要求可以做加减乘除运算

怎样用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器?

使用javafx技术编写一个计算器的程序,在计算器的界面上能进行加减乘除的操作

用C++编写一个小型复数计算器

c语言中编写程序,输入2个数,定义四个函数,分别实现加减乘除四则运算,要使用函数。计算除法时要判断

求简单java写计算器代码加减乘除