java编程实现一个加减法计算器。可以使用鼠标来完成加减法运算。GUI界面可以自己灵活设计。有代码并且有关于这个问题的分析与类的设计说明的
时间: 2024-02-25 20:57:04 浏览: 74
基于java的计算器..AWT的图形界面,具有加法,减法,乘法,除法等计算功能.rar
好的,下面是一个简单的Java加减法计算器的实现代码,同时也包含了相关的分析与类的设计说明。
### 分析与类的设计说明
这个加减法计算器需要有一个GUI界面,用户可以通过界面上的按钮来输入数字和运算符,并显示计算结果。GUI界面可以使用Java Swing来实现。
在我们的设计中,我们需要实现一个Calculator类,来处理加减法的计算。这个类应该至少包含以下方法:
- add(double a, double b):实现两个数的加法运算,并返回结果。
- subtract(double a, double b):实现两个数的减法运算,并返回结果。
GUI界面中的每个按钮都需要添加一个ActionListener来响应用户的点击事件。当用户点击数字按钮时,我们需要将对应的数字添加到文本框中。当用户点击运算符按钮时,我们需要读取文本框中的数字,调用Calculator类中对应的方法进行计算,并将结果显示在文本框中。
代码实现如下:
### 代码实现
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextField textField;
private JButton addButton, subtractButton, equalsButton, clearButton;
private double previousValue;
private String previousOperator;
private boolean isPreviousOperatorEquals;
private boolean isNextNumberNegative;
public Calculator() {
super("Java Calculator");
setLayout(new BorderLayout());
// 创建文本框和按钮
textField = new JTextField(20);
addButton = new JButton("+");
subtractButton = new JButton("-");
equalsButton = new JButton("=");
clearButton = new JButton("C");
// 添加按钮的ActionListener
addButton.addActionListener(this);
subtractButton.addActionListener(this);
equalsButton.addActionListener(this);
clearButton.addActionListener(this);
// 创建面板,并将文本框和按钮添加到面板中
JPanel panel = new JPanel();
panel.add(textField);
panel.add(addButton);
panel.add(subtractButton);
panel.add(equalsButton);
panel.add(clearButton);
// 将面板添加到窗口中
add(panel, BorderLayout.CENTER);
// 初始化变量
previousValue = 0;
previousOperator = "+";
isPreviousOperatorEquals = false;
isNextNumberNegative = false;
// 设置窗口属性
setSize(300, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
performOperation("+");
} else if (e.getSource() == subtractButton) {
performOperation("-");
} else if (e.getSource() == equalsButton) {
performOperation("=");
} else if (e.getSource() == clearButton) {
clear();
}
}
private void performOperation(String operator) {
String text = textField.getText().trim();
double number = text.isEmpty() ? 0 : Double.parseDouble(text);
if (isNextNumberNegative) {
number *= -1;
isNextNumberNegative = false;
}
if (operator.equals("=")) {
if (isPreviousOperatorEquals) {
previousValue = calculate(previousValue, previousOperator, number);
} else {
previousValue = number;
isPreviousOperatorEquals = true;
}
textField.setText(Double.toString(previousValue));
} else {
if (isPreviousOperatorEquals) {
previousValue = calculate(previousValue, previousOperator, number);
textField.setText(Double.toString(previousValue));
} else {
isPreviousOperatorEquals = true;
}
previousOperator = operator;
}
}
private double calculate(double a, String operator, double b) {
if (operator.equals("+")) {
return add(a, b);
} else {
return subtract(a, b);
}
}
private double add(double a, double b) {
return a + b;
}
private double subtract(double a, double b) {
return a - b;
}
private void clear() {
textField.setText("");
previousValue = 0;
previousOperator = "+";
isPreviousOperatorEquals = false;
isNextNumberNegative = false;
}
public static void main(String[] args) {
new Calculator();
}
}
```
在这个实现中,我们使用了一个private方法performOperation来处理用户点击运算符按钮的事件。这个方法首先读取文本框中的数字,并根据isNextNumberNegative变量来判断是否需要将下一个输入的数字变为负数。然后,根据传入的运算符来判断是计算结果还是更新运算符。如果运算符为“=”,则调用calculate方法来计算结果,并更新文本框。如果运算符为“+”或“-”,则根据isPreviousOperatorEquals变量来判断是否需要计算结果,以及是否需要更新运算符。
calculate方法根据传入的运算符来调用add或subtract方法来计算结果。
add和subtract方法实现了加减法的计算。
clear方法用于清空文本框和相关变量。
最后,在main方法中创建了一个Calculator对象,启动了这个加减法计算器。
希望这个实现对您有所帮助!
阅读全文