采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六)形式输出及反之。使用Java
时间: 2024-09-16 12:05:12 浏览: 51
十进制数转换成BCD码(源码)
在Java中,模块化程序设计可以有效地实现进制转换。我们可以使用`Scanner`类获取用户的输入,`Integer`类处理十进制数字,以及`toString()`方法进行字符串形式的表示,以便于不同基数的转换。这里是一个基本的实现步骤:
1. 首先,导入必要的类:
```java
import java.util.Scanner;
```
2. 创建一个`main`函数作为程序入口:
```java
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 其他功能在这里实现
}
}
```
3. 获取用户输入,并验证输入是否为正整数:
```java
System.out.println("请输入一个十进制正整数:");
int decimalNumber = scanner.nextInt();
if (decimalNumber <= 0) {
System.out.println("错误:请输入一个正整数。");
return; // 结束程序
}
```
4. 定义一个函数来处理进制转换:
```java
public static String convertBase(int number, int fromBase, int toBase) {
if (fromBase == 10 && toBase == 2) { // 十进制转二进制
return Integer.toBinaryString(number);
} else if (fromBase == 10 && toBase == 8) { // 十进制转八进制
return Integer.toOctalString(number);
} else if (fromBase == 10 && toBase == 16) { // 十进制转十六进制
return Integer.toHexString(number);
} else {
throw new IllegalArgumentException("只支持从十进制转二进制、八进制或十六进制。");
}
}
```
5. 调用转换函数并打印结果:
```java
try {
String converted = convertBase(decimalNumber, 10, chooseYourBase); // 用户选择的基数
System.out.printf("转换为%d进制的结果是:%s%n", chooseYourBase, converted);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
```
这里假设`chooseYourBase`是用户输入的新进制,例如`2`、`8`或`16`。
6. 循环让程序可多次运行:
```java
while (true) {
// 上述代码...
}
```
记得添加适当的结束条件或循环控制,因为上面的例子会无限循环。
阅读全文