Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a function that reads a problem involving two common fractions such as 2/4

ID: 3782546 • Letter: W

Question

Write a function that reads a problem involving two common fractions such as 2/4 + 5/6. After reading the common fractions problem, call a function to perform the indicated operation (call addFrac for +, call multiplyFrac for *, and so on). Pass the numerator and denominator of both fractions to the function that performs the operation; the func- tion should return the numerator and denominator of the result through its output parameters. Then display the result as a common fraction.

your program should be like this sample output

This is my coding

#include <iostream>
#include <string>

using namespace std;

void readFracProblem(int&, int&, int&, int&, char&);
void addFrac(int, int, int, int, int&, int&);
void subFrac(int, int, int, int, int&, int&);
void multiplyFrac(int, int, int, int, int&, int&);
void divideFrac(int, int, int, int, int&, int&);
void output(char, int, int);


int main()
{
   int numerator1, numerator2, numerator3, denominator1, denominator2, denominator3;
   char op;
   string an;


   readFracProblem(numerator1, numerator2, denominator1, denominator2, op);
   if(op == '+')
   {
       addFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);

       output(op, numerator3, denominator3);
   }
   else if(op == '-')
   {
       subFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);
   }
   else if(op == '*')
   {
       multiplyFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);
   }
   else if(op == '/')
   {
       divideFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);
   }
   else
   {
       cout << "Invalid operation" << endl;
   }
   while(an != "No")
   {

       cout << "Continue: Yes/No? ";
       cin >> an;
       if(an == "Yes")
       {
           cin >> an;
           readFracProblem(numerator1, numerator2, denominator1, denominator2, op);
           output(op, numerator3, denominator3);
       }
       else
       {
           cout << "You entered wrong input" << endl;
       }
       readFracProblem(numerator1, numerator2, denominator1, denominator2, op);
       output(op, numerator3, denominator3);

   }

   return 0;
}

void readFracProblem(int& n1, int& n2, int& d1, int& d2, char& op)
{
  
  
  
  
   cout << "Enter a common fraction problem: ";
   char slash, trash;
   cin >> n1 >> slash >> d1 >> op >> n2 >> slash >> d2;
  
       //trash = getchar();
   if(d1 == 0 || d2 == 0)
       cout << "Cannot solve this problem" << endl;

      
}


void addFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (d1 * n2) + (d2 * n1);
   d3 = (d1 * d2);
  
}

void subFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (d2 * n1) - (d1 * n2);
   d3 = (d1 * d2);
  
}

void multiplyFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (n2 * n1);
   d3 = (d1 * d2);
  
}

void divideFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (d2 * n1);
   d3 = (d1 * n2);
  
}


void output(char op, int n, int d)
{
   //cout << m << " result: " << n << '/' << d << endl;
   if(op == '+')
   {
       cout << "add result " << n << '/' << d << endl;
   }
   else if(op == '-')
   {
       cout << "sub result " << n << '/' << d << endl;
   }
   else if(op == '*')
   {
       cout << "mult result " << n << '/' << d << endl;
   }
   else if(op == '/')
   {
       cout << "div result " << n << '/' << d << endl;
   }
}

Can anyone correct my coding to get the same result as the sample output in the above please

Explanation / Answer

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

void readFracProblem(int&, int&, int&, int&, char&);
void addFrac(int, int, int, int, int&, int&);
void subFrac(int, int, int, int, int&, int&);
void multiplyFrac(int, int, int, int, int&, int&);
void divideFrac(int, int, int, int, int&, int&);
void output(char, int, int);
void CalcRes();

int numerator1, numerator2, numerator3, denominator1, denominator2, denominator3;
char op;
string an;
int main()
{
   readFracProblem(numerator1, numerator2, denominator1, denominator2, op);
   CalcRes();
   while(an != "No")
   {
       cout << "Continue: Yes/No? ";
       cin >> an;
       if(an == "Yes")
       {
           //cin >> an;
           readFracProblem(numerator1, numerator2, denominator1, denominator2, op);
           CalcRes();
           //output(op, numerator3, denominator3);
       }
       else
       {
           cout << "You entered wrong input" << endl;
       }
       /* readFracProblem(numerator1, numerator2, denominator1, denominator2, op);
       output(op, numerator3, denominator3);*/
   }
   return 0;
}

void CalcRes(){
   if(op == '+')
   {
       addFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);
   }
   else if(op == '-')
   {
       subFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);
   }
   else if(op == '*')
   {
       multiplyFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);
   }
   else if(op == '/')
   {
       divideFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);
   }
   else
   {
       cout << "Invalid operation" << endl;
   }
}

void readFracProblem(int& n1, int& n2, int& d1, int& d2, char& op)
{

   cout << "Enter a common fraction problem: ";
   char slash, trash;
   cin >> n1 >> slash >> d1 >> op >> n2 >> slash >> d2;

   //trash = getchar();
   if(d1 == 0 || d2 == 0)
       cout << "Cannot solve this problem" << endl;

}

void addFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (d1 * n2) + (d2 * n1);
   d3 = (d1 * d2);

}

void subFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (d2 * n1) - (d1 * n2);
   d3 = (d1 * d2);

}

void multiplyFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (n2 * n1);
   d3 = (d1 * d2);

}

void divideFrac(int n1, int n2, int d1, int d2, int& n3, int& d3)
{
   n3 = (d2 * n1);
   d3 = (d1 * n2);

}


void output(char op, int n, int d)
{
   //cout << m << " result: " << n << '/' << d << endl;
   if(op == '+')
   {
       /*addFrac(numerator1, numerator2, denominator1, denominator2, numerator3, denominator3);
       output(op, numerator3, denominator3);*/
       cout << "add result " << n << '/' << d << endl;
   }
   else if(op == '-')
   {
       cout << "sub result " << n << '/' << d << endl;
   }
   else if(op == '*')
   {
       cout << "mult result " << n << '/' << d << endl;
   }
   else if(op == '/')
   {
       cout << "div result " << n << '/' << d << endl;
   }

   else
   {
       cout << "Invalid operation" << endl;
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote