Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a class called Rational for performing arithmetic with fractions. Write a

ID: 3706946 • Letter: C

Question

Create a class called Rational for performing arithmetic with fractions.

Write a program to test your class. Use integer variables to represent the private data of the class – the numerator and the denominator. Provide a constructor that enables an object of this class to be initialized when its declared. The constructor should contain default values in case no initializers are provided and should store the fraction in reduced form. For example the fraction would be stored in the object as 1 in the numerator and 2 in the denominator. Provide public member functions that perform each of the following tasks:

add – Adds two rational numbers. The result should be stored in reduced form.

subtract – Subtracts two rational numbers. Store the result in reduced form.

multiply – Multiplies two rational numbers. The result should be stored in reduced form.

divide – Divides two rational numbers. Store the result in reduced form.

toRationalString – Returns a string representation of a Rational number in the form a/b, where a is the numberator and b is the denominator (e.g. “1/2”).

toDouble – Returns the Rational number as a double.

Create a constructor that prevents a 0 denominator in a fraction, reduces or simplifies fractions that are not in reduced form and avoids negative denominators.

Overload the addition, subtraction, multiplication and division operators for this class.

Overload the relational and equality operators for this class.

Explanation / Answer

Here I am posting code for you.

Rational.h

CPP File:

Output:

3/4 =0.750

5/6 =0.833

The addition is:

19/22=1.583

The Subtraction is:

1/-12=-0.083

The Multiplication is:

5/8=0.625

The Division is:

9/10=0.900

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote