//*************************************************************************** // // overload.cpp // CSCI 241 Operator Overloading Example // // Created by Kurt McMahon (t90kjm1) // //*************************************************************************** #include #include #include "Rational.h" using namespace std; /** * Tests the functionality of the Rational class. * * @return Returns 0 on successful completion. ********************************************************************************/ int main() { Rational r1; //Test 1: default constructor cout << "\nTest 1: Default constructor produces: "; cout << r1; Rational r2(11, 30); //Test 2: second constructor cout << "\n\nTest 2: Second constructor with 11, 30 produces: "; cout << r2; cout << " or "; r2.display_float(); Rational r3(2, 30); cout << "\n Second constructor with 2, 30 produces: "; cout << r3; cout << " or "; r3.display_float(); Rational r4(5, 6); cout << "\n Second constructor with 5, 6 produces: "; cout << r4; cout << " or "; r4.display_float(); //Test 3: mutators cout << "\n\nTest 3: set_numerator(8) changes "; cout << r3; cout << " to: "; r3.set_numerator(8); cout << r3; cout << "\n set_denominator(73) changes "; cout << r4; cout << " to: "; r4.set_denominator(73); cout << r4; cout << "\n set_rational(4,6) changes "; cout << r1; cout << " to: "; r1.set_rational(4, 6); cout << r1; Rational r5(3, 7); //Test 4: operator+ cout << "\n\nTest 4: "; cout << r4 << " + " << r5 << " = " << (r4 + r5); r5.set_rational(1, 2); cout << "\n "; cout << r3 << " + " << r5 << " = " << (r3 + r5); r5.set_rational(15, 16); cout << "\n "; cout << r1 << " + " << r5 << " = " << (r1 + r5); //Test 5: operator- r4.set_rational(5, 7); r5.set_rational(3, 7); cout << "\n\nTest 5: "; cout << r4 << " - " << r5 << " = " << (r4 - r5); r5.set_rational(3, 7); cout << "\n "; cout << r3 << " - " << r5 << " = " << (r3 - r5); r1.set_rational(101, 117); r5.set_rational(11, 16); cout << "\n "; cout << r1 << " - " << r5 << " = " << (r1 - r5); //Test 6: operator* r5.set_rational(1, 1); cout << "\n\nTest 6: "; cout << r4 << " * " << r5 << " = " << (r4 * r5); cout << "\n "; cout << r3 << " * " << r4 << " = " << (r3 * r4); //Test 7: operator/ cout << "\n\nTest 7: "; cout << r4 << " / " << r3 << " = " << (r4 / r3); cout << "\n "; cout << r3 << " / " << r1 << " = " << (r3 / r1); //Test 8: operator== r1.set_rational(2, 3); r5.set_rational(8, 12); cout << "\n\nTest 8: "; if (r5 == r1) cout << r5 << " is equal to " << r1; else cout << r5 << " is not equal to " << r1; cout << "\n "; if (r4 == r1) cout << r4 << " is equal to " << r1; else cout << r4 << " is not equal to " << r1; //Test 9: operator<= r1.set_rational(2, 3); r5.set_rational(8, 12); cout << "\n\nTest 9: "; if (r5 <= r1) cout << r5 << " is less than or equal to " << r1; else cout << r5 << " is not less than or equal to " << r1; cout << "\n "; if (r4 <= r1) cout << r4 << " is less than or equal to " << r1; else cout << r4 << " is not less than or equal to " << r1; //Test 10: operator< r1.set_rational(2, 5); r5.set_rational(8, 12); cout << "\n\nTest 10: "; if (r5 < r1) cout << r5 << " is less than " << r1; else cout << r5 << " is not less than " << r1; cout << "\n "; if (r1 < r5) cout << r1 << " is less than " << r5; else cout << r1 << " is not less than " << r5; //Test 11: operator!= r1.set_rational(2, 3); r4.set_rational(4, 12); cout << "\n\nTest 11: "; if (r4 != r1) cout << r4 << " is not equal to " << r1; else cout << r4 << " is equal to " << r1; cout << "\n "; if (r5 != r1) cout << r5 << " is not equal to " << r1; else cout << r5 << " is equal to " << r1; //Test 16: operator>> cout << "\n\nTest 16: Enter a fraction (x/y): "; cin >> r5; cout << "\nYou entered " << r5 << " or "; r5.display_float(); cout << endl; return 0; }