220 likes | 338 Vues
This document presents a C++ implementation of a Fraction class, designed to perform various operations on fractions, such as reading input, printing fractions, calculating reciprocals, and unreducing fractions by a given integer factor. The Fraction class has private members for the numerator and denominator, and public methods for input and output operations. This implementation demonstrates how to work with fractions in a structured way, making it easier for developers to manipulate fractional numbers in their applications.
E N D
Definition and Use //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif #include “fraction.h” int main() { Fraction f, g; f.m_Numerator = 7; f.readin(); f.print(); f.unreduce(5); return 0; }
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif //fraction.cpp #include “fraction.h” #include <iostream> using std::cout; using std::cin;
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif //fraction.cpp #include “fraction.h” #include <iostream> using std::cout; using std::cin; void Fraction::readin() { }
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif //fraction.cpp #include “fraction.h” #include <iostream> using std::cout; using std::cin; void Fraction::readin() { cout<<“enter numerator: ”; cin>>m_Numerator; cout<<“enter denominator: ”; cin>>m_Denominator; return; }
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif //fraction.cpp continued...
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif //fraction.cpp continued... • void Fraction::print() • { • cout<<“(”<<m_Numerator • <<“/”<<m_Denominator<<“)”; • return; • }
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif //fraction.cpp continued... • void Fraction::print() • { • cout<<“(”<<m_Numerator • <<“/”<<m_Denominator<<“)”; • return; • } • Fraction Fraction::reciprocal() • { • Fraction returnable; • returnable.m_Numerator = m_Denominator; • returnable.m_Denominator = m_Numerator; • return returnable; • }
Function Definitions //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif //fraction.cpp continued... • void Fraction::print() • { • cout<<“(”<<m_Numerator • <<“/”<<m_Denominator<<“)”; • return; • } • Fraction Fraction::reciprocal() • { • Fraction returnable; • returnable.m_Numerator = m_Denominator; • returnable.m_Denominator = m_Numerator; • return returnable; • } • void Fraction::unreduce (const int m) • { • m_Numerator*=m; • m_Denominator*=m; • return; • }
Fraction in Use #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use //fraction.h #ifndef FRACTION_H #define FRACTION_H class Fraction { public: void readin(); void print(); Fraction reciprocal(); void unreduce(const int m); private: intm_Numerator; intm_Denominator; }; #endif #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • void Fraction::readin() • { • cout<<“enter numerator: ”; • cin>>m_Numerator; • cout<<“enter denominator: ”; • cin>>m_Denominator; • return; • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • void Fraction::print() • { • cout<<“(”<<m_Numerator • <<“/”<<m_Denominator<<“)”; • return; • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • void Fraction::readin() • { • cout<<“enter numerator: ”; • cin>>m_Numerator; • cout<<“enter denominator: ”; • cin>>m_Denominator; • return; • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • void Fraction::print() • { • cout<<“(”<<m_Numerator • <<“/”<<m_Denominator<<“)”; • return; • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • void Fraction::unreduce (const int m) • { • m_Numerator*=m; • m_Denominator*=m; • return; • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • void Fraction::print() • { • cout<<“(”<<m_Numerator • <<“/”<<m_Denominator<<“)”; • return; • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • Fraction Fraction::reciprocal() • { • Fraction returnable; • returnable.m_Numerator = • m_Denominator; • returnable.m_Denominator = • m_Numerator; • return returnable; • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
Fraction in Use • ??? Fraction::operator+(???) • { • ??? • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...
B-b-b-but! • ??? Fraction::operator=(???) • { • ??? • } #include “fraction.h” int main() { Fraction f1, f2, f3; f1.readin(); f1.print(); f2.readin(); f2.print(); f2.unreduce(2); f2.print(); f3 = f1.reciprocal(); f3 = f1 + f2; ...