Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //roman numeral code
- #include <iostream>
- #include <string>
- using namespace std;
- class roman
- {
- public:
- string roman;
- void get() //gets user input
- {
- cout << "Please Input a Roman Numeral: ";
- cin >> roman;
- cout << "\n";
- }
- void check() //checks to see if number is valid
- {
- bool check = true;
- do
- {
- check = true;
- for (int i = 0; i < roman.size(); i++)
- {
- roman[i] = toupper(roman[i]);
- if (roman[i] != 'M' && roman[i] != 'D' && roman[i] != 'L' && roman[i] != 'C' && roman[i] != 'X' && roman[i] != 'V' && roman[i] != 'I')
- {
- check = false;
- }
- }
- if (check == false) //retries if number is invalid
- {
- cout << "Invalid Input, Please Try Again: ";
- cout << "\n\nPlease Input a Roman Numeral: ";
- cin >> roman;
- }
- } while (check == false);
- }
- void convert()
- {
- int number = 0;
- int LastNumber = 0;
- int CurrentNumber = 0;
- for (int i = 0; i < roman.size() + 1; i++)
- {
- roman[i] = toupper(roman[i]); //assigns letters to a number
- if (roman[i] == 'M')
- {
- CurrentNumber = 1000;
- }
- else if (roman[i] == 'D')
- {
- CurrentNumber = 500;
- }
- else if (roman[i] == 'C')
- {
- CurrentNumber = 100;
- }
- else if (roman[i] == 'L')
- {
- CurrentNumber = 50;
- }
- else if (roman[i] == 'X')
- {
- CurrentNumber = 10;
- }
- else if (roman[i] == 'V')
- {
- CurrentNumber = 5;
- }
- else
- {
- CurrentNumber = 1;
- }
- if (CurrentNumber > LastNumber)
- {
- LastNumber = 0 - LastNumber;
- }
- number = number + CurrentNumber;
- LastNumber = CurrentNumber;
- }
- cout << number;
- }
- };
- int main() //main function
- {
- roman romnum;
- romnum.get();
- romnum.check();
- romnum.convert();
- return -0;
- }
Add Comment
Please, Sign In to add comment