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

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/bsjackson/hw3.cpp
//	CS212 CS II Assignment 3
//	Due: Monday Feb. 28, 2011
//
//	File Name: hw3.cpp
//	Author: Brittany Jackson
//	Instructor: Dr. Wang
//
//	Compile: g++ hw3.cpp
//	Run: ./a.out < fraction.txt
//
//	Goal: Read three lines of the input file to get a whole problem. 
//	 First line is the left operand, the second is the operator, 
//	 Third one is the right operand. File has an unknown number of 
//	 lines, but it will contain complete problems.

#include <iostream>
using namespace std;

class Fraction
{	int nume, deno;

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;    }

	void reduce(Fraction& x)
	{
		int n = x.nume;	
		int d = x.deno;

	while ( d!=0)
	{
		int r = n % d;
		n = d;
		d = r;
	}
	if(n != 0)
	{
		x.nume /= n;
		x.deno /= n;
	}
	if (x.deno <0)
	{
		x.nume *= (-1);
		x.deno *= (-1);
	}
}
        Fraction operator+(Fraction x)
        {       Fraction ans;   //temp obj
                ans.nume = nume * x.deno + deno * x.nume;
                ans.deno = deno * x.deno;
		reduce(ans);                
                return ans;
        }
        Fraction operator-(Fraction x)
        {       Fraction ans;   //temp obj
                ans.nume = nume * x.deno - deno * x.nume;
                ans.deno = deno * x.deno; 
		reduce(ans);
                return ans;
        }
         Fraction operator*(Fraction x)

        {       Fraction ans;   //temp obj
                ans.nume = nume * x.nume;
                ans.deno = deno * x.deno; 
		reduce(ans);
                return ans;
        }

         Fraction operator/(Fraction x)
        {       Fraction ans;  
                ans.nume = (nume * x.deno);
                ans.deno = (deno * x.nume);
		reduce(ans);
                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\n";

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

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

Stv3n404 - 2023