用java编写一个计算器,并能执行以下功能3、基本功能要求如下: (1)要求计算器至少能够实现基本的加减乘除运算和清空功能。 (2)C按钮用于实现清空操作,直接将显示置零。 以上为基本功能,同学们跟着资料训练即可得到基本功能。在充分完全理解代码并通过考勤、答辩、完成报告情况下可得合格。想要更好的成绩,需要有扩展功能,有自己想的特色的扩展功能。 4、扩展功能: (1)实际上按资料做完的计算器存在一定问题,比如连续的加减乘除并没有实现。例如输入7*8然后不输入=号,而是输入+号,这个时候不能得到结果。 (2)能否有更多的计算功能,比如开方等 (3)除了显示结果,还有显示输入。比如:当你输入7+8+9的时候,屏幕有两行,第一显示7+8+9,第2行显示结果24 (4)在c基础上能否实现括号功能 其他:更多功能(进制转换)、更漂亮界面、更方便的操作、支持对大数的加减法、支持对运算结果的保存与读取。等等等
时间: 2024-02-19 07:59:26 浏览: 84
java实现计算器的基本功能
好的,我可以给你提供一个Java计算器的代码框架,你可以在此基础上添加扩展功能。以下是一个简单的Java计算器的实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField textField; // 显示计算结果的文本框
private JButton[] numberButtons; // 数字按钮
private JButton[] operatorButtons; // 运算符按钮
private JButton clearButton; // C按钮
private JButton equalsButton; // =按钮
public Calculator() {
// 设置窗口标题
setTitle("计算器");
// 创建文本框
textField = new JTextField(12);
textField.setEditable(false);
textField.setHorizontalAlignment(JTextField.RIGHT);
// 创建数字按钮
numberButtons = new JButton[10];
for (int i = 0; i < 10; i++) {
numberButtons[i] = new JButton(String.valueOf(i));
numberButtons[i].addActionListener(this);
}
// 创建运算符按钮
operatorButtons = new JButton[4];
operatorButtons[0] = new JButton("+");
operatorButtons[1] = new JButton("-");
operatorButtons[2] = new JButton("*");
operatorButtons[3] = new JButton("/");
for (int i = 0; i < 4; i++) {
operatorButtons[i].addActionListener(this);
}
// 创建C按钮
clearButton = new JButton("C");
clearButton.addActionListener(this);
// 创建=按钮
equalsButton = new JButton("=");
equalsButton.addActionListener(this);
// 创建面板
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4));
panel.add(numberButtons[7]);
panel.add(numberButtons[8]);
panel.add(numberButtons[9]);
panel.add(operatorButtons[0]);
panel.add(numberButtons[4]);
panel.add(numberButtons[5]);
panel.add(numberButtons[6]);
panel.add(operatorButtons[1]);
panel.add(numberButtons[1]);
panel.add(numberButtons[2]);
panel.add(numberButtons[3]);
panel.add(operatorButtons[2]);
panel.add(clearButton);
panel.add(numberButtons[0]);
panel.add(equalsButton);
panel.add(operatorButtons[3]);
// 添加组件到窗口
add(textField, BorderLayout.NORTH);
add(panel, BorderLayout.CENTER);
// 设置窗口大小、可见性、关闭方式
setSize(200, 250);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("C")) {
textField.setText("");
} else if (command.equals("=")) {
try {
double result = evaluate(textField.getText());
textField.setText(String.valueOf(result));
} catch (Exception ex) {
textField.setText("Error");
}
} else {
textField.setText(textField.getText() + command);
}
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
}
private static double evaluate(String expression) throws Exception {
// 使用JavaScript引擎来计算表达式的值
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
return (double) engine.eval(expression);
}
}
```
以上代码实现了一个简单的计算器,包括数字按钮、运算符按钮、C按钮和=按钮。你可以在此基础上添加扩展功能。例如,要实现连续的加减乘除和括号功能,你可以修改evaluate()函数来实现。
希望我的回答能对你有所帮助。
阅读全文