Reference no: EM13165394
The Imperial system of measurements uses feet and inches for length, where 1 foot is equal to 12 inches. Write
a class named Imperial that will represent distance measurements in feet and inches. Your class should
include the following:
Attributes:
• A single private integer value that will maintain the measurement in units of 1/16 of an inch
Constructors:
- The default constructor should initialize the value to zero
• A constructor that will take a single integer argument representing a whole number of feet
• A constructor that will take two integer arguments representing feet and inches respectively
• A constructor that will take three integer arguments representing feet, inches and inch-fractions
Methods:
• fp: will take no arguments and return the number of inches as a double-precision floating-point
value
• cm: will take no arguments and return the value of the Imperial measurement in centimeters as a
double precision floating-point value
• getValue: void method that will take three reference arguments and return the feet, inches and
fractions of inches
Operators:
• Overload the << operator as a non-member friend of the class. The operator should work with any
stream and display the Imperial measurement as feet, inches and fractions of an inch as follows (all
punctuation and spaces as shown):
2' 3 5/16"
Display any non-zero fractional inch values in reduced form. i.e., 4/16 would be displayed as 1/4.
Do not display zero fractional-inch values. Do not display zero feet values.
Write a main program to test the correct operation of your class. Include the following code (at a minimum):
Imperial m1;
Imperial m2(43);
Imperial m3(0,4);
Imperial m4(1,3,6);
Imperial m5(0,0,12);
Imperial m6(4,0,5);
Imperial m7(0,3,2);
Imperial m8(12,3,0);
cout << m1 << endl;
cout << m2 << endl;
cout << m3 << endl;
cout << m4 << endl;
cout << m5 << endl;
cout << m6 << endl;
cout << m7 << endl;
cout << m8 << endl;
int feet, inches, fractions;
m4.getValue(feet,inches,fractions);
cout << feet << ',' << inches << ',' << fractions << endl;
cout << m5.fp() << endl;
cout << m4.cm() << endl;
Example output:
0"
43' 0"
4"
1' 3 3/8"
3/4"
4' 5/16"
3 1/8"
12' 3"
1,3,6
0.75
39.0525