We have noticed that the system floating point number will some times lose information. For this assignment, you will develop your own re number class that can be used in a similar way as system data types such as int and float . In your class rational , you can use two integers a and b to represent a rational number, which is equivalent to a/b . This is because rational number can always be written as a quotient of two integers. Your rational class should support the following functions: • The user can provide two integers to initialize an rational object; If the user does not provide any information, the rational object should be initialized as 0 ; • The user can use the operator +, -, *, and / to operate two rational objects as he/she is using the system defined types; The user can use a member function print() to print the rational number in the form of a/b . For example, the user can do the following with your class rational

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter11: Inheritance And Composition
Section: Chapter Questions
Problem 12PE
icon
Related questions
Question

C++

We have noticed that the system floating point number will some times lose information. For this assignment, you will develop your own real
number class that can be used in a similar way as system data types such as int and float .
In your class rational , you can use two integers a and b to represent a rational number, which is equivalent to a/b . This is because a
rational number can always be written as a quotient of two integers. Your rational class should support the following functions:
• The user can provide two integers to initialize an rational object;
• If the user does not provide any information, the rational object should be initialized as 0 ;
• The user can use the operator +, -, * , and / to operate two rational objects as he/she is using the system defined types;
• The user can use a member function print() to print the rational number in the form of a/b.
For example, the user can do the following with your class rational
rational r1(2,3);
rational r2;
rational r3
r1+r2;
rational r4 =
r1*r2;
r3.print();
r4.print();
The output should be:
2/3
Hint 1: Consider the case of dividing by 0. In this case, you can return 0 directly.
Hint 2: Consider to reduce the fraction when possible. For instance, if the user create a rational object as rational a(2,4), you can
store 1 and 2 in the object instead of 2 and 4. You can use the function _gcd (i1, i2) to find the gcd of two integers. To use this
function, you need to include the header file algorithm.
Transcribed Image Text:We have noticed that the system floating point number will some times lose information. For this assignment, you will develop your own real number class that can be used in a similar way as system data types such as int and float . In your class rational , you can use two integers a and b to represent a rational number, which is equivalent to a/b . This is because a rational number can always be written as a quotient of two integers. Your rational class should support the following functions: • The user can provide two integers to initialize an rational object; • If the user does not provide any information, the rational object should be initialized as 0 ; • The user can use the operator +, -, * , and / to operate two rational objects as he/she is using the system defined types; • The user can use a member function print() to print the rational number in the form of a/b. For example, the user can do the following with your class rational rational r1(2,3); rational r2; rational r3 r1+r2; rational r4 = r1*r2; r3.print(); r4.print(); The output should be: 2/3 Hint 1: Consider the case of dividing by 0. In this case, you can return 0 directly. Hint 2: Consider to reduce the fraction when possible. For instance, if the user create a rational object as rational a(2,4), you can store 1 and 2 in the object instead of 2 and 4. You can use the function _gcd (i1, i2) to find the gcd of two integers. To use this function, you need to include the header file algorithm.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Knowledge Booster
Function Arguments
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning