// ------------------------------------------------------------------------------------------------- // Fraction class // ------------------------------------------------------------------------------------------------- class Fraction { private: int fNumerator; int fDenominator; int gcd(int x, int y); protected: void normalize(); public: Fraction() { fNumerator=0; fDenominator=1; } Fraction(int numerator, int denominator); Fraction(int number); Fraction(const Fraction& from); void assign(const Fraction& operand); Fraction add(const Fraction& operand) const; Fraction sub(const Fraction& operand) const; Fraction mult(const Fraction& operand) const; Fraction div(const Fraction& operand) const; void add2(const Fraction& operand); void sub2(const Fraction& operand); void mult2(const Fraction& operand); void div2(const Fraction& operand); int numerator() const { return fNumerator; } int denominator() const { return fDenominator; } double value() const { return ( static_cast(fNumerator)/fDenominator); } bool equals(const Fraction& operand) const; bool equalsNot(const Fraction& operand) const; bool leq(const Fraction& operand) const; bool geq(const Fraction& operand) const; } ; // ------------------------------------------------------------------------------------------------- // Fraction Class Implementation // ------------------------------------------------------------------------------------------------- int Fraction::gcd(int x, int y) { if (x==y) return x; if (xgcd(fNumerator, fDenominator); fNumerator=fNumerator/g; fDenominator=fDenominator/g; } // ------------------------------------------------------------------------------------------------- Fraction::Fraction(int numerator, int denominator) { } // ------------------------------------------------------------------------------------------------- Fraction::Fraction(int number) { } // ------------------------------------------------------------------------------------------------- Fraction::Fraction(const Fraction& from) { } // ------------------------------------------------------------------------------------------------- void Fraction::assign(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- Fraction Fraction::add(const Fraction& operand) { Fraction result=Fraction( fNumerator*operand.fDenominator+operand.fNumerator*fDenominator, fDenominator*operand.fDenominator ); result.normalize(); return result; } // ------------------------------------------------------------------------------------------------- Fraction Fraction::sub(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- Fraction Fraction::mult(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- Fraction Fraction::div(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- void Fraction::add2(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- void Fraction::sub2(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- void Fraction::mult2(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- void Fraction::div2(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- bool Fraction::equals(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- bool Fraction::equalsNot(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- bool Fraction::leq(const Fraction& operand) { } // ------------------------------------------------------------------------------------------------- bool Fraction::geq(const Fraction& operand) { }