Advertisement
jbonanno

Romanimp.cpp

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