Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "default.h" //Includes the Header files
- typedef long int Long;
- class CFraction;
- class Fraction_t;
- Long HCF(Long a, Long b)
- {
- if(b == 0)
- {
- return a;
- }
- else
- {
- return HCF(b, a % b);
- }
- }
- class Fraction_t
- {
- protected:
- Long Nume, Denom;
- public:
- void SetVal(Long , Long);
- void Return ();
- Fraction_t operator + (Fraction_t);
- Fraction_t operator - (Fraction_t);
- Fraction_t operator * (Fraction_t);
- Fraction_t operator / (Fraction_t);
- Fraction_t Simplify (Fraction_t&);
- }
- *Fract1,
- *Fract2,
- *Fraction,
- Frac1,
- Frac2,
- Fract;
- void Fraction_t::SetVal(Long a, Long b)
- {
- Nume = a;
- Denom = b;
- }
- void Fraction_t::Return()
- {
- if (Nume != 0 && Denom != 1)
- cout << Nume << "/" << Denom;
- else if (Nume == 0)
- cout <<"0";
- else if (Denom == 1)
- cout << Nume;
- }
- Fraction_t Fraction_t::operator+ (Fraction_t)
- {
- Fract.Nume = (Frac1.Nume*Frac2.Denom) + (Frac2.Nume*Frac1.Denom);
- Fract.Denom = (Frac1.Denom*Frac2.Denom);
- return Fract;
- }
- Fraction_t Fraction_t::operator- (Fraction_t)
- {
- Fract.Nume = (Frac1.Nume*Frac2.Denom) - (Frac2.Nume*Frac1.Denom);
- Fract.Denom = (Frac1.Denom*Frac2.Denom);
- return Fract;
- }
- Fraction_t Fraction_t::operator* (Fraction_t)
- {
- Fract.Nume = Frac1.Nume*Frac2.Nume;
- Fract.Denom = Frac1.Denom*Frac2.Denom;
- return Fract;
- }
- Fraction_t Fraction_t::operator/ (Fraction_t)
- {
- Fract.Nume = Frac1.Nume*Frac2.Denom;
- Fract.Denom = Frac1.Denom*Frac2.Nume;
- return Fract;
- }
- Fraction_t Fraction_t::Simplify (Fraction_t& A)
- {
- Long hcf = HCF(A.Nume, A.Denom);
- A.Nume = A.Nume/hcf;
- A.Denom = A.Denom /hcf;
- return A;
- }
- int main ()
- {
- Long a,b,c,d;
- char Act;
- bool Loop = true;
- cout << "Please enter Numerator of First Fraction: ";
- cin >> a;
- cout << "Please enter Denominator of First Fraction: ";
- cin >> b;
- cout << "Please enter Numerator of Second Fraction: ";
- cin >> c;
- cout << "Please enter Denominator of Second Fraction: ";
- cin >> d;
- cin.sync();
- Fract1 = &Frac1;
- Fract2 = &Frac2;
- Fract1 -> SetVal(a,b);
- Fract2 ->SetVal (c,d);
- char Opt;
- cout << "\n\nWhat do you want to do with the Fraction:\n[Add -> A, Subtract -> S, Multiply -> M, Divide -> D]: \n";
- cin >> Act;
- if (Act == 'A' || Act == 'a' )
- {
- Fract = Frac1 + Frac2;
- Opt = '+';
- }
- else if (Act == 'S' || Act == 's' )
- {
- Fract = Frac1 - Frac2;
- Opt = '-';
- }
- else if (Act == 'M' || Act == 'm' )
- {
- Fract = Frac1*Frac2;
- Opt = '*';
- }
- else if (Act == 'D' || Act == 'd' )
- {
- Fract = Frac1/Frac2;
- Opt = '/';
- }
- else
- cout << "\nPlease Enter a valid option.\n";
- Fraction = &Fract;
- Fract1 -> Simplify(Frac1);
- Fract2 -> Simplify(Frac2);
- Fraction -> Simplify(Fract);
- cout << " [ ";
- Fract1 -> Return();
- cout << " ] ";
- cout << Opt;
- cout << " [ ";
- Fract2 -> Return();
- cout << " ] = ";
- Fraction -> Return();
- cout << "\n________________________________________________________________________________";
- ;cout << "\n\nPress ENTER to continue . . . ";
- cin.sync();
- cin.get();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment