Can someone help me add C++ code to below code to reduce fractions to lowest ter
ID: 3769045 • Letter: C
Question
Can someone help me add C++ code to below code to reduce fractions to lowest terms? I know this isn't the best way to code this, but I would like to know how it would be possible with what I have.
if (fractionChoice == FRACTION_EXIT)
break;
cout <<" Enter numerator of first fraction: " << endl;
cin >> num1;
cout <<" Enter denominator of first fraction: " << endl;
cin >> denom1;
cout <<" Enter numerator of second fraction: " << endl;
cin >> num2;
cout <<" Enter denominator of second fraction: " << endl;
cin >> denom2;
if (fractionChoice == FRACTION_ADD)
{ numResult = (num1 * denom2) + (num2 * denom1);
denomResult = denom1 * denom2;
cout<< num1 << '/' << denom1 << '+' << num2 << '/' << denom2 << '=' << numResult << '/' << denomResult << endl;
}
if (fractionChoice == FRACTION_SUB)
{ numResult = (num1 * denom2) - (num2 * denom1);
denomResult = denom1 * denom2;
cout<< num1 << '/' << denom1 << '-' << num2 << '/' << denom2 << '=' << numResult << '/' << denomResult << endl;
}
if (fractionChoice == FRACTION_MUL)
{ numResult = num1 * num2;
denomResult = denom1 * denom2;
cout<< num1 << '/' << denom1 << '*' << num2 << '/' << denom2 << '=' << numResult << '/' << denomResult << endl;
}
if (fractionChoice == FRACTION_DIV)
{ numResult = num1 * denom2;
denomResult = denom1 * num2;
cout<< num1 << '/' << denom1 << '/' << num2 << '/' << denom2 << '=' << numResult << '/' << denomResult << endl;
}
Explanation / Answer
#include <iostream>
using namespace std;
class fraction
{
private:
int numerator;
int denominator;
public:
fraction() : numerator(0), denominator(0)
{
}
fraction(int num, int den=1);
friend fraction operator +(fraction f1, fraction f2);
friend fraction operator-(fraction f1, fraction f2);
friend fraction operator*(fraction f1, fraction f2);
friend fraction operator/(fraction f1, fraction f2);
friend istream& operator >> (istream& s, fraction& e);
friend ostream& operator<< (ostream& out, fraction& f);
};
#include <iostream>
#include <string>
#include "fraction.h"
using namespace std;
fraction operator+(fraction f1, fraction f2)
{
fraction temp;
temp.numerator = f1.numerator * f2.denominator + f1.denominator * f2.numerator;
temp.denominator = f1.denominator * f2.denominator;
return temp;
}
ostream& operator<<(ostream& out, fraction& f)
{
out << f.numerator << "/" << f.denominator;
return out;
}
istream& operator >> (istream& s, fraction& f)
{
cout << " Please type the numerator: ";
cin >> f.numerator;
cout << "Please type the denominator: ";
cin >> f.denominator;
return s;
}
#include <iostream>
#include <string>
#include "fraction.h"
using namespace std;
int main()
{
fraction f1;
fraction f2;
fraction answer;
fraction f3;
char symbol = ' ';
string name;
while (true)
{
cout << "A ADD ";
cout << "S SUBTRACT ";
cout << "M MULTIPLY ";
cout << "D DIVIDE ";
cout << "E EXIT ";
cout << " What operation do you want to use? ";
cin >> symbol;
if (symbol == 'e' || symbol == 'E')
exit(0);
switch (symbol)
{
case 'A':
cout << " Please type values for fraction 1 and fraction 2 ";
cin >> f1 >> f2;
cout << " Fraction 1 = " << f1 << " Fraction 2 = " << f2;
f3 = f1 + f2;
cout << " The sum of F1 and F2 is: " << f3 << " " << endl;
break;
}
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.