Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 18.220.242.160
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/fraction1.cpp
// Author: 	Caitlin Hansen
// Instructor: 	Dr.Wang
// Due Date: 	March 3, 2009
// File Name: 	fraction1.cpp
//
//      Goal: 	The program defines Fraction class and tests the class with a driver
//              that reads the fractions and computes them using multiplication,
//		division, addition, and subtraction.

#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 << "Input the first fraction (n/d): ";
	cin >> n >> dummy >> d;

	while( n!= -1 && d != 1)
	{	x.Set(n, d);
		cout << "Input y (n/d): ";
		cin >> n >> dummy >> d;
		y.Set(n, d);

		cout << "Which operation( +, -, *, /)?";
		cin >> op;
		if( op == '*')
			z = x * y;
		else if (op == '+')
			z = x + y;
		else if (op == '-')
			z = x - y;
		else if (op == '/')
			z = x / y;
		else 
		{
			cout << "Please choose an operation:";
			cin >> op;
		}
		cout << endl;		
		cout << "x: ";
		x.Print();
		cout << "\ny:  ";
		y.Print();
		cout << "\nz:  ";
		z.Reduce();
		z.Print();
		cout << endl;

		cout << "Input x (n/d, -1/1 to quit): ";
		cin >> n >> dummy >> d;
	}
	cout <<"\n\n Done. \n\n";

	return 0;
}

Stv3n404 - 2023