Define a class for rational numbers. A rational number is a number that can be represented as
Question:
Define a class for rational numbers. A rational number is a number that can be represented as the quotient of two integers. For example, 1/2, 3/ 4, 64/ 2, and so forth are all rational numbers. (By 1/2 and so on we mean the everyday fraction, not the integer division this expression would produce in a C++ program.) Represent rational numbers as two values of type int, one for the numerator and one for the denominator. Call the class Rational. Include a constructor with two argu— ments that can be used to set the member variables of an object to any legitimate values. Also include a constructor that has only a single parameter of type int; call this single parameter wholeNumber and define the constructor so that the object will be initialized to the rational number wholeNumber/ 1. Include a default constructor that initializes an object to 0 (that is, to 0/1). Overload the input and output operators >> and <<. Numbers are to be input and output in the form 1/ 2, 15/32, 3 00 /401, and so forth. Note that the numerator, the denominator, or both may contain a minus sign, so -1/ 2, 15/ -32, and - 3 00 / -4 01 are also possible inputs. Overload all the following operators so that they correctly apply to the type
Rational: ==, <, <=, >, >=, +, -, *, and /. Write a test program to test your class.
Hints: Two rational numbers 51/5 and 6/51 are equal if 4*?! equals 6%. If 5 and d are positive rational numbers, 4/5 is less than c/d provided 51*6/ is less than 6%. You should include a function to normalize the values stored so that, after normalization, the denominator is positive and the numerator and denominator are as small as possible. For example, after normalization 4/ - 8 would be represented the same as —1/ 2.