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

Code needs to be done in C++ and be able to compile/run in Visual Studio 2012 (o

ID: 670053 • Letter: C

Question

Code needs to be done in C++ and be able to compile/run in Visual Studio 2012 (or later) - I cannot use iostream.h, conio.h, etc.. DO NOT answer unless you can answer all parts of the problem - please read through everything. I need your help!:

In previous chapters, you have been developing a Fraction structure for Teacher’s Pet Software. Now you will develop a class that contains the fields and functions that a Fraction needs. Create a Fraction class with three private data fields for whole number, numerator, and denominator. Also create a constant static public field to hold the symbol that separates a
numerator and denominator when a Fraction is displayed—the slash. Create three public member functions for the class, as follows:

(1) An enterFractionValue()function that prompts the user to enter values for the Fraction. Do not allow the user to enter a value of 0 for the denominator of any Fraction; continue to prompt the user for a denominator value until a valid one is
entered.

(2) A reduceFraction()function that reduces a Fraction to proper form. For example, a Fraction with the value 0 2/6 would be reduced to 0 1/3 and a Fraction with the value 4 18/4 would be reduced to 8 1/2.

(3) A displayFraction()function that displays the Fraction whole number, numerator, slash, and denominator

(4) Add any other functions to the Fraction class that will be useful to you. Create a main() function that declares a Fraction object, and continues to get Fraction values from the user until the user enters a Fraction with value 0 (both the whole number and numerator are 0). For each Fraction entered, display the Fraction, reduce the Fraction, and display the Fraction again.

Explanation / Answer

#include <stdio.h>

class Fraction{
public:
   int wholeNumber;
   int numerator;
   int denominator;
   static const char seperator = '/';
   void enterFractionValue();
   void reduceFraction();
   void displayFraction();
};

void Fraction::enterFractionValue(){
   printf("Whole Number: ");
   scanf_s("%d", &wholeNumber);
   printf("Numerator: ");
   scanf_s("%d", &numerator);
   do{
       printf("Denominator: ");
       scanf_s("%d", &denominator);
   } while (denominator == 0);
}

void Fraction::reduceFraction(){
   if (numerator > denominator){
       wholeNumber += (numerator / denominator);
       numerator %= denominator;
   }
   int min = numerator;
   for (int i = 2; i <= min; ++i){
       while ((numerator % i == 0) && (denominator % i == 0)){
           numerator /= i;
           denominator /= i;
       }
   }
}

void Fraction::displayFraction(){
   printf("%d %d/%d ", wholeNumber, numerator, denominator);
}

int main(){
   Fraction f;
   while (true){
       f.enterFractionValue();
       if (f.numerator == 0 && f.wholeNumber == 0){
           break;
       }
       f.displayFraction();
       f.reduceFraction();
       f.displayFraction();
   }
   return 0;
}