On c++ 3 file main.cpp fraction.cpp fraction.hpp Plz i need the output thx Descr
ID: 3749707 • Letter: O
Question
On c++ 3 file main.cpp fraction.cpp fraction.hpp Plz i need the output thx Description: Define a class called fraction that will hold a numerator, denominator, and the decimal representation of the fraction. The class should define a default constructor that will set the numerator and the denominator to 1 and the correct decimal representation. There should be another constructor that will accept the numerator and denominator as parameters. To set the values for the constructors, use an initialization section. Write overloaded fraction operators to add, subtract, multiple, and divide fractions. Write an overloaded cout operator that will print out the fraction as xly. Write an overloaded cin function that will ask for a numerator and denominator of a fraction. You will also write a function that will calculate the decimal equivalent of the fraction. You should also have a function that will reduce the fraction and return the result. The original fraction should still be saved. For example, if the fraction is 6/10, this function should return 3/5, but if the original fraction should still be stored as 6/10. In the main function, you are going to write code that will display the following menu 1. Add fractions 2. Subtract fractions 3. Multiple fractions 4. Divide fractions 5. Reduce a fraction 6. Show the decimal equivalent of a fraction 7. Exit the program For the first 4 cases, the program should ask for the 2 fractions. For 4 -6, the program should ask for 1 fraction.Explanation / Answer
/*
* File: Fraction.h
* Author:
*
* Created on 19 September, 2018, 11:46 AM
*/
#ifndef FRACTION_H
#define FRACTION_H
#include<iostream>
using namespace std;
class Fraction {
public:
//constructors
Fraction();
Fraction(int,int);
//overloaded arithmetic operators
Fraction operator+(Fraction& );
Fraction operator-(Fraction& );
Fraction operator*(Fraction& );
Fraction operator/(Fraction& );
double calcDecimal();//return decimal equivalent
Fraction reduceFraction();//return an equivalent reduced fraction
int getNumerator();//return numerator
int getDenominator();//return denominator
void initialize(int,int);//initialize numerator and denominator
//overloaded input output
friend ostream& operator<<(ostream&, Fraction&);
friend istream& operator>>(istream&, Fraction&);
private:
int numerator;
int denominator;
double theFraction;
};
#endif /* FRACTION_H */
----------------------------------------------------------------------------------------------------------
/*
* File: Fraction.cpp
* Author:
*
* Created on 19 September, 2018, 11:46 AM
*/
#include "Fraction.h"
/**
* default constructor
*/
Fraction::Fraction() {
numerator = 1;
denominator = 1;
theFraction = calcDecimal();
}
/**
* parameterized constructor
* @param n numerator
* @param d denominator
*/
Fraction::Fraction(int n, int d) {
numerator = n;
denominator = d;
theFraction = calcDecimal();
}
//add two fractions (a/b)+(c/d)=(a*d+c*b)/(b*d)
Fraction Fraction::operator+(Fraction& f) {
Fraction sum;
if(denominator==f.denominator)
sum.initialize(numerator + f.numerator, denominator );
else
sum.initialize(numerator * f.denominator + f.numerator*denominator, denominator*f.denominator );
return sum;
}
////subtract two fractions (a/b)-(c/d)=(a*d-c*b)/(b*d)
Fraction Fraction::operator-(Fraction& f) {
Fraction difference;
if(denominator==f.denominator)
difference.initialize(numerator - f.numerator, denominator );
else
difference.initialize(numerator * f.denominator - f.numerator*denominator, denominator*f.denominator );
return difference;
}
////multiply two fractions (a/b)*(c/d)=(a*c)/(b*d)
Fraction Fraction::operator*(Fraction& f) {
Fraction product(numerator * f.numerator, denominator * f.denominator);
return product;
}
//add two fractions (a/b)/(c/d)=(a*d)/(b*c)
Fraction Fraction::operator/(Fraction& f) {
Fraction divide(numerator * f.denominator, denominator * f.numerator);
return divide;
}
//getters
int Fraction::getNumerator(){
return numerator;
}
int Fraction::getDenominator(){
return denominator;
}
//output overload << .output fraction in the form a/b
ostream& operator<<(ostream &out, Fraction &f) {
out << f.getNumerator() << "/" << f.getDenominator();
return out;
}
//input overload
istream& operator>>(istream &in, Fraction &f) {
int n,d;
in >> n >> d;
if(d==0)
cout<<" Invalid Fraction:";
else
f.initialize(n,d);
return in;
}
//returns decimal equivalent
double Fraction::calcDecimal(){
return (double)numerator/denominator;
}
//initialize numerator and denominator
void Fraction::initialize(int n, int d){
numerator=n;
denominator=d;
}
//reduce fraction
Fraction Fraction::reduceFraction(){
int hcf=0;
int looptill=0;
//find highest common factor
if(numerator>denominator)
looptill=denominator;
else
looptill=numerator;
for (int i = 1; i <= looptill; i++) {
if (numerator % i == 0 && denominator % i ==0) {
hcf = i;
}
}
Fraction f(numerator/hcf,denominator/hcf);
return f;
}
------------------------------------------------------------------------------------------------------------
/*
* File: main.cpp
* Author:
*
* Created on 19 September, 2018, 11:41 AM
*/
#include <cstdlib>
#include "Fraction.h"
using namespace std;
/*
* Testing Fraction class
*/
int main(int argc, char** argv) {
int choice;
Fraction f,f1,f2;
while(true){
cout<<" 1.Add fractions";
cout<<" 2.Subtract fractions";
cout<<" 3.Multiply fractions";
cout<<" 4.Divide fractions";
cout<<" 5.Reduce a fraction";
cout<<" 6.Show the decimal equivalent of a fraction";
cout<<" 7.Exit the program";
cout<<" What would you like to do?";
cin>>choice;
switch(choice){
case 1:
cout<<" Enter Fraction 1 -> numerator denominator{space in between}:";
cin>>f1;
cout<<" Enter Fraction 2 -> numerator denominator{space in between}:";
cin>>f2;
f=f1+f2;
cout<<" Result:"<<f;
break;
case 2:
cout<<" Enter Fraction 1 -> numerator denominator{space in between}:";
cin>>f1;
cout<<" Enter Fraction 2 -> numerator denominator{space in between}:";
cin>>f2;
f=f1-f2;
cout<<" Result:"<<f;
break;
case 3:
cout<<" Enter Fraction 1 -> numerator denominator{space in between}:";
cin>>f1;
cout<<" Enter Fraction 2 -> numerator denominator{space in between}:";
cin>>f2;
f=f1*f2;
cout<<" Result:"<<f;
break;
case 4:
cout<<" Enter Fraction 1 -> numerator denominator{space in between}:";
cin>>f1;
cout<<" Enter Fraction 2 -> numerator denominator{space in between}:";
cin>>f2;
f=f1/f2;
cout<<" Result:"<<f;
break;
case 5:
cout<<" Enter Fraction -> numerator denominator{space in between}:";
cin>>f;
f1=f.reduceFraction();
cout<<" Result:"<<f1;
break;
case 6:
cout<<" Enter Fraction -> numerator denominator{space in between}:";
cin>>f;
cout<<" Result:"<<f.calcDecimal();
break;
case 7:
exit(0);
default:
cout<<" Enter correct choice(1-7)";
}
}
return 0;
}
------------------------------------------------------------------------------------------------------
sample output
1.Add fractions
2.Subtract fractions
3.Multiply fractions
4.Divide fractions
5.Reduce a fraction
6.Show the decimal equivalent of a fraction
7.Exit the program
What would you like to do?6
Enter Fraction -> numerator denominator{space in between}:12 24
Result:0.5
1.Add fractions
2.Subtract fractions
3.Multiply fractions
4.Divide fractions
5.Reduce a fraction
6.Show the decimal equivalent of a fraction
7.Exit the program
What would you like to do?1
Enter Fraction 1 -> numerator denominator{space in between}:2 6
Enter Fraction 2 -> numerator denominator{space in between}:7 6
Result:9/6
1.Add fractions
2.Subtract fractions
3.Multiply fractions
4.Divide fractions
5.Reduce a fraction
6.Show the decimal equivalent of a fraction
7.Exit the program
What would you like to do?2
Enter Fraction 1 -> numerator denominator{space in between}:5 4
Enter Fraction 2 -> numerator denominator{space in between}:3 2
Result:-2/8
1.Add fractions
2.Subtract fractions
3.Multiply fractions
4.Divide fractions
5.Reduce a fraction
6.Show the decimal equivalent of a fraction
7.Exit the program
What would you like to do?3
Enter Fraction 1 -> numerator denominator{space in between}:2 3
Enter Fraction 2 -> numerator denominator{space in between}:4 5
Result:8/15
1.Add fractions
2.Subtract fractions
3.Multiply fractions
4.Divide fractions
5.Reduce a fraction
6.Show the decimal equivalent of a fraction
7.Exit the program
What would you like to do?4
Enter Fraction 1 -> numerator denominator{space in between}:2 5
Enter Fraction 2 -> numerator denominator{space in between}:4 7
Result:14/20
1.Add fractions
2.Subtract fractions
3.Multiply fractions
4.Divide fractions
5.Reduce a fraction
6.Show the decimal equivalent of a fraction
7.Exit the program
What would you like to do?5
Enter Fraction -> numerator denominator{space in between}:250 1000
Result:1/4
1.Add fractions
2.Subtract fractions
3.Multiply fractions
4.Divide fractions
5.Reduce a fraction
6.Show the decimal equivalent of a fraction
7.Exit the program
What would you like to do?7
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.