This lab practices define class, more particular, identifying the member variables, declaring and defining constructors, and other member functions. Requirement Write a rational number class. Recall a rational number is a rational number, composed of two integers with division indicated. The division is not carried out, it is only indicated, as in 1/2, 2/3, 15/32. You should represent rational numbers using two int values, numerator and denominator. A principle of abstract data type construction is that constructors must be present to create objects with any legal values. You should provide the following two constructors: one constructor to make rational objects without any argument. The constructor sets the rational object's numerator to 0, and denominator to 1.
This lab practices define class, more particular, identifying the member variables, declaring and defining constructors, and other member functions.
Requirement
Write a rational number class. Recall a rational number is a rational number, composed of two integers with division indicated. The division is not carried out, it is only indicated, as in 1/2, 2/3, 15/32. You should represent rational numbers using two int values, numerator and denominator.
A principle of abstract data type construction is that constructors must be present to create objects with any legal values. You should provide the following two constructors:
- one constructor to make rational objects without any argument. The constructor sets the rational object's numerator to 0, and denominator to 1.
- one constructor to make rational objects out of pairs of int values, i.e., a constructor with two intparameters. The constructor uses the two values to initialize the rational object's numerator and denominator respectively.
- one constructor to make rational objects out of a single int values, as in 2/1, 17/1, i.e., a constructor with only one int parameter. The constructor sets the rational’ s numerator to the given parameter and sets the denominator to 1.
You should also provide the following member functions:
- an input function that reads from standard input the value for current object. The input should be in the form of 2/3 or 27/51.
- an output function that displays the current object in the terminal. The output should also be in the form of 2/3, i.e., numerator/denominator.
- Two getter functions that return the numerator and denominator respectively.
- a Sum function that takes two rational objects as parameters. It sets the current rational object to be the sum of the two given rational numbers.
Note the following formula for adding two rational numbers:
a/b + c/d = ( a*d + b*c)/(b*d)
The following code segment demonstrate the usage of the above mentioned member functions, and constructors. Your main function should be some code like this.
int main()
{
// ToDo: declare three rational objects using the default constructor
char answer;
// Main loop to read in rationals and compute the sum
do {
cout << "\nEnter op1 (in the format of p/q):";
// ToDo: use your input member function to read the first rational cout << "\nEnter op2 (in the format of p/q):";
// ToDo: use your input member function to read the second rational
// ToDo: use the third rational to call Sum with first and second as parameters
cout << "\nThe sum of op1 and op2 is:";
// ToDo: ouptput the third rational
cout << endl;
cout << "\nTry again (Y/N)?";
cin >> answer;
} while (answer == 'y' || answer == 'Y');
// ToDo: test getters
cout << "\nC's numerator is: " ;
cout << "\nC's denominator is: ";
return 0;
}
Hints
Please follow the order suggested below when working on this lab, always maintaining a compilable version of the code. Take an incremental approach. Write and test one function at a time!
- Define the class rational first, i.e., list the member variables, and declare the member functions in the class, including the constructors. Please refer to notes and textbook for the special syntax for declaring constructors.
- Implement the three constructors, test it in main, by declaring rational objects with no parameter, one paramter, and two paramters respectively.
- implement output function, and test it in main. This will also help you verify/test the three constructors.
- Implement input function, and test it in main.
- Implement Sum function, and test in main.
- Implement isEqual function, and test in main.
Trending now
This is a popular solution!
Step by step
Solved in 5 steps with 3 images