jbonanno icon

Romanimp.cpp

jbonanno | PRO | 10/01/17 02:01:21 AM UTC | 0 ⭐ | 255 👁️ | Never ⏰ | []
C++ |

2.32 KB

|

None

|

0 👍

/

0 👎

 
//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