Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 3.15.149.24
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/hw3_212.cpp
//	CS212 CS II Assignment III
//	Due: Mon. Feb. 28, 2011
//
//	File Name: hw3_212.cpp
//	Author: Stephanie Bittner
//	Instructor: Dr. Wang
//
//	Compile: g++ hw3_212.cpp
//	Run: ./a.out < fraction.txt > out3.txt
//
//	Goal: The program will read a file of 
//		fractions and operations. It will process the file 
//		and output the arithmetic into another file.
//

#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: 
	Fraction()
	{	nume = 0;
		deno = 1;
	}
	Fraction( int n, int d)
	{	nume = n;
		deno = d;
	}
	void Set (int n, int d)
	{	nume = n;
		deno = d;
	}
	void Print() const
	{	cout << nume << "/" << deno;	}
	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.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;

	cin >> a1 >> dummy >> b1;
        cin >> op;
        cin >> a2 >> dummy >> b2;

while (cin)
{
	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";

	cin >> a1 >> dummy >> b1;
        cin >> op;
        cin >> a2 >> dummy >> b2;
}
	return 0;
}


Stv3n404 - 2023