Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Use the Java Programming Language. YOU MUST USE STACKS! You will be given 2 Roma

ID: 3565076 • Letter: U

Question

Use the Java Programming Language.

YOU MUST USE STACKS!

You will be given 2 Roman Numbers with an operator separating them. The operator will be either a minus, plus, or multiply sign. You need to convert the 2 Roman Numbers to a decimal number, perform the operation and then display the result as a Roman Number. If either Roman numeral is invalid, print an error message to the user.

See example traces here: http://tinyurl.com/exampletraces

When you read the Roman Number as input, you will need to push each item on a STACK as you read it since you don

Explanation / Answer

//Converting Roman number to Arabic number

public static int convertRomToInt(String romanNum)

{

int result = 0;

int mediator = 0;

int length = romanNum.length(); //get number string length

for (int i = 0; i < length - 1; i++) {     //this loop will add each Roman character value

  if (getInt(romanNum.charAt(i)) > getInt(romanNum.charAt(i + 1))) {

   result = result + getInt(romanNum.charAt(i)) + mediator;

   mediator = 0;

  }

else if (getInt(romanNum.charAt(i)) == getInt(romanNum.charAt(i + 1)))

{

  mediator = mediator + getInt(romanNum.charAt(i));

  }

else if (getInt(romanNum.charAt(i)) < getInt(romanNum.charAt(i + 1)))

{

   mediator = -mediator - getInt(romanNum.charAt(i));

  }

}

result = result + mediator + getInt(romanNum.charAt(length - 1));

return result;

}

//Get integer value for corresponding Roman character

public static int getInt(char romanChar) {

if (romanChar == 'I')

  return 1;

else if (romanChar == 'V') {

  return 5;

} else if (romanChar == 'X') {

  return 10;

} else if (romanChar == 'L') {

  return 50;

} else if (romanChar == 'C') {

  return 100;

} else if (romanChar == 'D') {

  return 500;

} else if (romanChar == 'M') {

  return 1000;

}

return (Integer) null;

}