Problem:
Create a Fraction class with two private positive integer member variables numerator and denominator, one
constructor with two integer parameters num and den with default values 0 and 1, one display function that
print out a fraction in the format numerator/denominator in the proper form such as 2/3 or ½ . Note: 2/4
should be displayed as ½.
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class Fraction {
private:
int numerator;
int denominator;
int gcd(int m, int n) {
if (0 == n)
return m;
else
return gcd(n, m % n);
}
public:
Fraction(int numerator, int denominator) {
if (denominator == 0) {
cout<<"Denominator is zero.\n\n";
}
int g = gcd(numerator, denominator);
this->numerator = numerator / g;
this->denominator = denominator / g;
}
void print(){
if (denominator == 1){
cout<<numerator;
}
else{
cout<<numerator << "/" << denominator;
}
}
~Fraction(){
}
};
int main(void){
Fraction f1(4,8);
f1.print();
cout<<"\n\n";
Fraction f2(3,8);
f2.print();
cout<<"\n\n";
system("pause");
return 0;
}
Comments
Leave a comment