rendered paste body#include <iostream.h>// for divisionvoid invert(int &num, int &den){ int mid; mid = num; num = den; den = mid;}void reduce(int &num, int &den){ int least, gcf, rednum, redden; int i; if(num >= den) least = num; else least = den; for(i = 1; i <= least; i++){ if((num % i == 0) && (den % i == 0)) gcf = i; } rednum = num / gcf; redden = den / gcf; num = rednum; den = redden;}int menu(){ int choice; cout << "Choose an operation for a fraction: " << endl << "1. Multiply" << endl << "2. Divide" << endl << "3. Add" << endl << "4. Subtract" << endl << "5. Exit" << endl << ">> "; cin >> choice; return choice;}bool validate(int num){ if(num >= 1) return 1;}void frac_input(int &num1, int &den1, int &num2, int &den2){ do{ cout << "Enter your first numerator: "; cin >> num1; } while (!validate(num1)); do{ cout << "Enter your first denominator: "; cin >> den1; } while (!validate(den1)); do{ cout << "Enter your second numerator: "; cin >> num2; } while (!validate(num2)); do{ cout << "Enter your second denominator: "; cin >> den2; } while (!validate(den2));}void multiply_frac(int num1, int den1, int num2, int den2, int &ansnum, int &ansden){ ansnum = num1 * num2; ansden = den1 * den2;}void add_frac(int num1, int den1, int num2, int den2, int &ansnum, int &ansden){ if(den1 != den2){ num1 = num1 * den2; num2 = num2 * den1; ansden = den1 * den2; } else ansden = den1; ansnum = num1 + num2;}void subtract_frac(int num1, int den1, int num2, int den2, int &ansnum, int &ansden){ if(den1 != den2){ num1 = num1 * den2; num2 = num2 * den1; ansden = den1 * den2; } else ansden = den1; ansnum = num1 - num2;}void output(int num1, int den1, int num2, int den2, int ansnum, int ansden, char oper){ cout << num1 << "/" << den1 << " " << oper << " " << num2 << "/" << den2 << " = " << ansnum << "/" << ansden << endl;}void act_menu(int choice){ int num1, num2, den1, den2, ansnum, ansden; switch(choice){ case 1: frac_input(num1, den1, num2, den2); multiply_frac(num1, den1, num2, den2, ansnum, ansden); output(num1, den1, num2, den2, ansnum, ansden, '*'); break; case 2: frac_input(num1, den1, num2, den2); reverse(num2, den2); multiply_frac(num1, den1, num2, den2, ansnum, ansden); output(num1, den1, den2, num2, ansnum, ansden, '/'); break; case 3: frac_input(num1, den1, num2, den2); add_frac(num1, den1, num2, den2, ansnum, ansden); output(num1, den1, num2, den2, ansnum, ansden, '+'); break; case 4: frac_input(num1, den1, num2, den2); subtract_frac(num1, den1, num2, den2, ansnum, ansden); output(num1, den1, num2, den2, ansnum, ansden, '-')