help with c++...paste working indented code plzz 2. Continuous of question 1. Implement operator overloading. 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*d) / (b*c). 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) int main ~ cout << endl; RatNum r1(1,2), r2(1,6), r3(2,5); // test operator overloads cout << "\nInput/Output Stream Operators: " << endi; RatNum r4; cout << "Enter a rational number: " cin >> r4: cout << r4 << endi; cout << "Negation Operation: " << endi; cout <<-r4 << endl: // test arithmetic overloads cout << "\nArithmetic Operators: " < " << r6 << "? " << (r5>r6) << endl; cout << r5 << " < " << r6 << "? " << (r5

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

help with c++...paste working indented code plzz

2. Continuous of question 1. Implement operator overloading.

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*d) / (b*c).
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)
int main ~
cout << endl;
RatNum r1(1,2), r2(1,6), r3(2,5);
// test operator overloads
cout << "\nInput/Output Stream Operators: " << endi;
RatNum r4;
cout << "Enter a rational number: "
cin >> r4:
cout << r4 << endi;
cout << "Negation Operation: " << endi;
cout <<-r4 << endl:
// test arithmetic overloads
cout << "\nArithmetic Operators: " <<endl;
RatNum r5 = r1 + r2;
cout << r1 <<"+ "< r2 << "= "'<< r5 << endI;
RatNum r6 = r1 - r2;
cout << r1 <<"-"<< r2 << " = "«< r6 << endi:
RatNum r7 =r1 * r2l;

cout << r1 <<" «< r2 << "= " << r7 << endI;
RatNum r8 = r1 / r2;


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/2 * 1/6 = 1/12
1/2 / 1/6 = 3/1
%3D
1/6 = 1/3
%3D
%3D
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/2 * 1/6 = 1/12 1/2 / 1/6 = 3/1 %3D 1/6 = 1/3 %3D %3D 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
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Functions
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
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