please debugg the following C++ code.
#include <iostream>
using namespace std;
class Fraction{
private:
int numerator;
int denominator;
public:
Fraction(){
int numerator=0;
int denominator=0;
}
void SetNumerator(Fraction*f,int n){
f->numerator=n;
}
void SetDenominator(Fraction*f,int d){
f->denominator=d;}
int GetNumerator(Fraction*f){
return f->numerator;}
int GetDenominator(Fraction*f){
return f->denominator;}
Fraction AddFraction(Fraction*f1,Fraction*f2);
void SimplifyFraction(Fraction*f);
void PrintFraction(Fraction*f);
};
int main()
{
Fraction f1,f2, result;
int tmpN , tmpD;
char divideSign;
cout<<“Enter the first fraction”;
cin>>tmpN>>divideSign>>tmpD;
f1.SetNumerator(&f1,tmpN);
f1.SetDenominator(&f1,tmpD);
cout<<“Enter the second fraction”;
cin>>tmpN>>divideSign>>tmpD;
f2.SetNumerator(&f2,tmpN);
f2.SetDenominator(&f2,tmpD);
result=AddFraction(&f1,&f2);
result.SimplifyFraction(&result);
f1.PrintFraction(&f1); cout<<“+”;
f2.PrintFraction(&f2); cout<<“=”;
result.PrintFraction(&result); cout<<endl;
cout<<GetNumerator(&f1)<<“/”<<GetDenominator(&f1)<<“+”;
cout<<GetNumerator(&f2)<<“/”<<GetDenominator(&f2)<<“=”;
cout<<GetNumerator(&result)<<“/”<<GetDenominator(&result)<<endl;
}
Fraction AddFraction(Fraction*f1,Fraction*f2)
{
Fraction f3;
f3.SetNumerator(&f3,(f1->numerator*f2->denominator+f1->denominator*f2->numerator));
f3.SetDenominator(&f3,f1->denominator*f2->denominator);
return f3;
}
void SimplifyFraction(Fraction*f)
{
int a,b,c,gcd;
if(f->denominator<0){
f->denominator=-f->denominator;
f->numerator=-f->numerator;
};
a=abs(f->numerator);
b=abs(f->denominator);
c=a%b;
while (c){
a=b;
b=c;
c=a%b;}
gcd=b;
f->numerator /=gcd;
f->denominator /=gcd;
}
void PrintFraction(Fraction*f)
{
cout<<f->numerator<<“/”<<f->denominator;
}
Expert Answer
An answer will be send to you shortly. . . . .