Server IP : 172.16.15.8 / Your IP : 18.116.40.151 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/sknewsome/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
// CS212 Assignment 3 // Due: Monday, February 28 // // File Name: fraction3.cpp // Author: Symonne Newsome // Instructor: Dr. Wang // // Compile: g++ fraction3.cpp // Run: ./a.out < fraction.txt > out3.txt // // Goal: a Fraction class that contains the function members // to be able to add, subtract, divide, and reduce fractions. Hand in the // copies of the code and the output file. #include <iostream> using namespace std; class Fraction { int nume; int deno; public: void 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.Set(ans.nume, ans.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.Set(ans.nume, ans.deno); ans.reduce(); return ans; } Fraction operator*(Fraction x) { Fraction ans; ans.nume = nume * x.nume; ans.deno = deno * x.deno; ans.Set(ans.nume, ans.deno); ans.reduce(); return ans; } Fraction operator/(Fraction x) { Fraction ans; ans.nume = nume * x.deno; ans.deno = deno * x.nume; ans.Set(ans.nume, ans.deno); 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; Fraction f1, f2, answer; f1.Set(a1, b1); f2.Set(a2, b2); while(cin) { if(op == '+') answer = f1 + f2; if(op == '-') answer = f1 - f2; if(op == '*') answer = f1 * f2; if(op == '/') answer = f1 / f2; cin >> a1 >> dummy >> b1; cin >> op; cin >> a2 >> dummy >> b2; f1.Set(a1, b1); f2.Set(a2, b2); f1.Print(); cout << " " << op << " "; f2.Print(); cout << " = "; answer.Print(); cout << endl; } return 0; }