Example - Convert to Roman Numerals
The following example program converts from decimal input to roman numerals.
It is an example of arrays, throwing and catching exceptions, NetBeans.
The NetBeans 5.0 project (roman.zip) used the NetBeans GUI editor.
The model/logic is completely independent of the user interface,
and could just as easily be called from a console mode program.
Source code for model
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// Program: Convert from binary (decimal) to roman numerals.
// This is the model without any user interface.
// Author : Fred Swartz
// Date : 23 Jan 2006
package roman;
public class RomanConversion {
// Parallel arrays used in the conversion process.
private static final String[] RCODE = {"M", "CM", "D", "CD", "C", "XC", "L",
"XL", "X", "IX", "V", "IV", "I"};
private static final int[] BVAL = {1000, 900, 500, 400, 100, 90, 50,
40, 10, 9, 5, 4, 1};
//=========================================================== binaryToRoman
public static String binaryToRoman(int binary) {
if (binary <= 0 || binary >= 4000) {
throw new NumberFormatException("Value outside roman numeral range.");
}
String roman = ""; // Roman notation will be accumualated here.
// Loop from biggest value to smallest, successively subtracting,
// from the binary value while adding to the roman representation.
for (int i = 0; i < RCODE.length; i++) {
while (binary >= BVAL[i]) {
binary -= BVAL[i];
roman += RCODE[i];
}
}
return roman;
}
}
|
Source code for listener handler in GUI interface
|
try {
String dec = decimalTF.getText();
int bin = Integer.parseInt(dec);
String rom = RomanConversion.binaryToRoman(bin);
romanTF.setText(rom);
} catch (NumberFormatException nfe) {
romanTF.setText("Invalid input.");
}
|
Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: