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)...


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 <>
Step 1: Find the LCM of b and d
Step 2: If (a*(LCM/b) < (c*="" (lcm/d)="" return="" true,="" otherwise="">




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


int main ~
cout <>
RatNum r1(1,2), r2(1,6), r3(2,5);
// test operator overloads
cout < "\ninput/output="" stream="" operators:="" "=""><>
RatNum r4;
cout < "enter="" a="" rational="" number:="">
cin >> r4:
cout < r4=""><>
cout < "negation="" operation:="" "=""><>
cout <-r4><>
// test arithmetic overloads
cout < "\narithmetic="" operators:=""><>
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<<>< "="<

// test arithmetic operation chaining
cout << " \narithmetic="" chaining:="" "=""><>
RatNum r9 = r5 + r6 - r7 * r8;
cout<><><><><><><><><><>


// test relational operator overload
cout < "\nrelational="" operators:="" "=""><>
cout < r5="">< "="=" "="">< r6="">< "?="" "="">< (r5="=r6)">< endl;="" cout="">< r5="">< "="" !=" << r6 << " "="">< (r5!="r6)">< endl;="" cout="">< r5="">< "=""> " < r6="">< "?="" "="">< (r5="">r6) < endl;="" cout="">< r5="">< "="">< "="">< r6="">< "?="" "=""><><>


// test subscript overload
cout < "\nsubscript="" operator:="" "=""><>
cout < r5="">< "="" num=" << r5[1] << " den=" << r5[2] << endl; cout << endl;
return 0;





}









Output Example<br>Input/Output Stream Operators:<br>Enter a rational number: 1 2<br>1/2<br>Negation Operation:<br>-1/2<br>Arithmetic Operators:<br>1/2 + 1/6 = 2/3<br>1/2<br>1/2 * 1/6 = 1/12<br>1/2 / 1/6 = 3/1<br>%3D<br>1/6 = 1/3<br>%3D<br>%3D<br>Arithmetic Chaining:<br>2/3 + 1/3 - 1/12 * 3/1 = 3/4<br>Relational Operators:<br>2/3 == 1/3? 0<br>2/3 != 1/3? 1<br>2/3 > 1/3? 1<br>2/3 < 1/3? 0<br>Subscript Operator:<br>2/3 num=2 den=3<br>

Extracted 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 1/3?="" 0="" subscript="" operator:="" 2/3="" num="2" den="">
Jun 07, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here