Fractions Using a Struct and Functions                    Fractions Using a Class

 

 

// File fractions.h                                                               // File fractionc.h

 

struct Fraction                                                                  class Fraction

{                                                                                     {

    int num;                                                                             public:

    int den;                                                                                 Fraction();

};                                                                                             Fraction(int n, int d);

                                                                                                void Assign(int n, int d);

void Assign (Fraction & f, int n, int d);                                            Fraction Add (Fraction right);

Fraction Add (Fraction left, Fraction right);                                      void Display();

void Display (Fraction f);                                                         private:

                                                                                                int num;

                                                                                                int den;

                                                                                      };                                                                         

 

 

// File fractions.cpp                                                            // File fractionc.cpp

 

#include<iostream>                                                            #include<iostream>

using namespace std;                                                         using namespace std;

 

                                                                                      Fraction :: Fraction ()

                                                                                      {

                                                                                                                        num = 0;

                                                                                                                        den = 1;

                                                                                                            }

 

 

                                                                                      Fraction :: Fraction (int n, int d)

                                                                                                            {

                                                                                                                        Assign (n, d);

                                                                                                            }

 

 

void Assign (Fraction & f, int n, int d)                                   void Fraction :: Assign (int n, int d)                            

{                                                                                     {

    f.num = n;                                                                              num = n;

    f.den = d;                                                                              den = d;

}                                                                                     }

 

Fraction Add (Fraction left, Fraction right)                             Fraction Fraction :: Add (Fraction right)

{                                                                                     {

    Fraction sum;                                                                          Fraction sum;

 

    sum.num = left.num * right.den + left.den * right.num;                  sum.num = num * right.den + den * right.num;

    sum.den = left.den * right.den;                                                  sum.den = den * right.den;

    return sum;                                                                             return sum;

}                                                                                     }

 

 

void Display (Fraction f)                                                      void Fraction :: Display ()

{                                                                                     {

    cout << f.num << '/' << f.den;                                                   cout << num << '/' << den;

}                                                                                     }

 

 

 

 

// File StructDemo.cpp                                                        // File ClassDemo.cpp

 

#include <iostream>                                                           #include <iostream>

#include <cstdlib>                                                              #include <cstdlib>

using namespace std;                                                         using namespace std;

 

void main()                                                                        void main ()

{                                                                                     {

    Fraction a, b, c;                                                                      Fraction a(2, 3), b, c;

 

    Assign (a, 2, 3);                                                                     

    Assign (b, 3, 4);                                                                      b.Assign(3, 4);

    c = Add (a, b);                                                                        c = a.Add(b);

    Display (a);                                                                            a.Display();

    cout << " + ";                                                                         cout << " + ";

    Display (b);                                                                            b.Display();

    cout << " = ";                                                                         cout << " = ";

    Display (c);                                                                             c.Display();

    cout << endl;                                                                          cout << endl;

    system("pause");                                                                     system("pause");

}                                                                                     }