Koalaazz

Roman Numeral Assignment

Mar 1st, 2021 (edited)
485
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //roman numeral code
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5.  
  6. class roman
  7. {
  8. public:
  9.     string roman;
  10.  
  11.     void get() //gets user input
  12.     {
  13.         cout << "Please Input a Roman Numeral: ";
  14.         cin >> roman;
  15.         cout << "\n";
  16.     }
  17.  
  18.     void check() //checks to see if number is valid
  19.     {
  20.         bool check = true;
  21.         do
  22.         {
  23.             check = true;
  24.  
  25.             for (int i = 0; i < roman.size(); i++)
  26.             {
  27.                 roman[i] = toupper(roman[i]);
  28.                 if (roman[i] != 'M' && roman[i] != 'D' && roman[i] != 'L' && roman[i] != 'C' && roman[i] != 'X' && roman[i] != 'V' && roman[i] != 'I')
  29.                 {
  30.                     check = false;
  31.                 }
  32.             }
  33.  
  34.             if (check == false) //retries if number is invalid
  35.             {
  36.                 cout << "Invalid Input, Please Try Again: ";
  37.                 cout << "\n\nPlease Input a Roman Numeral: ";
  38.                 cin >> roman;
  39.             }
  40.         } while (check == false);
  41.     }
  42.  
  43.     void convert()
  44.     {
  45.  
  46.         int number = 0;
  47.         int LastNumber = 0;
  48.         int CurrentNumber = 0;
  49.         for (int i = 0; i < roman.size() + 1; i++)
  50.         {
  51.             roman[i] = toupper(roman[i]); //assigns letters to a number
  52.  
  53.             if (roman[i] == 'M')
  54.             {
  55.                 CurrentNumber = 1000;
  56.             }
  57.             else if (roman[i] == 'D')
  58.             {
  59.                 CurrentNumber = 500;
  60.             }
  61.             else if (roman[i] == 'C')
  62.             {
  63.                 CurrentNumber = 100;
  64.             }
  65.             else if (roman[i] == 'L')
  66.             {
  67.                 CurrentNumber = 50;
  68.             }
  69.             else if (roman[i] == 'X')
  70.             {
  71.                 CurrentNumber = 10;
  72.             }
  73.             else if (roman[i] == 'V')
  74.             {
  75.                 CurrentNumber = 5;
  76.             }
  77.             else
  78.             {
  79.                 CurrentNumber = 1;
  80.             }
  81.             if (CurrentNumber > LastNumber)
  82.             {
  83.                 LastNumber = 0 - LastNumber;
  84.             }
  85.             number = number + CurrentNumber;
  86.             LastNumber = CurrentNumber;
  87.         }
  88.         cout << number;
  89.     }
  90. };
  91.  
  92. int main() //main function
  93. {
  94.     roman romnum;
  95.     romnum.get();
  96.     romnum.check();
  97.     romnum.convert();
  98.     return -0;
  99. }
RAW Paste Data