21xrx.com
2024-12-23 00:09:43 Monday
登录
文章检索 我的文章 写文章
Java编程实现简易计算器
2023-06-14 22:30:05 深夜i     --     --
Java 计算器 简易

随着计算机的发展,计算器已经成为我们生活中必不可少的工具,无论是在学校还是工作中,计算器都有着重要的作用。那么,今天就来一起学习如何使用Java编写一个简易计算器。

在Java中,我们可以通过GUI(图形用户界面)实现计算器的功能。具体的实现过程如下:

首先,在Java中我们可以使用Swing库来实现GUI,这个库提供了一些常见的图形组件,例如按钮、文本框、标签等。我们可以利用这些组件来搭建计算器的界面。

接下来,我们需要考虑如何处理用户输入的数据。在计算器中,用户通常会输入操作符和数字,所以我们需要编写代码来处理这些数据。

在这里,我们可以使用字符串处理来将用户输入的字符串转化为数字和操作符,然后将其传递给计算函数,从而得出结果。

下面是一个简单的示例代码,用于实现两个数的加减乘除操作:


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Calculator implements ActionListener {

  JFrame frame;

  JTextField textField;

  JButton[] numberButtons = new JButton[10];

  JButton[] functionButtons = new JButton[4];

  JButton addButton, subtractButton, multiplyButton, divideButton;

  JButton decimalButton, clearButton, equalsButton;

  JPanel panel;

  double num1 = 0, num2 = 0, result = 0;

  char operator;

  Calculator() {

    frame = new JFrame("计算器");

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setSize(550, 550);

    frame.setLayout(null);

    textField = new JTextField();

    textField.setBounds(50, 25, 400, 50);

    textField.setEditable(false);

    addButton = new JButton("+");

    subtractButton = new JButton("-");

    multiplyButton = new JButton("*");

    divideButton = new JButton("/");

    decimalButton = new JButton(".");

    clearButton = new JButton("清除");

    equalsButton = new JButton("=");

    functionButtons[0] = addButton;

    functionButtons[1] = subtractButton;

    functionButtons[2] = multiplyButton;

    functionButtons[3] = divideButton;

    for(int i=0; i<10; i++) {

      numberButtons[i] = new JButton(String.valueOf(i));

    }

    panel = new JPanel();

    panel.setBounds(50, 100, 400, 400);

    panel.setLayout(new GridLayout(4, 4, 10, 10));

    for(int i=0; i<10; i++) {

      if(i == 0) {

        panel.add(clearButton);

      }

      panel.add(numberButtons[i]);

    }

    for(int i=0; i<4; i++) {

      panel.add(functionButtons[i]);

    }

    panel.add(decimalButton);

    panel.add(equalsButton);

    for(int i=0; i<10; i++) {

      numberButtons[i].addActionListener(this);

    }

    for(int i=0; i<4; i++) {

      functionButtons[i].addActionListener(this);

    }

    decimalButton.addActionListener(this);

    clearButton.addActionListener(this);

    equalsButton.addActionListener(this);

    frame.add(panel);

    frame.add(textField);

    frame.setVisible(true);

  }

  public static void main(String[] args) {

    Calculator calculator = new Calculator();

  }

  @Override

  public void actionPerformed(ActionEvent e) {

    for(int i=0; i<10; i++) {

      if(e.getSource() == numberButtons[i]) {

        textField.setText(textField.getText().concat(String.valueOf(i)));

      }

    }

    if(e.getSource() == decimalButton) {

      textField.setText(textField.getText().concat("."));

    }

    if(e.getSource() == addButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '+';

      textField.setText("");

    }

    if(e.getSource() == subtractButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '-';

      textField.setText("");

    }

    if(e.getSource() == multiplyButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '*';

      textField.setText("");

    }

    if(e.getSource() == divideButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '/';

      textField.setText("");

    }

    if(e.getSource() == equalsButton) {

      num2 = Double.parseDouble(textField.getText());

      switch(operator) {

        case '+':

          result = num1 + num2;

          break;

        case '-':

          result = num1 - num2;

          break;

        case '*':

          result = num1 * num2;

          break;

        case '/':

          result = num1 / num2;

          break;

      }

      textField.setText(String.valueOf(result));

      num1 = result;

    }

    if(e.getSource() == clearButton) {

      textField.setText("");

    }

  }

}

通过这段代码,我们看到了一个简单的Java计算器的实现过程,虽然它没有实现区分乘除法优先级等高级操作,但是对于初学者来说已经足够了。

总之,在Java的学习过程中,编写一个计算器是一个非常有趣、有挑战性的项目。它不仅仅可以帮助我们熟悉Java的语法和库的使用,还可以提高我们的编程能力和思维方式。所以,不妨尝试一下吧。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复