可以用java重新写吗
时间: 2024-09-11 17:13:31 浏览: 24
当然可以,使用Java来实现类似的多功能计算器也非常常见。下面是一个简单的Java类示例,展示了一个具备基本功能的控制台版计算器:
```java
public class SimpleCalculator {
private double memory;
public void start() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入您的操作:");
String input = scanner.nextLine();
// 分割输入,处理不同的操作
String[] parts = input.split(" ");
switch (parts[0]) {
case "+":
calculateAddition(Double.parseDouble(parts[1]), Double.parseDouble(parts[2]));
break;
case "-":
calculateSubtraction(Double.parseDouble(parts[1]), Double.parseDouble(parts[2]));
break;
case "*":
calculateMultiplication(Double.parseDouble(parts[1]), Double.parseDouble(parts[2]));
break;
case "/":
if (Double.parseDouble(parts[2]) != 0) {
calculateDivision(Double.parseDouble(parts[1]), Double.parseDouble(parts[2]));
} else {
System.out.println("错误:除数不能为零");
}
break;
case "sqrt":
calculateSquareRoot(Double.parseDouble(parts[1]));
break;
case "pow":
calculatePower(Double.parseDouble(parts[1]), Double.parseDouble(parts[2]));
break;
case "sin":
case "cos":
case "tan":
calculateTrigonometry(parts[0], Double.parseDouble(parts[1]));
break;
case "clear":
memory = 0;
System.out.println("内存已清空");
break;
case "exit":
System.exit(0); // 程序退出
break;
default:
System.out.println("错误:未知的操作符");
}
}
}
private void calculateAddition(double a, double b) {
System.out.printf("结果: %.2f\n", a + b);
}
// ... (为其他操作编写类似的方法)
private void calculateSquareRoot(double num) {
if (num >= 0) {
System.out.printf("结果: %.2f\n", Math.sqrt(num));
} else {
System.out.println("错误:负数没有实数平方根");
}
}
// ... (省略了具体的计算方法,类似上面的calculateAddition())
public static void main(String[] args) {
SimpleCalculator calculator = new SimpleCalculator();
calculator.start();
}
}
```
这个Java版本的计算器同样包含加法、减法、乘法、除法、平方根、三角函数以及清除内存和退出程序的功能。请注意,为了提高用户体验,实际应用中通常会使用图形用户界面(GUI)库,如Swing或JavaFX。
阅读全文