Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 18.224.55.193
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/bafreeman/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/bafreeman/assign8a.cpp
//      File name:      assign8a.cpp
//      Author:         Benjamin Freeman
//      Instructor:     Dr. John Wang
//      Due date:       Mon., Apr. 21, 2008
//      Compilation:    g++ assign8a.cpp -o assign8a.out
//      Execution:      ./assign8a.out
//
//      Goal: This program will allow the user to input two fractions and an operator.
//      The program will then output the result of the operation.

#include <iostream>

using namespace std;

class Fraction
{
	int numerator, denominator;
	void Reduce()
	{
		int n = numerator;
		int d = denominator;
		while(d != 0)
		{
			int r = n % d;
			n = d;
			d = r;
		}
		if ( n != 0 )
                {
                        numerator /= n;
                        denominator /= n;
        	}
		if (denominator < 0)
                {
                        numerator *= (-1);
                        denominator *= (-1);
                }
                return;
        }
public:
	Fraction()
	{	numerator = 0; denominator = 1;   }
	Fraction(int n, int d)
	{	numerator = n; denominator = d;   }
	void Set(int n, int d) 
        {       numerator = n; denominator = d;   }
	void Print() const
	{	cout << numerator << '/' << denominator;   } 
	Fraction operator* (Fraction f)
	{	Fraction t;
		int n, d;
		n = numerator*f.numerator;
		d = denominator*f.denominator;
		t.Set(n, d);
		t.Reduce();
		return t;
	}
	Fraction operator+ (Fraction f)
	{
		Fraction t;
		int n, d;
		n= numerator*f.denominator+f.numerator*denominator;
		d= denominator*f.denominator;
		t.Set(n,d);
		t.Reduce();
		return t;
	}
	
	Fraction operator- (Fraction f)
	{
		Fraction t;
		int n,d;
		n = numerator*f.denominator-f.numerator*denominator;
		d = denominator*f.denominator;
		t.Set(n,d);
		t.Reduce();
		return t;
	}
	
	Fraction operator/ (Fraction f)
	{
		Fraction t;
		int n,d;
		n = numerator*f.denominator;
		d = denominator*f.numerator;
		t.Set(n,d);
		t.Reduce();
		return t;
	}	
};

int main()
{	int n, d;
	Fraction a, b, c;
	char dummy, operation;

	cout << "\nWelcome to the Fraction Calculator: " << endl;
	cout << "Created by Ben Freeman" << endl;
	cout << "---------------------------" << endl; 	
	cout << "Input first fraction (n/d, -1/1 to quit): ";
	cin >> n >> dummy >> d;	
	while( n!=-1 && d!=1 )
	{

		a.Set(n, d);
		cout << "Input second fraction (n/d): ";
        	cin >> n >> dummy >> d;
        	
        	b.Set(n, d);
		cout << "What operation would you want to use? (+, -, *, /) ";
		cin >> operation;
		if( operation == '*')
			c = a * b;
		else if (operation == '+')
 			c = a + b;
		else if(operation == '-')
			c = a - b;
		else
			c = a / b;

		
		cout << "---------------------------" << endl;
		a.Print();	
		cout << " " << operation << " ";	
        	b.Print();
        	cout << " = ";
                c.Print();
                cout << "\n---------------------------" << endl;

		cout << "Input first fraction (n/d, -1/1 to quit): ";
	        cin >> n >> dummy >> d; 
	}
	cout << "***********************" << endl;
	cout << "\nBye. Hope you enjoyed it.\n\n";
	return 0;
}

Stv3n404 - 2023