#include #include using namespace std; class fraction { public: int numer , denom; fraction();//Default Constructor fraction(int n, int d);//Alternate Constructor int GCF();//Finds The GCF fraction reciprocal();//Displays Reciprocal void display();//Displays the Fraction void reduce();//Puts Fraction into simplest form double convert();//Converts to Decimal void assign(int n, int d);//Assigns numerators and denoms int getnumer();//gets the numerator int getdenom();//gets the denominator friend ostream& operator << (ostream& outs, const fraction f1); //Display Operator fraction operator * (fraction f1); //Multiplication fraction operator / (fraction f1); //Division fraction operator + (fraction f1); //Addition fraction operator - (fraction f1); //Subtraction bool operator ==(fraction f1);//Equals bool operator <(fraction f1);//Less Than bool operator >(fraction f1);//Greater Than };//EndPublic ostream& operator << (ostream& outs,const fraction f1)//<< Display Operator { outs< 1 &&! done) { if (numer%gcf== 0 && denom%gcf == 0) { done= true; }//End If else { gcf --; }//End Else }//End While return gcf; } void fraction::reduce()//Changes To Simplest Form { int gcf = GCF(); numer=numer/gcf; denom=denom/gcf; } fraction fraction::operator * (fraction f1)//Multiplication { fraction temp; temp.numer= numer*f1.numer; temp.denom= denom*f1.denom; temp.reduce(); return temp; } fraction fraction::operator / (fraction f1)//Division { fraction temp; temp.numer= numer*f1.denom; temp.denom= denom*f1.numer; temp.reduce(); return temp; } fraction fraction::operator + (fraction f1)//Addition { fraction temp; temp.denom=denom*f1.denom; temp.numer=(numer*f1.denom) + (denom*f1.numer); temp.reduce(); return temp; } fraction fraction::operator - (fraction f1)//Subtraction { fraction temp; temp.denom=denom*f1.denom; temp.numer=(numer*f1.denom)-(denom*f1.numer); temp.reduce(); return temp; } double fraction::convert()//Converts to Decimal { double decimal; decimal=static_cast(numer)/static_cast(denom); return decimal; } fraction fraction::reciprocal() //Recriprocal { fraction temp; temp.numer=denom; temp.denom=numer; return temp; } bool fraction::operator ==(fraction f1)//Equals { return convert() == f1.convert(); } bool fraction::operator <(fraction f1)//Less Than { return convert() < f1.convert(); } bool fraction::operator >(fraction f1)//Greater Than { return convert() > f1.convert(); }