ement four arithmetic operator overload functions (+,-,*,/). c) Implement six relational operator overload functions (==,!=,>,>=,<,<=). d) Implement the insertion operator overload function (<<). e) Implement the extraction operator overload function (>>). f) Implement the subscript operator overload function ([]). Make sure that each fu

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
100%

C++ (Please answer the ques with showing the code)

Question :

Operator Overloading

a) Implement two unary operator overload functions (-,+,!).

b) Implement four arithmetic operator overload functions (+,-,*,/).

c) Implement six relational operator overload functions (==,!=,>,>=,<,<=).

d) Implement the insertion operator overload function (<<).

e) Implement the extraction operator overload function (>>).

f) Implement the subscript operator overload function ([]).

Make sure that each function is optimally overloaded for its purpose. (pick between member, non-member, friend as appropriate)

Notes Add

Rational Numbers

Given a/b + c/d:

Step 1: Find the LCM of b and d.

Step 2: Create a new Rational Number: ((a*(LCM/b) + (c*(LCM/d)) / LCM.

Step 3: Reduce the new Rational Number from step 2.

Step 4: Return the new Rational Number.

Subtract Rational Numbers

Given a/b - c/d:

Step 1: Find the LCM of b and d.

Step 2: Create a new Rational Number: ((a*(LCM/b) - (c*(LCM/d)) / LCM. 

Step 3: Reduce the new Rational Number from step 2.

Step 4: Return the new Rational Number.

Multiply Rational Numbers

Given a/b * c/d:

Step 1: Create a new Rational Number: (a*c) / (b*d).

Step 2: Return the new Rational Number.

Divide Rational Numbers

Given a/b * c/d:

Step 1: Create a new Rational Number: (a*c) / (b*d).

Step 2: Return the new Rational Number.

Compare Rational Numbers:

greater than Determine if a/b > c/d:

Step 1: Find the LCM of b and d.

Step 2: If (a*(LCM/b) > (c*(LCM/d) return true, otherwise false.

Compare Rational Numbers:

less than Determine if a/b < c/d:

Step 1: Find the LCM of b and d.

Step 2: If (a*(LCM/b) < (c*(LCM/d) return true, otherwise false.

Use following main function to test your program. (have to use this main function)

 

( From here please check the picture that i attached output is in the image.)

(its urgent. please check the code from your side that it works.)

Use following main function to test your program. (have to use this main function)
int main() {
cout << endl;
RatNum r1(1,2), r2(1,6), r3(2,5);
// test operator overloads
cout << "\nInput/Output Stream Operators: " << endl;
}
RatNum r4;
cout << "Enter a rational number: ";
cin >> r4;
cout << r4 << endl;
cout << "Negation Operation: " << endl;
cout <<-r4 << endl;
// test arithmetic overloads
cout << "\nArithmetic Operators: " << endl;
RatNum r5 r1 + r2;
cout << r1 <<"+" << r2 << "=" <<r5 << endl;
RatNum r6 r1 r2;
cout << r1 <<"-" << r2 << "=" << r6 << endl;
RatNum r7 r1 * r2;
cout << r1 <<"* " << r2 <<
RatNum r8 r1/r2;
Due date: Mar 3, 11:59 PM
"=" <<r7 << endl;
cout << r1 <<"/" << r2 << "=" << r8 << endl;
// test arithmetic operation chaining
cout << "\nArithmetic Chaining: " << endl;
RatNum r9 = r5 + r6 r7 * r8;
cout <<r5 << "+" << r6 <<"-" << r7 <<" * " << r8 << " = " << r9 << endl;
// test relational operator overload
cout << "\nRelational Operators: " << endl;
cout << r5 << " == " << r6 << "? " << (r5==r6) << endl;
cout <<r5 << " != " << r6 << "? " << (r5!=r6) << endl;
cout <<r5 <<">" << r6 <<"? " << (r5>r6) << endl;
cout <<r5 <<"<" << r6 <<"? " << (r5<r6) << endl;
// test subscript overload
cout << "\nSubscript Operator: " << endl;
cout << r5 <<" num=" << r5[1] << " den=" << r5[2] << endl;
cout << endl;
return 0;
Transcribed Image Text:Use following main function to test your program. (have to use this main function) int main() { cout << endl; RatNum r1(1,2), r2(1,6), r3(2,5); // test operator overloads cout << "\nInput/Output Stream Operators: " << endl; } RatNum r4; cout << "Enter a rational number: "; cin >> r4; cout << r4 << endl; cout << "Negation Operation: " << endl; cout <<-r4 << endl; // test arithmetic overloads cout << "\nArithmetic Operators: " << endl; RatNum r5 r1 + r2; cout << r1 <<"+" << r2 << "=" <<r5 << endl; RatNum r6 r1 r2; cout << r1 <<"-" << r2 << "=" << r6 << endl; RatNum r7 r1 * r2; cout << r1 <<"* " << r2 << RatNum r8 r1/r2; Due date: Mar 3, 11:59 PM "=" <<r7 << endl; cout << r1 <<"/" << r2 << "=" << r8 << endl; // test arithmetic operation chaining cout << "\nArithmetic Chaining: " << endl; RatNum r9 = r5 + r6 r7 * r8; cout <<r5 << "+" << r6 <<"-" << r7 <<" * " << r8 << " = " << r9 << endl; // test relational operator overload cout << "\nRelational Operators: " << endl; cout << r5 << " == " << r6 << "? " << (r5==r6) << endl; cout <<r5 << " != " << r6 << "? " << (r5!=r6) << endl; cout <<r5 <<">" << r6 <<"? " << (r5>r6) << endl; cout <<r5 <<"<" << r6 <<"? " << (r5<r6) << endl; // test subscript overload cout << "\nSubscript Operator: " << endl; cout << r5 <<" num=" << r5[1] << " den=" << r5[2] << endl; cout << endl; return 0;
Output Example
Input/Output Stream Operators:
Enter a rational number: 1 2
1/2
Negation Operation:
-1/2
Arithmetic Operators:
1/2 + 1/6 = 2/3
1/2
1/6 = 1/3
1/2 * 1/6 = 1/12
1/2 1/6 = 3/1
Arithmetic Chaining:
2/3 + 1/3 - 1/12 * 3/1 = 3/4
Relational Operators:
2/3
1/3? 0
2/3 != 1/3? 1
2/3 1/3? 1
2/3 1/3? 0
Subscript Operator:
2/3 num=2 den=3
Transcribed Image Text:Output Example Input/Output Stream Operators: Enter a rational number: 1 2 1/2 Negation Operation: -1/2 Arithmetic Operators: 1/2 + 1/6 = 2/3 1/2 1/6 = 1/3 1/2 * 1/6 = 1/12 1/2 1/6 = 3/1 Arithmetic Chaining: 2/3 + 1/3 - 1/12 * 3/1 = 3/4 Relational Operators: 2/3 1/3? 0 2/3 != 1/3? 1 2/3 1/3? 1 2/3 1/3? 0 Subscript Operator: 2/3 num=2 den=3
Expert Solution
Step 1

We need to implement the RatNum class as per the given data.

 

 

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Concept of pointer parameter
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
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education