21xrx.com
2024-09-19 08:19:06 Thursday
登录
文章检索 我的文章 写文章
作为一名Java程序员
2023-06-15 19:43:10 深夜i     --     --
Java 简易计算器 代码示例

作为一名Java程序员,我经常需要实现一些简单的计算器,以便快速地计算一些数字。在这篇文章中,我将为大家展示如何使用Java语言来实现一个简易计算器。

我们通过以下步骤来编写一个简单的计算器。

1.创建用户界面

首先,我们需要创建一个用户界面,用户可以在该界面上输入数字和操作符。我们可以使用Java Swing来实现这个目标。下面是一个使用Java Swing创建的简单计算器界面:


import java.awt.*;

import javax.swing.*;

public class CalculatorUI extends JFrame {

  private JTextField inputField;

  private JButton addButton, subtractButton, multiplyButton, divideButton, equalsButton;

  private Double currentNumber;

  private String selectedOperator;

  public CalculatorUI() {

    setTitle("简易计算器");

    setSize(300, 200);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    panel.setLayout(new GridLayout(2, 1));

    inputField = new JTextField();

    inputField.setFont(new Font("宋体", Font.PLAIN, 24));

    panel.add(inputField);

    JPanel buttonPanel = new JPanel();

    buttonPanel.setLayout(new GridLayout(1, 5));

    addButton = new JButton("+");

    addButton.addActionListener(event -> operatorButtonClicked("+"));

    buttonPanel.add(addButton);

    subtractButton = new JButton("-");

    subtractButton.addActionListener(event -> operatorButtonClicked("-"));

    buttonPanel.add(subtractButton);

    multiplyButton = new JButton("*");

    multiplyButton.addActionListener(event -> operatorButtonClicked("*"));

    buttonPanel.add(multiplyButton);

    divideButton = new JButton("/");

    divideButton.addActionListener(event -> operatorButtonClicked("/"));

    buttonPanel.add(divideButton);

    equalsButton = new JButton("=");

    equalsButton.addActionListener(event -> equalsButtonClicked());

    buttonPanel.add(equalsButton);

    panel.add(buttonPanel);

    add(panel);

    setVisible(true);

  }

  private void operatorButtonClicked(String operator) {

    currentNumber = Double.parseDouble(inputField.getText());

    selectedOperator = operator;

    inputField.setText("");

  }

  private void equalsButtonClicked() {

    if (currentNumber == null || selectedOperator == null)

      return;

    

    Double secondNumber = Double.parseDouble(inputField.getText());

    Double result = 0.0;

    switch (selectedOperator) {

      case "+":

        result = currentNumber + secondNumber;

        break;

      case "-":

        result = currentNumber - secondNumber;

        break;

      case "*":

        result = currentNumber * secondNumber;

        break;

      case "/":

        result = currentNumber / secondNumber;

        break;

    }

    inputField.setText(Double.toString(result));

    currentNumber = null;

    selectedOperator = null;

  }

  public static void main(String[] args) {

    CalculatorUI ui = new CalculatorUI();

  }

}

2.实现计算器逻辑

在这个步骤中,我们需要编写代码来实现计算器的逻辑。当用户点击计算按钮时,我们需要从用户输入的数字中解析出两个数字,并将它们应用于所选的操作符上。然后,将计算结果显示在计算器界面上。

下面是计算器逻辑的代码:


private void operatorButtonClicked(String operator) {

    currentNumber = Double.parseDouble(inputField.getText());

    selectedOperator = operator;

    inputField.setText("");

  }

  private void equalsButtonClicked() {

    if (currentNumber == null || selectedOperator == null)

      return;

    

    Double secondNumber = Double.parseDouble(inputField.getText());

    Double result = 0.0;

    switch (selectedOperator) {

      case "+":

        result = currentNumber + secondNumber;

        break;

      case "-":

        result = currentNumber - secondNumber;

        break;

      case "*":

        result = currentNumber * secondNumber;

        break;

      case "/":

        result = currentNumber / secondNumber;

        break;

    }

    inputField.setText(Double.toString(result));

    currentNumber = null;

    selectedOperator = null;

  }

3.编写测试代码

最后,我们需要编写测试代码来确保我们的计算器能够正确地工作。下面是测试代码:


import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorUITest {

  @Test

  public void testAddition() {

    CalculatorUI ui = new CalculatorUI();

    ui.inputField.setText("2");

    ui.addButton.doClick();

    ui.inputField.setText("3");

    ui.equalsButton.doClick();

    assertEquals("5.0", ui.inputField.getText());

  }

  @Test

  public void testSubtraction() {

    CalculatorUI ui = new CalculatorUI();

    ui.inputField.setText("5");

    ui.subtractButton.doClick();

    ui.inputField.setText("2");

    ui.equalsButton.doClick();

    assertEquals("3.0", ui.inputField.getText());

  }

  @Test

  public void testMultiplication() {

    CalculatorUI ui = new CalculatorUI();

    ui.inputField.setText("2");

    ui.multiplyButton.doClick();

    ui.inputField.setText("3");

    ui.equalsButton.doClick();

    assertEquals("6.0", ui.inputField.getText());

  }

  @Test

  public void testDivision() {

    CalculatorUI ui = new CalculatorUI();

    ui.inputField.setText("6");

    ui.divideButton.doClick();

    ui.inputField.setText("3");

    ui.equalsButton.doClick();

    assertEquals("2.0", ui.inputField.getText());

  }

}

以上代码演示了如何使用Java语言实现一个简易计算器。我们通过Java Swing创建了用户界面,并使用 Java编写计算器逻辑。通过测试代码可以确保我们的计算器能够正确地工作。总的来说,这是一个非常有用且易于实现的项目,非常适合初学者。

  
  

评论区

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