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

Find any Java Fraction class on the Internet. Add any methods from the Lecture s

ID: 3785789 • Letter: F

Question

Find any Java Fraction class on the Internet. Add any methods from the Lecture slides that are not implemented. Add a static “main” method that tests every single method, including constructors, for correctness.

Here's what I have so far:

public class Fraction { public static final Fraction ZERO = new Fraction(); //constants

private int numerator, denominator; //instance variables

public Fraction() { numerator=0; denominator=1;} //default constructor

public Fraction(int num, int denom) {numerator = num; denominator = denom;}

public Fraction(Fraction toCopy) { //copy constructor

this.numerator = toCopy.numerator; /* … */}

public Fraction(String constant) {return Fraction.parse(constant); } /*optional*/

public int getNumerator() {return numerator;} //getter or accessor

public Fraction set(int num, int denom) //setter

{numerator = num; denominator = denom; return this;}

public Fraction reduce() { /* … */ return this;} //mutator

public Fraction add(Fraction f) { /* … */ return this;} //mutator

public int compareTo(Fraction f) { /* … */ return 0;} //predicate or test

public boolean equals(Object o) { /* … */ return true; } //predicate or tests

public static Fraction parse(String input) { /* … */ return ZERO;} //converts toString output

public String toString() { /* … */ return “3/4”;} //enables System.out.print }

Those were all the method from the lecture slide plus any others I could find. I just need them tested in a main method now and I'm not sure how to do that.

Explanation / Answer

Hi, Please find my implementation.

Please let me know in case of any issue.

############## Fraction.java ##########

public class Fraction {

   /**

   * instance variable

   */

   public int numerator;

   /**

   * instance variable

   */

   public int denominator;

   // copy constructor

   public Fraction(Fraction other) {

       numerator = other.numerator;

       denominator = other.denominator;

   }

   /**

   * param n

   * param d

   */

   public Fraction(int n, int d) {

       if(d == 0){

           System.out.println("Denominator can not be negative");

           System.exit(0);

       }

       // finding gcd of n and d

       int gcd = reduce(n, d);

       // storing numerator and denominator in reduced form

       numerator = n/gcd;

       denominator = d/gcd;

   }

   // toString method

   public String toString(){

       return numerator+"/"+denominator;

   }

   // equal method

   public boolean equals(Object other)

   {

       if( other != null && ! (other instanceof Fraction ) ) return false;

       Fraction that = (Fraction)other;

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

           return true;

       else

           return false;

   }

   /**

   * function to calculate gcd of numerator and denominator

   */

   private int reduce(int numerator, int denominator) {

       int min = numerator;

       int gcd;

       if (numerator > denominator) {

           min = denominator;

       }

       for (gcd = min; gcd > 1; gcd--) {

           if (numerator % gcd == 0 && denominator % gcd == 0) {

               break;

           }

       }

       return gcd;

   }

   public Fraction add(Fraction other){

       int num = numerator*other.denominator + denominator*other.numerator;

       int deno = numerator*denominator;

       int gcd = reduce(num, deno);

       return new Fraction(num/gcd, deno/gcd);

   }

   public Fraction set(int num, int denom) //setter

   {numerator = num; denominator = denom; return this;}

   public int compareTo(Fraction f) {

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

       double f2 = (double)f.numerator/(double)f.denominator;

       if(f1 < f2)

           return -1;

       else if(f1 > f2)

           return 1;

       else

           return 0;

   } //predicate or test

}

############## FractionTest.java ################

public class FractionDriver {

  

   public static void main(String[] args) {

      

       Fraction a = new Fraction(1,2);

Fraction b = new Fraction(3,4);

Fraction c = new Fraction(b);

System.out.println("a:"+a.toString());

System.out.println("b:"+b.toString());

System.out.println("c:"+c.toString());

  

a.add(b);

a = a.add(b);

System.out.println("a:"+a.toString());

System.out.println("b:"+b.toString());

System.out.println("c:"+c.toString());

System.out.println("a.equals(b):" + a.equals(b));

System.out.println("b.equals(c):" + b.equals(c));

      

   }

  

}

/*

Sample output:

a:1/2

b:3/4

c:3/4

a:5/1

b:3/4

c:3/4

a.equals(b):false

b.equals(c):true

*/

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote