Write a C++ program which create a class for working with mixed fractions. MUST BE MIXED, NOT IMPROPER. GIVEN: The main. class Fraction { public: Fraction(int = 1, int = 1, int = 1); void printData(); void add(Fraction, Fraction); void sub(Fraction, Fraction); void mult(Fraction, Fraction); void divide(Fraction, Fraction); Fraction recip(); void reduce(); private: int whole, num, den; }; int main() { Fraction f1(8, 12, 14), f2(3, 4, 6), sum, diff, prod, quo; cout << \"The fractions are \" << endl; f1.printData(); cout << \" and \"; f2.printData(); cout << endl << endl; sum.add(f1, f2); diff.sub(f1, f2); prod.mult(f1, f2); quo.divide(f1, f2); cout << \"Sum is \"; sum.printData(); cout << endl << endl; cout << \"Difference is \"; diff.printData(); cout << endl << endl; cout << \"Product is \"; prod.printData(); cout << endl << endl; cout << \"Quotient is \"; quo.printData(); cout << endl << endl; f1.recip(); f2.recip(); cout << \"The reciprocals are \"; f1.printData(); cout << \" \"; f2.printData(); cout << endl << endl; system(\"PAUSE\"); return 0; } Output should have MIXED FRACTIONS ONLY. Not improper fractions. Solution PROGRAM CODE: /* * main.cpp * * Created on: 31-Oct-2016 * Author: kaju */ #include using namespace std; class Fraction { public: Fraction(int = 1, int = 1, int = 1); void printData(); void add(Fraction, Fraction); void sub(Fraction, Fraction); void mult(Fraction, Fraction); void divide(Fraction, Fraction); Fraction recip(); void reduce(); private: int whole, num, den; }; void Fraction::reduce() { while(num%2 == 0 && den%2 == 0) { num = num/2; den = den/2; } while(num%3 == 0 && den%3 == 0) { num = num/3; den = den/3; } while(num%5 == 0 && den%5 == 0) { num = num/5; den = den/5; } } Fraction::Fraction(int whole, int num, int den) { this->den = den; this->whole = whole; this->num = num; reduce(); } void Fraction::printData() { if(whole == 0) cout<.