You are on page 1of 5

Question: --------Write a program in C++ to encapsulate Fractions having variables for num erator and denominator.

Overload the following operators to work in their respectiv e manners for the fractions. a] b] c] d] e] f] g] h] i] j] k] Answer: ------#include <iostream> #include <string> using namespace std; class Fraction { private: int num; int den; public: Fraction(int n = 0, int d = 0); Fraction(const Fraction& fr2); ~Fraction(); Fraction operator+(const Fraction& fr2); Fraction operator-(const Fraction& fr2); Fraction operator*(const Fraction& fr2); Fraction operator/(const Fraction& fr2); Fraction operator+=(const Fraction& fr2); Fraction operator-=(const Fraction& fr2); Fraction operator*=(const Fraction& fr2); Fraction operator/=(const Fraction& fr2); bool operator==(const Fraction& fr2); bool operator<=(const Fraction& fr2); bool operator>=(const Fraction& fr2); void display(); }; Fraction::Fraction(int n, int d) { num=n; den=d; } Fraction::Fraction(const Fraction& fr2) + * / += -= *= /= == <= >=

{ num=fr2.num; den=fr2.den; } Fraction::~Fraction() { } Fraction Fraction::operator+(const Fraction& fr2) { if(den==fr2.den) return Fraction(num+fr2.num, den); else return Fraction((num*fr2.den+fr2.num*den), den*fr2.den); } Fraction Fraction::operator-(const Fraction& fr2) { if(den==fr2.den) return Fraction(num-fr2.num, den); else return Fraction((num*fr2.den-fr2.num*den), den*fr2.den); } Fraction Fraction::operator*(const Fraction& fr2) { return Fraction(num*fr2.num, den*fr2.den); } Fraction Fraction::operator/(const Fraction& fr2) { return Fraction(num*fr2.den, den*fr2.num); } Fraction Fraction::operator+=(const Fraction& fr2) { if(den==fr2.den) { num=num+fr2.num; den=den; return *this; } else { num=num*fr2.den+fr2.num*den; den=den*fr2.den; return *this; } } Fraction Fraction::operator-=(const Fraction& fr2) { if(den==fr2.den) { num=num-fr2.num; den=den; return *this; } else

{ num=num*fr2.den-fr2.num*den; den=den*fr2.den; return *this; } } Fraction Fraction::operator*=(const Fraction& fr2) { num=num*fr2.num; den=den*fr2.den; return *this; } Fraction Fraction::operator/=(const Fraction& fr2) { num=num*fr2.den; den=den*fr2.num; return *this; } bool Fraction::operator==(const Fraction& fr2) { return bool((num==fr2.num)&&(den=fr2.den)); } bool Fraction::operator<=(const Fraction& fr2) { return bool(num/den<=fr2.num/fr2.den); } bool Fraction::operator>=(const Fraction& fr2) { return bool(num/den>=fr2.num/fr2.den); } void Fraction::display() { cout<<num<<"/"<<den<<endl; } int main() { Fraction F1(21,7), F2(15,13), sum, sub, prd, div; cout<<"\nF1:\n"; F1.display(); cout<<"\nF2:\n"; F2.display(); if(F1==F2) cout<<"\nThe 2 Fractions are equal!\n"; else cout<<"\nThe 2 Fractions are not equal!\n"; if(F1<=F2) cout<<"\nF1 is less than F2!\n"; else if(F1>=F2) cout<<"\nF1 is greater than F2!\n";

sum=F1+F2; cout<<"\nAddition:\n"; sum.display(); cout<<endl; sub=F1-F2; cout<<"\nDifference:\n"; sub.display(); cout<<endl; prd=F1*F2; cout<<"\nProduct:\n"; prd.display(); cout<<endl; div=F1/F2; cout<<"\nDivision:\n"; div.display(); cout<<endl; F1+=F2; F1.display(); F2-=F1; F2.display(); F1*=F2; F1.display(); F2/=F1; F2.display(); return(0); } OUTPUT: ------F1: 21/7 F2: 15/13 The 2 Fractions are not equal! F1 is greater than F2! Addition: 378/91 Difference: 168/91 Product: 315/91

Division: 273/105 378/91 -3549/1183 -1341522/107653 -382060497/-1587020526

You might also like