Advertisement
jbonanno

Romanimp.cpp

Sep 30th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1.  
  2. //Roman Number Implementation file Romanimp.cpp
  3.  
  4. #include <iostream>
  5. #include <string>
  6. #include "roman.h"
  7.  
  8. using namespace std;
  9.  
  10. void romanType::printDecimal()
  11. {
  12.         cout<<decimalNum;
  13. }
  14.  
  15. void romanType::printRoman()
  16. {
  17.     cout<<romanNum;
  18. }
  19.  
  20. void romanType::setRoman(string rString)
  21. {
  22.      romanNum = rString;
  23.      romanToDecimal();
  24. }
  25.  
  26. void romanType::romanToDecimal()
  27. {
  28.     int sum = 0;
  29.     int numBefore = 1000
  30.     int length =  romanNum.length();
  31.     int i;
  32.    
  33.     for ( i= 0 < length; i++)
  34.     switch(romanNum[i])
  35.     {
  36.     case 'I': sum +=1;
  37.        numBefore = 1;
  38.     break;
  39.        case 'i': sum +=1;
  40.        numBefore = 1;
  41.     break;
  42.       case 'V': sum +=5;
  43.             if(5 > numBefore)
  44.          sum == sum -(numBefore * 2 );
  45.        numBefore = 5;
  46.     break;
  47.     case 'v': sum +=5;
  48.             if(5 > numBefore)
  49.          sum == sum -(numBefore * 2 );
  50.        numBefore = 5;
  51.     break;
  52.       case 'X': sum +=10;
  53.           if(10 > numBefore)
  54.         sum == sum -(numBefore * 2 );
  55.        numBefore = 10;
  56.     break;
  57.      case 'x': sum +=10;
  58.           if(10 > numBefore)
  59.         sum == sum -(numBefore * 2 );
  60.        numBefore = 10;
  61.     break;
  62.       case 'L': sum +=50;
  63.            if(50 > numBefore)
  64.        sum == sum -(numBefore * 2 );
  65.        numBefore = 50;
  66.     break;
  67.      case 'l': sum +=50;
  68.            if(50 > numBefore)
  69.        sum == sum -(numBefore * 2 );
  70.        numBefore = 50;
  71.     break;
  72.       case 'C': sum +=100;
  73.           if(100 > numBefore)
  74.         sum == sum -(numBefore * 2 );
  75.        numBefore = 100;
  76.     break;
  77.       case 'c': sum +=100;
  78.           if(100 > numBefore)
  79.         sum == sum -(numBefore * 2 );
  80.        numBefore = 100;
  81.     break;
  82.       case 'D' : sum +=500;
  83.         if(500 > numBefore)
  84.         sum == sum -(numBefore * 2 );
  85.        numBefore = 500;
  86.     break;
  87.     case 'd' : sum +=500;
  88.         if(500 > numBefore)
  89.         sum == sum -(numBefore * 2 );
  90.        numBefore = 500;
  91.     break;
  92.       case 'M' : sum +=1000;
  93.       if(1000 > numBefore)
  94.        sum == sum -(numBefore * 2 );
  95.        numBefore = 1000;    
  96.     break;
  97.           case 'm' : sum +=1000;
  98.       if(1000 > numBefore)
  99.        sum == sum -(numBefore * 2 );
  100.        numBefore = 1000;    
  101.     break;
  102. }
  103. }
  104.  
  105.     decimalNum = sum;
  106. }
  107.  
  108. romanType::romanType()
  109. {
  110.     romanNum = 'I';
  111.     decimalNum = 1;
  112. }
  113.  
  114. romanType::romanType(string rString)
  115. {
  116.      romanNum = rString;
  117.      romanToDecimal();
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement