实现java计算器,支持2、8、10进制。切换进制时数据清空。
时间: 2024-03-06 11:51:01 浏览: 27
好的,我可以帮你实现一个支持2、8、10进制切换的Java计算器,并且在切换进制时清空数据。你可以按照以下步骤进行实现:
1. 创建一个名为 Calculator 的类,其中包含以下成员变量:
```
private int base; // 当前进制
private String input; // 用户输入的数据
private double result; // 计算结果
```
2. 创建一个名为 switchBase 的方法,用于切换进制并清空数据:
```
public void switchBase(int newBase) {
this.base = newBase;
this.input = "";
this.result = 0.0;
}
```
3. 创建一个名为 clear 的方法,用于清空数据:
```
public void clear() {
this.input = "";
this.result = 0.0;
}
```
4. 创建一个名为 input 的方法,用于处理用户输入数据:
```
public void input(String data) {
this.input += data;
}
```
5. 创建一个名为 calculate 的方法,用于计算结果:
```
public void calculate() {
switch (this.base) {
case 2:
this.result = Integer.parseInt(this.input, 2);
break;
case 8:
this.result = Integer.parseInt(this.input, 8);
break;
case 10:
this.result = Double.parseDouble(this.input);
break;
default:
System.out.println("Unsupported base!");
return;
}
this.input = String.valueOf(this.result);
}
```
6. 最后,你可以编写一个简单的测试程序来测试你的计算器:
```
public static void main(String[] args) {
Calculator calc = new Calculator();
calc.switchBase(2);
calc.input("1010");
calc.calculate();
System.out.println("Binary input: " + calc.getInput());
System.out.println("Decimal output: " + calc.getResult());
calc.switchBase(8);
calc.input("123");
calc.calculate();
System.out.println("Octal input: " + calc.getInput());
System.out.println("Decimal output: " + calc.getResult());
calc.switchBase(10);
calc.input("3.14");
calc.calculate();
System.out.println("Decimal input: " + calc.getInput());
System.out.println("Decimal output: " + calc.getResult());
calc.clear();
System.out.println("Cleared input: " + calc.getInput());
System.out.println("Cleared result: " + calc.getResult());
}
```
希望这个例子对你有所帮助!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)