Server IP : 172.16.15.8 / Your IP : 3.141.35.27 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/ctirby/../mrlong/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
// Miles Long // Instructor: Dr. Wang // Due date: 02/20/08 // File name: Homework3.cpp // // Fraction Calc. That allows the user to input 2 fractions // and a form of operation which will result in the program // solving the equation. #include <iostream> using namespace std; class Fraction { int nume, 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); } return; } Fraction() // 0/1 { 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 Mult(Fraction f) { Fraction t; int n, d; n = nume*f.nume; d = deno*f.deno; t.Set(n, d); t.Reduce(); return t; } Fraction Sub(Fraction f) { Fraction t; int n, d; n = (nume, deno) * f.deno; d = (f.nume, f.deno) * deno; n = (nume*f.deno) - (f.nume*deno); t.Set(n, d); t.Reduce(); return t; } Fraction Divi(Fraction f) { Fraction t; int n, d; int i=2; n = nume*f.deno; d = deno*f.nume; t.Set(n, d); t.Reduce(); return t; } Fraction Add(Fraction f) { Fraction t; int n, d; n = (nume, deno) * f.deno; d = (f.nume, f.deno) * deno; n = (nume*f.deno) + (f.nume*deno); t.Set(n, d); t.Reduce(); return t; } }; int main() { int n, d; Fraction x, y, z, test; char dummy, op; cout << "Input x (n/d, -1 to quit): "; cin >> n >> dummy >> d; while( n!=-1 && d!=1 ) { // Set x = n/d? x.Set(n, d); cout << "Input y (n/d): "; cin >> n >> dummy >> d; // Set y = n/d y.Set(n, d); cout << "Operation? (+, -, *, /) "; cin >> op; cout << "\n\n"; if( op == '*') z = x.Mult(y); else if ( op == '-') z = x.Sub(y); else if ( op == '/') z = x.Divi(y); else if ( op=='+') z = x.Add(y); else cout << "I am woking on it.\n\n"; // Output x.Print(); cout << " " << op << " "; y.Print(); cout << " = "; z.Print(); cout << "\n"; clrscreen(); cout << "\n\n*******************\nInput x (n/d, -1/1 to quit): "; cin >> n >> dummy >> d; } cout << "\n\n^Fin.\n\n"; return 0; }