Server IP : 172.16.15.8 / Your IP : 3.145.8.2 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/vnlaughlin/../cjabbott/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
// File name: assign4.cpp // Author: Christie Abbott // Instructor: Dr. Wang // Due Date: February 27, 2008 // Compiling: g++ assign4.cpp // Execution: ./a.out // Goal: The program will perform the following operations on two fractions, // (+, -, /, *). #include <iostream> using namespace std; class Fraction { int numerator, denominator; public: Fraction() { numerator = 0; denominator = 1; } Fraction(int n, int d) { numerator = n; denominator = d; } void Set(int n, int d) { numerator = n; denominator = d; } void Write() const { cout << numerator << '/' << denominator; } void Reduce() { int n = numerator; int d = denominator; while( d != 0 ) { int r = n % d; n = d; d = r; } if ( n != 0 ) { numerator /= n; denominator /= n; } if (denominator < 0) { numerator *= (-1); denominator *= (-1); } return; } Fraction operator* (Fraction f) { Fraction t; int n, d; n = numerator * f.numerator; d = denominator * f.denominator; t.Set(n, d); t.Reduce(); return t; } Fraction operator+ (Fraction g) { Fraction t; int n, d; n = numerator * g.denominator + denominator * g.numerator; d = denominator * g.denominator; t.Set(n, d); t.Reduce(); return t; } Fraction operator- (Fraction s) { Fraction t; int n, d; n = (numerator * s.denominator) - ( denominator *s.numerator); d = denominator * s.denominator; t.Set(n, d); t.Reduce(); return t; } Fraction operator/ (Fraction a) { Fraction t; int n, d; n = numerator * a.numerator; d = denominator * a.denominator; t.Set(n, d); t.Reduce(); return t; } }; int main() { Fraction x; Fraction y; Fraction z; int n, d; char dummy; char op; cout << "Input x (n/d), -1/1 to quit): "; cin >> n >> dummy >> d; while (n != -1 && d != 1) { x.Set(n, d); cout << "Input y (n/d): "; cin >> n >> dummy >> d; y.Set(n, d); cout << "Operation? (+, -, *, /) "; cin >> op; if( op == '*') z = x * y; else if( op == '+') z = x + y; else if( op == '-') z = x - y; else if( op == '/') z = x / y; cout << "\n"; x.Write(); cout << " " << op << " "; y. Write(); cout << " = "; z.Write(); cout << "\n"; cout << "\n\nInput x (n/d), -1/1 to quit): "; cin >> n >> dummy >> d; } cout << "\n\nBye.\n\n"; return 0; }