Purpose: To help develop logic and problem solving skills while continuing to work with header files and Object Oriented constructs, including: classes, constructors and overloading.
Goal: To design and implement a Roman Numeral Number class. The class should be able to build Roman numerals for various values (int parameter to constructor and to a setas* function), and be able to produce values for roman numerals (string result).For this class you only need to consider decimal (base 10) integer numbers.
Turn-in:
File name: assignments/assign5/assign5.cpp
Programming Style Requirements:
o Comment block at the top-left that includes your Linux User ID, Name, Course, Assignment Title, and Date.
o Comment block Explaining purpose of the program
Printed program listing, which includes sample output
o 3 separate files:
assign5.cpp (with sample output in comments), header and implementation file.
o Hand-printed name in top right corner, stapled in top left corner.
Reference Links:
A few sites to help you out:
o http://mathforum.org/dr.math/faq/faq.roman.html
o http://www.yourdictionary.com/crossword/romanums.html
o http://home.hiwaay.net/~lkseitz/math/roman/numerals.shtml
o http://home.hiwaay.net/~lkseitz/math/roman/
Program Details:
Your class will need to meet the following specification:
Class Name: RNumber
Assume integer values only
o Unless noted, normal decimal integer values should be assumed
o Negative values should be displayed in (~ ~), ex: -3 is (~III~)
o Use normal notation, -5 for instance, on user input
o For simplicity, assume max value of 1000.
Input/Output options
o Conversations:
For input of a RNumber object, allow for:
setAsRoman( string )
setAsDecimal( int)
For a RNumber object, produce representations
int ToInt()
string ToString()
You should have both a default constructor, as well as a constructor to allow for setting a value at declaration (input should allow for using either an int or a string)
Overloaded Operators
o <<
o >>
o +
o –
o =
o ==
o >
o <