Question: (In Java) Write a program that converts a number entered in Roman numerals to a decimal. Your program should consist of a class, say, Roman.

(In Java) Write a program that converts a number entered in Roman numerals to a decimal. Your program should consist of a class, say, Roman. An object of type Roman should do the following: 1.) Store the number as a Roman numeral b.) Convert and store the number into decimal. c.) Print the number as a Roman numeral or decimal number as requested by the user. The decimal values of the Roman numerals are: M 1000 D 500 C 100 L 50 X 10 V 5 I 1 d.) Your class must contain the method romanToDecimal to convert a Roman numeral into its equivalent decimal number e.) Test your program using the following Roman numerals: MCXIV, CCCLIX and MDCLXVI.

Here is my code so far :

package javaapplication13;

/** * * @author Abby Rink */ import java.util.*;

public class javaapplication13;

int value(char r)

{

if (r == 'I')

return 1;

if (r == 'V')

return 5;

if (r == 'X')

return 10;

if (r == 'L')

return 50;

if (r == 'C')

return 100;

if (r == 'D')

return 500;

if (r == 'M')

return 1000;

return -1;

}

// Finds decimal value of a given romal numeral

int romanToDecimal(String str)

{

// Initialize result

int res = 0;

for (int i=0; i

{

int s1 = value(str.charAt(i));

if (i+1

{

int s2 = value(str.charAt(i+1));

if (s1 >= s2)

{

res = res + s1;

}

else

{

res = res + s2 - s1;

i++;

}

}

else

{

res = res + s1;

i++;

}

}

return res;

}

public static void main(String args[])

{

RomanToNumber ob = new RomanToNumber();

String str = "MCXIV";

System.out.println("Integer form of Roman Numeral" + " is " + ob.romanToDecimal(str));

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!