can someone help me figure out why my output is incorrect any help would be apprecaited

``````#include<iostream>
using namespace std;

class fractions
{
public:
fractions fractions :: operator+(fractions f);
fractions fractions :: operator-(fractions f);
fractions fractions :: operator*(fractions f);
fractions fractions :: operator/(fractions f);
fractions subFraction(fractions);
fractions multiFraction(fractions);
fractions divideFraction(fractions);
fractions();
fractions(int, int);
void getFraction();
void printFraction();
private:
int numerator;
int denominator;
};

{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator + denominator * f.numerator;
return temp;
}
fractions fractions :: operator+(fractions f)
{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator + denominator * f.numerator;
return temp;
}
//method to subtract two fractions
fractions fractions :: subFraction(fractions f)
{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator - denominator * f.numerator;
return temp;
}
//method to subtract two fractions
fractions fractions :: operator-(fractions f)
{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator - denominator * f.numerator;
return temp;
}
//method to multiply two fractions
fractions fractions :: multiFraction(fractions f)
{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator * denominator * f.numerator;
return temp;
}
//method to multiply two fractions
fractions fractions :: operator*(fractions f)
{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator * denominator * f.numerator;
return temp;
}
//method to divide to fractions
fractions fractions :: divideFraction(fractions f)
{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator / denominator * f.numerator;
return temp;
}
//method to divide two fractions
fractions fractions :: operator/(fractions f)
{
fractions temp;
temp.denominator = denominator * f.denominator;
temp.numerator = numerator * f.denominator / denominator * f.numerator;
return temp;
}

fractions::fractions()
{
numerator = 0;
denominator = 1;
}

fractions::fractions(int n, int d)
{
numerator = n;
denominator = d;
}

void fractions::printFraction()
{
cout <<numerator<<'/'<<denominator<<endl;
}

void getFraction(int &numerator, int &denominator)
{
cin >>numerator;
cin >>denominator;
}

int main()
{
int n,d;
fractions f1(1,2);
fractions f2();
fractions f3;
fractions f4;
getFraction(n,d);
fractions f5(n,d);

f4 = f3 + f1;
f3.printFraction();
f4.printFraction();

f3 = f1.subFraction(f2);
f4 = f3 - f1;
f3.printFraction();
f4.printFraction();

f3 = f1.multiFraction(f2);
f4 = f3 * f1;
f3.printFraction();
f4.printFraction();

f3 = f1.divideFraction(f2);
f4 = f3 / f1;
f3.printFraction();
f4.printFraction();
system("pause");

}``````
4
Contributors
4
Replies
5
Views
7 Years
Discussion Span
Last Post by jonsca

It would help if you posted the output you were supposed to have and what output you got

First off, you cannot write `fractions fractions :: operator/(fractions f);` within the definition of a class.

Second, you have provided a default constructor that set the fraction to 0/1 . That gives perfectly acceptable results. So which test is wrong??

Third: You have not used references in many of your function , so there is lots of unnecessary copying

Forth: The biggest failing the the lack of code reuse. You have addFraction and operator+ using the smae code. PLEASE call one with the other. Otherwize you have two places to change each time and that leads to a mess.

It would help if you posted the output you were supposed to have and what output you got

the output im getting is

``````Please enter numerator2
10/8
28/16
-2/8
-12/16
24/8
384/16
6/8
1/16
Press any key to continue . . .
``````

its suppose to add subtract mulitplty etc fractions

Edited by mike_2000_17: Fixed formatting