多功能计算机JAVA实现一个简单的多功能计算器 ,可以进行加、减、乘、除、三角函数、乘方、平 方根及阶乘等运算,除此之外,还可以进行清屏,程序可以关闭;
时间: 2024-09-10 20:31:03 浏览: 185
在Java中实现一个多功能计算器,首先我们需要创建一个Calculator类,包含各种基本运算方法以及额外的如三角函数、乘方、平方根和阶乘等功能。这里是一个简单的示例:
```java
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean isRunning = true;
while (isRunning) {
System.out.println("请输入操作或输入'q'退出:");
String input = scanner.nextLine();
if ("q".equals(input)) {
isRunning = false;
System.out.println("计算器已关闭");
} else {
try {
double result = performOperation(input);
System.out.printf("结果: %.2f\n", result);
} catch (Exception e) {
System.out.println("输入无效,请重新尝试");
}
}
}
// 清屏
System.out.print("\033[2J\033[H"); // 使用ANSI escape序列进行清屏
// 关闭Scanner
scanner.close();
}
private static double performOperation(String input) throws Exception {
String[] tokens = input.split(" ");
String operation = tokens[0];
double num1 = Double.parseDouble(tokens[1]);
double num2 = 0;
switch (operation) {
case "+":
return num1 + num2;
case "-":
return num1 - num2;
case "*":
return num1 * num2;
case "/":
if (num2 != 0) {
return num1 / num2;
} else {
throw new Exception("除数不能为零");
}
case "sin":
return Math.sin(num1);
case "cos":
return Math.cos(num1);
case "pow":
num2 = Double.parseDouble(tokens[2]); // 如果有三个操作数,获取第三个
return Math.pow(num1, num2);
case "sqrt":
if (num1 >= 0) {
return Math.sqrt(num1);
} else {
throw new Exception("负数没有实数平方根");
}
case "!":
if (Math.abs(num1) == Math.floor(Math.abs(num1))) { // 阶乘仅对整数有效
long factorial = 1;
for (long i = 1; i <= num1; ++i) {
factorial *= i;
}
return factorial;
} else {
throw new Exception("阶乘只支持正整数");
}
default:
throw new Exception("未知的操作符");
}
}
}
```
在这个例子中,用户通过命令行输入表达式,然后Calculator类解析并执行相应的计算。注意这个版本没有处理更复杂的数学表达式,只是基础的单步操作。