rationalnumber class a rational number is a


(RationalNumber Class) A rational number is a number that can be represented as the quotient of two  integers. For example, 1/3, 5/7, 7/2, and so forth are rational numbers (By 2/1, etc., we mean the  everyday meaning of the fraction, not the integer division this expression would produce in a C++  program.) In general a rational number is represented as a/b where a and b are the numerator and  the denominator, respectively, and the denominator does not equal to 0. 

Suppose a/b and c/d are rational numbers. Arithmetic operations on rational numbers are defined 

by the following rules: 

a / b + c / d = (ad + bc) / bd 

a / b - c / d = (ad - bc)/bd 

a / b x c / d = ac / bd 

(a / b) / (c / d) = ad / bc, where c / d ≠ 0 

Rational numbers are compared as follows: a/b op c/d if ad op bc, where op is any of the relational operations. For example, a/b < c/d if ad < bc. In this exercise, define a class named as RationalNumber. Suppose x, y, and z are objects of type RationalNumber. The class RationalNumber
Includes private member variables 
o numerator and denominator of type int. 
o str of type char*. This member variable is a C string with the format 
numerator/denominator 
and is managed by new and delete. 
Includes a member function reduction to normalize the values stored so that, after any 
operation (construction, initialization, assignment, any arithmetic operations, etc), the greatest 
common divisor (gcd) of numerator and denominator is 1. For example, after reduction, 21/14 
becomes 3/2, i.e., the values of numerator and denominator are 3 and 2, respectively, and 
str is a C string “3/2”.
Includes a constructor where the default values of the numerator and the denominator are 0 
and 1, respectively. 
 Includes a copy constructor, which performs deep copy of class member variables. 
 Overloads the stream extraction (>>) and stream insertion (<<) operators. 
o If the input is 4/6, the statement “cin >> x;” would store 2/3 into object x. 
o If x is 2/3, the statement “cout << x;” would output “2/3” to stdout. 
 Overloads the assignment operator (=), and the following arithmetic operators: +, -, *, /. 
o For example, the statement “cout << x + y << endl;” sends the resulting value 
of x + y in rational number format to stdout. 
o For example, the statement “z = x + y;” assigns the sum of x and y into z in 
rational number. 
 Overloads the following operators: ==, !=, >, >=, <, <=.
Write a driver program called testRationalNumber.cpp to test each of the above functions and 
overloaded operators in the RationalNumber class. 
Additional requirements: 2  
  • Include your first name in output and screenshot. 
  •  Add “const” to appropriate formal parameters, and member/nonmember functions. 
  •  State purpose, pre-conditions, and post-conditions for each function. 
  •  Add proper comments to code. 
  •  Check boundary and error conditions without crash. 
  • Turn in the following as separate files: 
  •  RationalNumber.h: class declaration 
  •  RationalNumber.cpp: class implementation 
  • testRationalNumber.cpp: driver program 
  •  Screenshots of output 

Solution Preview :

Prepared by a verified Expert
C/C++ Programming: rationalnumber class a rational number is a
Reference No:- TGS0452942

Now Priced at $30 (50% Discount)

Recommended (90%)

Rated (4.3/5)