Can i get an assistance with my program #include <iostream> using namespace std;
ID: 3740260 • Letter: C
Question
Can i get an assistance with my program
#include <iostream>
using namespace std;
class fraction {
private:
int wholenumber;
int numerator;
int denominator;
public:
int enterfractionValue();
void displayfraction();
void reducefraction();
fraction() { wholenumber = 0, numerator = 0, denominator = 1 };
};
void fraction::enterfractionValue();{
cout << " Enter the whole number";
cin >> wholenumber;
cout << " Enter the numerator";
cin >> numerator;
while (denominator == 0) {
cout << "Invalid denominator";
Cout << "Please re enter";
}
cout << " Enter the denominator:";
cin >> denominator;
}
void fraction::displayfraction() {
if (numerator == 0 && wholenumber == 0) {
cout << wholenumber << "" << numerator << "/" << denominator;
}
}void fraction::reducefraction() {
int complete = wholenumber * denominator + numerator;
wholenumber = complete / denominator;
numerator = complete % denominator;
if ((numerator % 2 == 0) && denominator % 2 == 0)){
numerator = numerator / 2;
denominator = denominator / 2;
}
int main() {
fraction newfraction;
do {
newfraction.enterfractionValue();
if ((newfraction.getwholenumber() == 0) && (newfraction.getnumerator() == 0))
}break;
newfraction.displayfractionValue();
newfraction.reducefraction();
newfraction.displayfraction();
}
}
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:
» 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.
» 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.
» A displayFraction()function that displays the Fraction whole number, numerator,
slash, and denominator.
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
I've made the chages..please note them..
there is no need to declare constructor and there is a mistake in this declaration void fraction::enterfractionValue(); and u did not declare the method for getwholenumber and getnumerator which u have used in the main class and there are some syntax errors and modifications in few lines which i have corrected..u can check the below code
#include <iostream>
using namespace std;
class fraction {
private:
int wholenumber;
int numerator;
int denominator;
public:
static const char a='/';
int enterfractionValue();
void displayfraction();
void reducefraction();
int getnumerator()
{
return numerator;
}
int getwholenumber()
{
return numerator;
}
};
int fraction::enterfractionValue()
{
cout << " Enter the whole number";
cin >> wholenumber;
cout << " Enter the numerator";
cin >> numerator;
cout << " Enter the denominator:";
cin >> denominator;
while (denominator == 0) {
cout << "Invalid denominator";
cout << "Please re enter";
}
}
void fraction::displayfraction() {
cout<<" The reduced fraction is";
cout << wholenumber << "" << numerator << a << denominator;
}
void fraction::reducefraction() {
int complete = wholenumber * denominator + numerator;
wholenumber = complete / denominator;
numerator = complete % denominator;
if ((numerator % 2 == 0) && (denominator % 2 == 0)){
numerator = numerator / 2;
denominator = denominator / 2;
}
cout<<wholenumber;
}
int main()
{
int k=0;
fraction newfraction;
while(k==0) {
newfraction.enterfractionValue();
if((newfraction.getwholenumber() == 0) && (newfraction.getnumerator() == 0)){
k=1;
break;
}
newfraction.reducefraction();
newfraction.displayfraction();
}
newfraction.reducefraction();
newfraction.displayfraction();
}