Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Language is Java Complete the implementation of the Fraction class. Your class s

ID: 3873313 • Letter: L

Question

Language is Java

Complete the implementation of the Fraction class. Your class should provide at least the following public methods

a default constructor - Did this

a constructor supplied with a numerator and a denominator - Did this

a constructor supplied with a whole number - Did this

a constructor supplied with another fraction, so you can make a copy of a fraction

a method named equals to determine whether a fraction supplied as a parameter is equal to this fraction

RETURNS BOOLEAN

a method named isLessThan to determine whether this fraction is less than the parameter fraction

RETURNS BOOLEAN

methods named add, subtract, multiply, and divide each of which accepts a parameter and returns a fraction that results from the indicated operation - Did this

toString and toDouble methods - Did toString

accessor methods getNumerator, getDenominator, and getSign (which should return a character, '-' or '+') to allow the client to individually see the numerator, denominator, and sign

Your class should ensure that at the end of every operation, the stored fraction value is always in simplest form with non-negative denominator.

I did most of it, but am having a hard time with the accessors, equal, and less than.

Explanation / Answer

import java.util.*;

class Fraction

{

private int numerator;

private int denominator;

public Fraction() //default constructor

{

numerator = 0;

denominator = 1;

}

public Fraction(int numerator,int denominator) //parameterized constructor

{

this.numerator = numerator;

this.denominator = denominator;

}

public Fraction(Fraction f)

{

this.numerator = f.numerator;

this.denominator = f.denominator;

}

public Fraction add(Fraction f1,Fraction f2) // add two fractions

{

this.numerator = f1.numerator * f2.denominator + f2.numerator * f1.denominator;

this.denominator = f1.denominator * f2.denominator;

return this;

}

public Fraction sub(Fraction f1,Fraction f2) // subtract a fraction from another

{

this.numerator = f1.numerator * f2.denominator - f2.numerator * f1.denominator;

this.denominator = f1.denominator * f2.denominator;

return this;

}

public Fraction mul(Fraction f1,Fraction f2) //multiply two fractions

{

this.numerator = f1.numerator * f2.numerator;

this.denominator = f1.denominator * f2.denominator;

return this;

}

public Fraction div(Fraction f1,Fraction f2) //division of fractions

{

this.numerator = f1.numerator * f2.denominator;

this.denominator = f1.denominator * f2.numerator;

return this;

}

public String toString() //override toString() method

{

return " "+numerator+"/"+denominator;

}

public boolean equals(Fraction f) //compare two fractions

{

if(numerator == f.numerator && denominator == f.denominator)

return true;

else

return false;

}

public boolean isLessThan(Fraction f) //compare two fractions

{

if(numerator < f.numerator || denominator > f.denominator)

return true;

else

return false;

}

public double toDouble()

{

return (double)numerator/denominator;

}

public int getNumerator()

{

return numerator;

}

public int getDenominator()

{

return denominator;

}

public char getSign()

{

if(numerator >0 && denominator >0)

return '+';

else if(numerator <0 || denominator <0)

return '-';

else if(numerator <0 && denominator <0)

return '+';

else

return '+';

}

}

class FractionDemo

{

public static void main (String[] args)

{

Scanner scan = new Scanner(System.in);

System.out.println("Enter the numerator and denominator of f1 ->");

int num1 = scan.nextInt();

int den1 = scan.nextInt();

Fraction f1 = new Fraction(num1,den1);

System.out.println("Enter the numerator and denominator of f2 ->");

int num2 = scan.nextInt();

int den2 = scan.nextInt();

Fraction f2 = new Fraction(num2,den2);

System.out.println("f1 = "+f1.toString());

System.out.println("f2 = "+f2.toString());

if(f1.isLessThan(f2))

System.out.println( f1.toString()+ " is less than " + f2.toString() );

else

System.out.println( f2.toString()+ " is less than " + f1.toString() );

System.out.println("The sum of numerator and denominator of f1 is "+ (num1+den1));

Fraction f3 = new Fraction();

Fraction f4 = new Fraction();

f3 = f3.mul(f1,f2);

f4 = f4.mul(f2,f1);

System.out.println("f3 = f1 * f2 = "+ f3.toString());

System.out.println("f4 = f2 * f1 = "+ f4.toString());

if(f3.equals(f4))

System.out.println(f3.getSign()+ f3.toString()+ " and" + f4.toString() + " are equal");

else

System.out.println( f3.getSign() + f3.toString()+ " and" + f4.toString() + " are not equal");

}

}

Output: