Define a class for a type called Fraction . This class is used to represent a ratio of two integers. Include mutator functions that allow the user to set the numera- tor and the denominator. Also include a member function that returns the value of the numerator divided by the denominator as a double. Include an additional member function that outputs the value of the fraction reduced to lowest terms. For example, instead of outputting 20/60 the function should output 1/3. This will require finding the greatest common divisor for the numerator and denominator, and then dividing both by that number. Embed your class in a test program.
// Fraction.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Fraction
{
public:
Fraction()
{
}
Fraction(int n1,int d1)
{
numerator=n1;
denominator=d1;
}
void setNumerator(int n1)
{
numerator=n1;
}
void setDenominator(int d1)
{
denominator=d1;
}
double getNumerator()
{
return (double)numerator;
}
double getDenominator()
{
return (double)denominator;
}
double getValue()
{
return ((double)numerator)/denominator ;
}
void reducedFraction()
{
int gcd = GCD(numerator,denominator);
cout<<(numerator/gcd)<<"/"<<(denominator/gcd)<<endl;
}
Fraction add(Fraction fa)
{
Fraction fr2;
fr2.denominator=this->denominator * fa.denominator;
fr2.numerator=this->numerator * fa.denominator + this->denominator * fa.numerator;
return fr2;
}
Fraction subtract(Fraction fs)
{
Fraction f2;
f2.denominator = this->denominator * fs.denominator;
f2.numerator = this->numerator * fs.denominator - this->denominator * fs.numerator;
return f2;
}
Fraction multiply(Fraction fm)
{
Fraction f2;
f2.denominator=this->denominator * fm.denominator;
f2.numerator=this->numerator * fm.numerator;
return f2;
}
Fraction divide(Fraction fd)
{
Fraction f2;
f2.denominator=this->denominator * fd.numerator;
f2.numerator=this->numerator * fd.denominator;
return f2;
}
int GCD(int num,int den)
{
if(den==0)
return num;
else if(den>num)
return GCD(den,num);
else
return GCD(den,num%den);
}
private:
int numerator;
int denominator;
};
int main()
{
Fraction f1(20,60);
Fraction f2;
f2.setNumerator(45);
f2.setDenominator(25);
cout<<"\nFraction 1: ";
cout<<f1.getNumerator()<<"/"<<f1.getDenominator()<<endl;
cout<<"Fraction 2: ";
cout<<f2.getNumerator()<<"/"<<f2.getDenominator()<<endl<<endl;
cout<<"Reduced value of fraction 1: ";
f1.reducedFraction();
cout<<"Reduced value of fraction 2: ";
f2.reducedFraction();
Fraction f3(30,40);
Fraction f4;
f4.setNumerator(77);
f4.setDenominator(122);
cout<<"\nFraction 3: ";
cout<<f3.getNumerator()<<"/"<<f3.getDenominator()<<endl;
cout<<"Fraction 4: ";
cout<<f4.getNumerator()<<"/"<<f4.getDenominator()<<endl<<endl;
Fraction f5= f3.add(f4);
cout<<"Addition :";
f5.reducedFraction();
f5= f3.subtract(f4);
cout<<"Subtraction :";
f5.reducedFraction();
f5= f3.multiply(f4);
cout<<"Multiplication :";
f5.reducedFraction();
f5= f3.divide(f4);
cout<<"Division :";
f5.reducedFraction();
getchar();
return 0;
}
OUTPUT: