Write a Fraction class that fulfills the following requirements (please look at
ID: 670851 • Letter: W
Question
Write a Fraction class that fulfills the following requirements (please look at the sample main below as a guideline of how you should name your functions!!):
Has a constructor that takes in two parameters - a numerator and a denominator
Has a constructor that takes in one parameter - a whole number
Has a default constructor that sets the numerator and denominator to 1
Has a function that displays the Fraction in the form numerator/denominator
Has a function that reduces the Fraction to simplest form
Has a function that returns the reciprocal as a Fraction object
Has a function that returns the numerator
Has a function that returns the denominator
Has a function that takes in another Fraction, finds the product, and returns a reduced Fraction (hint: the header for this function would be Fraction multiply( Fraction f ) )
You can use the following main to test your class:
int main()
{
Fraction f1;
Fraction f2( 3 );
Fraction f3( 6, 8 );
f3.print(); // Should print 3/4
Fraction f4 = f2.reciprocal();
f4.print(); // Should print 1/3
f1.print(); // Should print 1/1
Fraction f5 = f4.multiply( f3 );
f5.print(); // Should print 1/4
system( "pause" );
return 0;
}
Need help with this in C++. Thank you!
Explanation / Answer
#include<iostream>
#include <cstdlib>
#include<string>
using namespace std;
// Class Declaration
class fraction
{
//Access - Specifier
public:
int denominator,numerator;
fraction(){
numerator=1;
denominator=1;
}
fraction(int n){
numerator =n;
denominator=1;
}
fraction(int n,int d){
numerator=n;
denominator=d;
reduceFraction();
}
fraction reduceFraction(){
int i=0,factor=1;
int min=denominator;
if(min>numerator){
min=numerator;
}
for(i=1;i<=min;i++){
if(denominator%i==0&&numerator%i==0){
factor=i;
}
}
numerator=numerator/factor;
denominator=denominator/factor;
}
void print(){
cout<<numerator<<"/"<<denominator<<endl;
}
fraction multiply(fraction f){
fraction t;
t.numerator=numerator*f.numerator;
t.denominator=denominator*f.denominator;
t.reduceFraction();
return t;
}
fraction reciprocal(){
fraction t;
t.numerator=denominator;
t.denominator=numerator;
return t;
}
};
int main()
{
fraction f1;
fraction f2(3);
fraction f3(6,8);
f3.print(); // Should print 3/4
fraction f4 = f2.reciprocal();
f4.print(); // Should print 1/3
f1.print(); // Should print 1/1
fraction f5 = f4.multiply( f3 );
f5.print(); // Should print 1/4
cout << " ";
system("pause");
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.