Question

Extend class Fraction(codes are on the bottom)           - add a parameterized constructor           - overload...

Extend class Fraction(codes are on the bottom)

          - add a parameterized constructor

          - overload + and - operators to handle the following:

                   - integer + Fraction

                   - integer - Fraction

                   - Fraction + integer

                   - Fraction - integer

          - use the class in main()

                   - instantiate 2 Fractions using the parameterized constructor

                   - add 2 Fractions

                   - add integer to a Fraction

                   - add Fraction to an integer

                   - subtract Fraction from integer

                   - subtract integer from Fraction

                   - display the results for each like an equation -- use overloaded <<

          No prompting necessary, you can hard code the test values.

          All display is done in main. No displaying by member functions!

#include <string.h>

#include <iostream>

#include <iomanip>

using namespace std;

class Fraction

{

public:

int numerator, denominator;

Fraction(){}

Fraction(int num, int den)

{

numerator = num;

denominator = den;

  

}

  

void setNumerator(int num)

{

numerator = num;

}

  

int getNumerator()

{

return numerator;

}

  

void setDenominator(int den)

{

denominator = den;

}

  

int getDenominator()

{

return denominator;

}

  

  

Fraction operator +(Fraction const &obj)

{

int num = numerator*obj.denominator+denominator*obj.numerator;

int den = denominator*obj.denominator;

return Fraction(num,den);

}

  

Fraction operator -(Fraction const &obj)

{

int num = numerator*obj.denominator-denominator*obj.numerator;

int den = denominator*obj.denominator;

return Fraction(num,den);

}

  

};

ostream & operator << (ostream &out, const Fraction &c)

{

out << c.numerator<<"/"<<c.denominator;

return out;

}

int main()

{

cout<<"Enter numerator and denominator for fraction 1: "<<endl;

int num1, den1, num2, den2;

cin>>num1>>den1;

cout<<"Enter numerator and denominator for fraction 2: "<<endl;

cin>>num2>>den2;

Fraction a;

Fraction b;

a.setNumerator(num1);

a.setDenominator(den1);

b.setNumerator(num2);

b.setDenominator(den2);

cout<<a<<"+"<<b<<"="<<(a+b)<<endl;

cout<<a<<"-"<<b<<"="<<(a-b)<<endl;

return 0;

}

0 0
Add a comment Improve this question Transcribed image text
Answer #1

C++ Program:

#include <string.h>
#include <iostream>
#include <iomanip>
using namespace std;
class Fraction
{
public:
int numerator, denominator;
Fraction(){}
Fraction(int num, int den)
{
numerator = num;
denominator = den;

}

void setNumerator(int num)
{
numerator = num;
}

int getNumerator()
{
return numerator;
}

void setDenominator(int den)
{
denominator = den;
}

int getDenominator()
{
return denominator;
}


Fraction operator +(Fraction const &obj)
{
int num = numerator*obj.denominator+denominator*obj.numerator;
int den = denominator*obj.denominator;
return Fraction(num,den);
}

Fraction operator +(int val)
{
Fraction temp(val, 1);
int num = numerator*temp.denominator+denominator*temp.numerator;
int den = denominator*temp.denominator;
return Fraction(num,den);
}

Fraction operator -(Fraction const &obj)
{
int num = numerator*obj.denominator-denominator*obj.numerator;
int den = denominator*obj.denominator;
return Fraction(num,den);
}

Fraction operator -(int val)
{
Fraction temp(val, 1);
int num = numerator*temp.denominator-denominator*temp.numerator;
int den = denominator*temp.denominator;
return Fraction(num,den);
}

// Adding Integer from Fraction
friend Fraction operator+(const int val, const Fraction &c);

// Subtracting Integer from Fraction
friend Fraction operator-(const int val, const Fraction &c);

};

//Implementing function
Fraction operator+(const int val, const Fraction &c)
{
Fraction temp(val, 1);

int num = temp.numerator*c.denominator+temp.denominator*c.numerator;
int den = temp.denominator*c.denominator;

return Fraction(num,den);
}

//Overloading Integer - Fraction
Fraction operator-(const int val, const Fraction &c)
{
Fraction temp(val, 1);

int num = temp.numerator*c.denominator-temp.denominator*c.numerator;
int den = temp.denominator*c.denominator;

return Fraction(num,den);
}

ostream & operator << (ostream &out, const Fraction &c)
{
out << c.numerator<<"/"<<c.denominator;
return out;
}
int main()
{
cout<<"Enter numerator and denominator for fraction 1: "<<endl;
int num1, den1, num2, den2;
cin>>num1>>den1;
cout<<"Enter numerator and denominator for fraction 2: "<<endl;
cin>>num2>>den2;
Fraction a;
Fraction b;

a.setNumerator(num1);
a.setDenominator(den1);
b.setNumerator(num2);
b.setDenominator(den2);
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
cout<<a<<"-"<<b<<"="<<(a-b)<<endl;

cout<<a<<"+"<<5<<"="<<(a+5)<<endl;
cout<<a<<"-"<<2<<"="<<(a-2)<<endl;

cout<<7<<"+"<<b<<"="<<(7+b)<<endl;
cout<<3<<"-"<<b<<"="<<(3-b)<<endl;

return 0;
}

____________________________________________________________________________________________________

Sample Run:

Add a comment
Know the answer?
Add Answer to:
Extend class Fraction(codes are on the bottom)           - add a parameterized constructor           - overload...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT