java二、八、十进制计算器,选择十进制时不能输入十进制以外的数,选择八进制时不能输入八进制以外的数,选择二进制时不能输入二进制以外的数,可以清零
时间: 2024-03-06 21:50:15 浏览: 111
好的,我可以帮你设计一个这样的计算器。首先,我们需要一个界面,用户可以选择计算器的进制,并输入数字和操作符。然后,程序根据用户的选择进行相应的计算和输出结果。下面是一份简单的代码示例:
```java
import java.util.Scanner;
public class NumberSystemCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择计算器的进制(2、8、10):");
int radix = scanner.nextInt();
scanner.nextLine(); // 读取换行符
while (true) {
System.out.println("请输入操作数或操作符(输入'c'清零,输入'='计算结果):");
String input = scanner.nextLine();
if (input.equals("c")) { // 清零
System.out.println("已清零");
continue;
} else if (input.equals("=")) { // 计算结果
System.out.println("计算结果为:");
// TODO: 进行计算
break;
}
// 检查输入的数是否合法
if (!isValid(input, radix)) {
System.out.println("输入不合法,请重新输入");
continue;
}
// TODO: 将输入的数转换成十进制数,进行计算
}
}
// 检查输入的数是否合法
public static boolean isValid(String input, int radix) {
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c == '+' || c == '-' || c == '*' || c == '/') {
continue;
}
if (Character.digit(c, radix) == -1) {
return false;
}
}
return true;
}
}
```
在这个示例中,我们使用了一个 `while` 循环,不断读入用户的输入,直到用户输入 '=' 为止。在每次循环中,我们先判断用户是否输入了 'c',如果是,则清零,重新开始下一次循环。如果用户输入了 '=',则进行计算,并退出循环。否则,我们还需要检查用户输入的数是否合法,如果不合法则提示用户重新输入。最后,我们将输入的数转换成十进制数,并进行计算。
这只是一个简单的示例代码,你需要根据具体需求进行修改和完善。
阅读全文