Code:
#include <iostream>
void menu(char&, int&, int&, int&, int&);
void addFractions(int, int, int, int, int, int);
void subtractFractions(int, int, int, int, int, int);
void multiplyFractions(int, int, int, int, int, int);
void divideFractions(int, int, int, int, int, int);
using namespace std;
int main()
{
char operation;
int numeratorOne, denominatorOne, numeratorTwo, denominatorTwo;
int numeratorResult = 0, denominatorResult = 0;
menu(operation, numeratorOne, denominatorOne, numeratorTwo, denominatorTwo);
switch(operation)
{
case 'A': case 'a': addFractions(numeratorOne, denominatorOne, numeratorTwo,
denominatorTwo, numeratorResult, denominatorResult); break;
case 'S': case 's': subtractFractions(numeratorOne, denominatorOne, numeratorTwo,
denominatorTwo, numeratorResult, denominatorResult);break;
case 'M': case 'm': multiplyFractions(numeratorOne, denominatorOne, numeratorTwo,
denominatorTwo, numeratorResult, denominatorResult); break;
case 'D': case 'd': divideFractions(numeratorOne, denominatorOne, numeratorTwo,
denominatorTwo, numeratorResult, denominatorResult); break;
case 'X': case 'x': break;
default: cout << "Invalid selection"; break;
}
return 0;
}
void menu(char& operation, int& numeratorOne, int& denominatorOne,
int& numeratorTwo, int& denominatorTwo)
{
cout << "This program performs operations on fractions. Enter"
<< "\na : To add fraction"
<< "\ns : To subtract fraction"
<< "\nm : To multiply fraction"
<< "\nd : To divide fraction"
<< "\nx : To exit the program" << endl;
cin >> operation;
cout << endl;
cout << "For fraction 1"
<< "\nEnter the numerator: ";
cin >> numeratorOne;
cout << endl;
cout << "Enter the denominator: ";
cin >> denominatorOne;
cout << endl;
if (denominatorOne == 0)
{
cout << "The denominator must be nonzero"
<< "\nEnter the denominator: ";
cin >> denominatorOne;
cout << endl;
}
cout << "For fraction 2"
<< "\nEnter the numerator: ";
cin >> numeratorTwo;
cout << endl;
cout << "Enter the denominator: ";
cin >> denominatorTwo;
cout << endl;
if (denominatorTwo == 0)
{
cout << "The denominator must be nonzero"
<< "\nEnter the denominator: ";
cin >> denominatorTwo;
cout << endl;
}
}
void addFractions(int numeratorOne, int denominatorOne, int numeratorTwo,
int denominatorTwo, int numeratorResult, int denominatorResult)
{
numeratorResult = (numeratorOne * denominatorTwo) + (numeratorTwo * denominatorOne);
denominatorResult = denominatorOne * denominatorTwo;
cout << numeratorOne << "/" << denominatorOne << " + " << numeratorTwo
<< "/" << denominatorTwo << " = " << numeratorResult << "/"
<< denominatorResult << endl;
}
void subtractFractions(int numeratorOne, int denominatorOne, int numeratorTwo,
int denominatorTwo, int numeratorResult, int denominatorResult)
{
numeratorResult = (numeratorOne * denominatorTwo) - (numeratorTwo * denominatorOne);
denominatorResult = denominatorOne * denominatorTwo;
cout << numeratorOne << "/" << denominatorOne << " - " << numeratorTwo
<< "/" << denominatorTwo << " = " << numeratorResult << "/"
<< denominatorResult << endl;
}
void multiplyFractions(int numeratorOne, int denominatorOne, int numeratorTwo,
int denominatorTwo, int numeratorResult, int denominatorResult)
{
numeratorResult = numeratorOne * numeratorTwo;
denominatorResult = denominatorOne * denominatorTwo;
cout << numeratorOne << "/" << denominatorOne << " * " << numeratorTwo
<< "/" << denominatorTwo << " = " << numeratorResult << "/"
<< denominatorResult << endl;
}
void divideFractions(int numeratorOne, int denominatorOne, int numeratorTwo,
int denominatorTwo, int numeratorResult, int denominatorResult)
{
numeratorResult = numeratorOne * denominatorTwo;
denominatorResult = denominatorOne * numeratorTwo;
cout << numeratorOne << "/" << denominatorOne << " / " << numeratorTwo
<< "/" << denominatorTwo << " = " << numeratorResult << "/"
<< denominatorResult << endl;
}