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;
}