Construct a class named Fractions containing two integer data members named num
ID: 3771622 • Letter: C
Question
Construct a class named Fractions containing two integer data members named num and denom, used to store the numerator and denominator of a fraction having the form num/denom. Your class should include a default constructor that initializes num and denom to 1 if there's no user initialization, and it must prohibit a 0 denominator value. In addition, create member functions for displaying an object's data values and overloaded operator functions for adding, subtracting, multiplying, and dividing two Fraction objects, as follows: Addition: a/b + c/d = (a * d + b * c) / (b * d) Subtraction: a/b - c/d = (a * d - b * c) / (b * d) Multiplication: a/b * c/d = (a * c) / (b * d) Division: (a/b) / (c/d) = (a*d) / (b*c) Include the class written for Exercise 4a in a working C++ program that tests each member function.Explanation / Answer
#include <iostream>
#include<string>
using namespace std;
class Fraction {
public:
int num;
int denom;
Fraction() {
num = 1;
denom = 1;
}
Fraction(int fnum, int fdenom) {
num = fnum;
if(fdenom != 0)
denom = fdenom;
else
cout << " Denominator can not be 0" <<endl;
}
Fraction operator+(Fraction f2) {
int rnum = num * f2.denom + denom * f2.num;
int rden = denom * f2.denom;
Fraction frac = Fraction(rnum,rden);
return frac;
}
Fraction operator-(Fraction f2) {
int rnum = num * f2.denom - denom * f2.num;
int rden = denom * f2.denom;
Fraction frac = Fraction(rnum,rden);
return frac;
}
Fraction operator*(Fraction f2) {
int rnum = num * f2.num;
int rden = denom * f2.denom;
Fraction frac = Fraction(rnum,rden);
return frac;
}
Fraction operator/(Fraction f2) {
int rnum = num * f2.denom;
int rden = denom * f2.num;
Fraction frac = Fraction(rnum,rden);
return frac;
}
string asString() {
cout << num << "/" <<denom <<endl;
string str = num+"/"+denom;
return str;
}
};
int main() {
Fraction f1 = Fraction(10,20);
Fraction f2 = Fraction(20,40);
Fraction add = Fraction();
Fraction sub = Fraction();
Fraction mul = Fraction();
Fraction div = Fraction();
add = f1+f2;
sub = f1-f2;
mul = f1*f2;
div = f1/f2;
cout << "Fraction 1: ";
f1.asString();
cout << " Fraction2 : " ;
f2.asString();
cout << "Add: ";
add.asString();
cout << " Subtraction: ";
sub.asString();
cout << "Mul: ";
mul.asString();
cout << " Div: ";
div.asString();
return 0;
}
----output-----
Fraction 1: 10/20
Fraction2 : 20/40
Add: 800/800
Subtraction: 0/800
Mul: 200/800
Div: 400/400