#include using namespace std; class Rational { public: void input(); void output(); void simpleform(); Rational(int n, int d); Rational(int whole_number); Rational(); Rational add(Rational); Rational sub(Rational); Rational mul(Rational); Rational div(Rational); Rational neg(Rational); bool less(Rational); Rational operator + (Rational); Rational operator - (Rational); Rational operator * (Rational); Rational operator / (Rational); bool operator == (Rational); bool operator != (Rational); bool operator > (Rational); bool operator < (Rational); bool operator >= (Rational); bool operator <= (Rational); private: int numer, denom; }; int main() { Rational first, second; first.input(); second.input(); Rational a,b,c,d; bool e,f,g,h,i,j; cout << "The two rational numbers : ";first.output(); cout<<" "; second.output(); cout< second; f = first < second; g = first <= second; h = first >= second; i = first == second; j = first != second; cout << e << f << g << h << i << j; return 0; } void Rational::input() { cout << "Please the Numerator" << endl; cin >> numer; cout << "Please the Denominator" << endl; cin >> denom; } void Rational::output() { cout << numer << "/" << denom; } Rational::Rational(int n,int d) { numer = n; denom = d; } Rational::Rational(int whole_number) { numer = whole_number; denom = 0; } Rational::Rational() { numer = 0; denom = 0; } Rational Rational::add(Rational c) { Rational temp; temp.numer = ((numer*c.denom) + (denom*c.numer)); temp.denom = (denom * c.denom); temp.simpleform(); return temp; } Rational Rational::sub(Rational c) { Rational temp; temp.numer = numer - c.numer; temp.denom = denom - c.denom; temp.simpleform(); return temp; } Rational Rational::mul(Rational c) { Rational temp; temp.numer = numer * c.numer; temp.denom = denom * c.denom; temp.simpleform(); return temp; } Rational Rational::div(Rational c) { Rational temp; temp.numer = numer / c.numer; temp.denom = denom / c.denom; temp.simpleform(); return temp; } Rational Rational::neg(Rational c) { c.numer = -(c.numer); c.denom = -(c.denom); return c; } bool Rational::less(Rational c) { bool temp = 0; if ((numer * c.denom) < (c.numer * denom)) temp = 1; return temp; } void Rational::simpleform() { float n=(float)this->numer; float d=(float)this->denom; int i=2; while((i<=n) && (n!=1)) { while((n/i==(int)n/i) && (d/i ==(int)d/i)) { n/=i; d/=i; } i++; } numer=n; denom=(n==0)?1:d; } Rational Rational::operator + (Rational c) { Rational temp; temp.numer = ((numer*c.denom) + (denom*c.numer)); temp.denom = (denom * c.denom); temp.simpleform(); return temp; } Rational Rational::operator - (Rational c) { Rational temp; temp.numer = numer - c.numer; temp.denom = denom - c.denom; temp.simpleform(); return temp; } Rational Rational::operator * (Rational c) { Rational temp; temp.numer = numer * c.numer; temp.denom = denom * c.denom; temp.simpleform(); return temp; } Rational Rational::operator / (Rational c) { Rational temp; temp.numer = numer / c.numer; temp.denom = denom / c.denom; temp.simpleform(); return temp; } bool Rational::operator == (Rational c) { bool temp = 0; if ((numer * c.denom) == (c.numer * denom)) temp = 1; return temp; } bool Rational::operator != (Rational c) { bool temp = 0; if ((numer * c.denom) != (c.numer * denom)) temp = 1; return temp; } bool Rational::operator > (Rational c) { bool temp = 0; if ((numer * c.denom) > (c.numer * denom)) temp = 1; return temp; } bool Rational::operator < (Rational c) { bool temp = 0; if ((numer * c.denom) < (c.numer * denom)) temp = 1; return temp; } bool Rational::operator >= (Rational c) { bool temp = 0; if ((numer * c.denom) >= (c.numer * denom)) temp = 1; return temp; } bool Rational::operator <= (Rational c) { bool temp = 0; if ((numer * c.denom) <= (c.numer * denom)) temp = 1; return temp; }