//Roman Number Implementation file Romanimp.cpp
#include <iostream>
#include <string>
#include "roman.h"
using namespace std;
void romanType::printDecimal()
{
cout<<decimalNum;
}
void romanType::printRoman()
{
cout<<romanNum;
}
void romanType::setRoman(string rString)
{
romanNum = rString;
romanToDecimal();
}
void romanType::romanToDecimal()
{
int sum = 0;
int numBefore = 1000
int length = romanNum.length();
int i;
for ( i= 0 < length; i++)
switch(romanNum[i])
{
case 'I': sum +=1;
numBefore = 1;
break;
case 'i': sum +=1;
numBefore = 1;
break;
case 'V': sum +=5;
if(5 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 5;
break;
case 'v': sum +=5;
if(5 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 5;
break;
case 'X': sum +=10;
if(10 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 10;
break;
case 'x': sum +=10;
if(10 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 10;
break;
case 'L': sum +=50;
if(50 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 50;
break;
case 'l': sum +=50;
if(50 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 50;
break;
case 'C': sum +=100;
if(100 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 100;
break;
case 'c': sum +=100;
if(100 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 100;
break;
case 'D' : sum +=500;
if(500 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 500;
break;
case 'd' : sum +=500;
if(500 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 500;
break;
case 'M' : sum +=1000;
if(1000 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 1000;
break;
case 'm' : sum +=1000;
if(1000 > numBefore)
sum == sum -(numBefore * 2 );
numBefore = 1000;
break;
}
}
decimalNum = sum;
}
romanType::romanType()
{
romanNum = 'I';
decimalNum = 1;
}
romanType::romanType(string rString)
{
romanNum = rString;
romanToDecimal();
}
Comments