java编写计算器 实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。
时间: 2023-07-10 12:37:09 浏览: 114
好的,这是一个比较常见的任务,我可以给您提供一些基本的思路和代码示例,帮助您快速实现一个Java计算器。
首先,您需要创建一个GUI界面,让用户能够输入数字和操作符,并显示计算结果。可以使用Java Swing库来实现GUI界面。
接下来,您需要编写一个计算器类,该类应该包含基本的数学运算方法,例如加、减、乘、除、阶乘、正弦、余弦和指数运算。这些方法可以使用Java Math库中的函数来实现。
下面是一个简单的Java计算器示例代码,可以实现加、减、乘、除、阶乘、正弦、余弦和指数运算:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
private JButton[] numButtons;
private JButton[] opButtons;
private JButton clearButton;
private JButton equalsButton;
private JTextField inputField;
private double num1;
private double num2;
private String operator;
public Calculator() {
// 设置窗口标题和大小
setTitle("Calculator");
setSize(300, 300);
// 创建数字按钮和操作符按钮
numButtons = new JButton[10];
for (int i = 0; i < 10; i++) {
numButtons[i] = new JButton("" + i);
}
opButtons = new JButton[8];
opButtons[0] = new JButton("+");
opButtons[1] = new JButton("-");
opButtons[2] = new JButton("*");
opButtons[3] = new JButton("/");
opButtons[4] = new JButton("!");
opButtons[5] = new JButton("sin");
opButtons[6] = new JButton("cos");
opButtons[7] = new JButton("^");
// 创建清除和等于按钮
clearButton = new JButton("C");
equalsButton = new JButton("=");
// 创建输入框
inputField = new JTextField(20);
// 创建面板并添加组件
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4, 4));
for (int i = 7; i >= 0; i--) {
buttonPanel.add(opButtons[i]);
}
buttonPanel.add(numButtons[7]);
buttonPanel.add(numButtons[8]);
buttonPanel.add(numButtons[9]);
buttonPanel.add(opButtons[4]);
buttonPanel.add(numButtons[4]);
buttonPanel.add(numButtons[5]);
buttonPanel.add(numButtons[6]);
buttonPanel.add(opButtons[5]);
buttonPanel.add(numButtons[1]);
buttonPanel.add(numButtons[2]);
buttonPanel.add(numButtons[3]);
buttonPanel.add(opButtons[6]);
buttonPanel.add(numButtons[0]);
buttonPanel.add(clearButton);
buttonPanel.add(equalsButton);
buttonPanel.add(opButtons[7]);
// 添加监听器
for (int i = 0; i < 10; i++) {
numButtons[i].addActionListener(this);
}
for (int i = 0; i < 8; i++) {
opButtons[i].addActionListener(this);
}
clearButton.addActionListener(this);
equalsButton.addActionListener(this);
// 添加组件到窗口
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(inputField, BorderLayout.NORTH);
contentPane.add(buttonPanel, BorderLayout.CENTER);
}
// 处理按钮事件
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("C")) {
inputField.setText("");
} else if (command.equals("=")) {
num2 = Double.parseDouble(inputField.getText());
if (operator.equals("+")) {
inputField.setText("" + (num1 + num2));
} else if (operator.equals("-")) {
inputField.setText("" + (num1 - num2));
} else if (operator.equals("*")) {
inputField.setText("" + (num1 * num2));
} else if (operator.equals("/")) {
inputField.setText("" + (num1 / num2));
} else if (operator.equals("!")) {
inputField.setText("" + factorial(num1));
} else if (operator.equals("sin")) {
inputField.setText("" + Math.sin(num1));
} else if (operator.equals("cos")) {
inputField.setText("" + Math.cos(num1));
} else if (operator.equals("^")) {
inputField.setText("" + Math.pow(num1, num2));
}
} else {
inputField.setText(inputField.getText() + command);
if (command.equals("+") || command.equals("-") || command.equals("*") || command.equals("/") || command.equals("!") || command.equals("sin") || command.equals("cos") || command.equals("^")) {
num1 = Double.parseDouble(inputField.getText().substring(0, inputField.getText().length() - 1));
operator = command;
inputField.setText("");
}
}
}
// 计算阶乘
private double factorial(double n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setVisible(true);
calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
```
这段代码实现了一个简单的Java计算器,您可以根据自己的需求进行修改和扩展。
阅读全文
相关推荐















