用Java写一个科学计算器
时间: 2024-12-22 11:25:59 浏览: 9
编写一个简单的科学计算器程序,我们可以创建一个`Calculator`类,它包含基本的算术运算方法如加减乘除,以及一些额外的功能如平方根、指数和对数等。下面是一个简化的示例:
```java
import java.util.Scanner;
public class Calculator {
public static double add(double num1, double num2) {
return num1 + num2;
}
public static double subtract(double num1, double num2) {
return num1 - num2;
}
public static double multiply(double num1, double num2) {
return num1 * num2;
}
public static double divide(double num1, double num2) {
if (num2 != 0) {
return num1 / num2;
} else {
throw new IllegalArgumentException("除数不能为零");
}
}
public static double squareRoot(double num) {
if (num >= 0) {
return Math.sqrt(num);
} else {
throw new IllegalArgumentException("平方根只能计算非负数");
}
}
// 其他高级函数可以添加,例如 pow(底数, 指数), log(数值)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字:");
double num1 = scanner.nextDouble();
System.out.println("请输入操作符 (+, -, *, /, sqrt):");
String operator = scanner.next();
double num2 = 0;
switch (operator) {
case "+":
num2 = scanner.nextDouble();
System.out.println("结果是: " + add(num1, num2));
break;
case "-":
num2 = scanner.nextDouble();
System.out.println("结果是: " + subtract(num1, num2));
break;
case "*":
num2 = scanner.nextDouble();
System.out.println("结果是: " + multiply(num1, num2));
break;
case "/":
num2 = scanner.nextDouble();
System.out.println("结果是: " + divide(num1, num2));
break;
case "sqrt":
if (Math.pow(10, 6) > num1) {
System.out.println("输入过大,无法直接计算");
} else {
System.out.println("结果是: " + squareRoot(num1));
}
break;
default:
System.out.println("无效的操作符,请选择正确的运算符");
break;
}
scanner.close();
}
}
```
在这个例子中,用户通过命令行输入两个数字和一个运算符来进行计算。你可以根据需要添加更多的数学函数。
阅读全文