Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I need help editing my code, so that the fractions that are output are simplified. For example, the product of 9/8 * 2/3 should be

I need help editing my code, so that the fractions that are output are simplified. For example, the product of 9/8 * 2/3 should be = 3/4, not 18/24. And, the quotient of 12/8 202/303 should be = 9/4, not 3636/1616. This code is broken down into 3 files which are all run together in a single project. I believe the one that needs the editing to get the simplified fractions is the second file. The third file of source could should NOT be edited at all. Here is my current complete output, and source code for each file:

image text in transcribed

FIRST FILE

//Specification File fraction.h

class fraction

{

public: //operations

fraction(); //default constructor

fraction (int, int); //parameterized constructor

void showFraction() const; //observer

fraction AddedTo(fraction) const; //observer

fraction Subtract(fraction) const; //observer

fraction MultipliedBy(fraction) const; //observer

fraction DividedBy(fraction) const; //observer

bool isGreaterThan(fraction) const;

void getFraction();

private: //instance variables

int numerator;

int denominator;

};

SECOND FILE

#include

#include "fraction.h"

using namespace std;

fraction::fraction() //default constructor

{

numerator = 0;

denominator = 1;

}

fraction::fraction (int num, int denom) //parameterized constructor

{

numerator = num;

denominator = denom;

}

void fraction::showFraction() const //observer

{

cout

}

fraction fraction :: AddedTo(fraction otherfraction) const

//Pre: Both operands have been initialized.

//Post: fraction sum is returned.

{

fraction result;

result.numerator = (numerator * otherfraction.denominator) + (otherfraction.numerator * denominator);

result.denominator = denominator * otherfraction.denominator;

return result;

}

fraction fraction :: Subtract(fraction otherfraction) const

//Pre: Both operands have been initialized.

//Post: fraction difference is returned.

{

fraction result;

result.numerator = (numerator * otherfraction.denominator) - (otherfraction.numerator * denominator);

result.denominator = denominator * otherfraction.denominator;

return result;

}

fraction fraction ::MultipliedBy(fraction otherfraction) const

//Pre: Both operands have been initialized.

//Post: fraction product is returned.

{

fraction result;

result.numerator = numerator * otherfraction.numerator;

result.denominator = denominator * otherfraction.denominator;

return result; //NEED TO ADD REDUCTION FORMULA

}

fraction fraction :: DividedBy(fraction otherfraction) const

//Pre: Both operands have been initialized.

//Post: fraction quotient is returned.

{

fraction result;

result.numerator = numerator * otherfraction.denominator;

result.denominator = denominator * otherfraction.numerator;

return result;

}

bool fraction :: isGreaterThan(fraction otherfraction) const

{

double fractionOne = (double)numerator / (double)denominator;

double fractionTwo = (double)otherfraction.numerator / (double) otherfraction.denominator;

if (fractionOne > fractionTwo)

{

return true;

}

else

{

return false;

}

}

void fraction :: getFraction()

{

cout

cout

cin >> numerator;

cout

cin >> denominator;

while (denominator ==0)

{

cout

cin >> denominator;

}

}

THIRD FILE - DO NOT EDIT THIS SOURCE CODE

/*Client.cpp is set-up as a fraction class implementation and test driver program - DO NOT CHANGE SOURCE CODE

All necessary class objects are declared and defined here to test various class related operations.

HINT: see comments for specific class related function calls*/

#include

#include "fraction.h"

using namespace std;

int main()

{

fraction f1(9,8); //calling a parameterized class constructor

fraction f2(2,3);

fraction result; //calling a default class constructor

const fraction f3(12, 8);

const fraction f4(202, 303);

fraction f5,f6;

cout

cout

cout

cout

result.showFraction(); //calling a void "observer" function

cout

cout

cout

cout

f1.showFraction();

cout

f2.showFraction();

cout

result = f1.AddedTo(f2); //a class binary operation - a value-returning "observer" function

result.showFraction();

cout

cout

f1.showFraction();

cout

f2.showFraction();

cout

result = f1.Subtract(f2); //a class binary operation - a value-returning "observer" function

result.showFraction();

cout

cout

f1.showFraction();

cout

f2.showFraction();

cout

result = f1.MultipliedBy(f2); //a class binary operation - a value-returning "observer" function

result.showFraction();

cout

result = f3.DividedBy(f4); //a class binary operation - a value-returning "observer" function

cout

f3.showFraction();

cout

f4.showFraction();

cout

result.showFraction();

cout

cout

cout

f5.getFraction(); //a class input operation - a transformer or setter function

f5.showFraction(); //a class output operation - an observer or getter function

cout

f6.getFraction();

f6.showFraction();

cout

cout

cout

if (f5.isGreaterThan(f6)){ //a class relational expression - boolean operation/function

f5.showFraction();

cout

f6.showFraction();

cout

} else {

f5.showFraction();

cout

f6.showFraction();

cout

}

cout

cout

// system ("PAUSE");

return 0;

}

The result object starts off at 0/1 Arithmetic operations with fraction objects stored in the results class object The sum of 9/8 and 2/3 is 43/24 The difference of 9/8 and 2/3 is 11/24 The product of 9/8 and 2/3 is 18/24 The quotient of 12/8 and 202/303 is 3636/1616 Input and Output operations for two new class objects Enter values for a fraction obiect Numerator: 12 Denominator: 13 12/13 Enter values for a fraction object Numerator: 5 Denominator: 6 5/6 A Boolean operation comparing two class objects 12/13 is greater than 5/6 Fraction class implementation test now successfully concluded Program ended with exit code: 0

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Processing Fundamentals Design And Implementation

Authors: KROENKE DAVID M.

1st Edition

8120322258, 978-8120322257

More Books

Students also viewed these Databases questions

Question

l Describe the development process.

Answered: 1 week ago

Question

What is meant by 'Wealth Maximization ' ?

Answered: 1 week ago