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

a) Write a Fraction class that implements these methods: add This method receive

ID: 3762197 • Letter: A

Question

a)Write a Fraction class that implements these methods:

add This method receives a Fraction parameter and adds the parameter fraction to the calling object fraction.

multiply This method receives a Fraction parameter and multiplies the parameter fraction by the calling object fraction.

print This method prints the fraction using fraction notation (1/4, 21/14, etc.)

printAsDouble This method prints the fraction as a double (0.25, 1.5, etc.)

Separate accessor methods for each instance variable in the Fraction class.

Provide a driver class, FractionDemo, that demonstrates this Fraction class. The driver class should contain this main method:

public static void main(String[] args) {

Scanner stdIn = new Scanner(System.in);

Fraction c, d, x;       // Fraction objects

System.out.println("Enter numerator; then denominator.");

c = new Fraction(stdIn.nextInt(), stdIn.nextInt());

c.print();

System.out.println("Enter numerator; then denominator.");

d = new Fraction(stdIn.nextInt(), stdIn.nextInt());

d.print();

x = new Fraction();     // create a fraction for number 0

System.out.println("Sum:");

x.add(c).add(d);

x.print();

x.printAsDouble();

x = new Fraction(1, 1); // create a fraction for number 1

System.out.println("Product:");

x.multiply(c).multiply(d);

x.print();

x.printAsDouble();

System.out.println("Enter numerator; then denominator.");

x = new Fraction(stdIn.nextInt(), stdIn.nextInt());

x.printAsDouble();

} // end main

Note that this demonstration driver does not call the accessor methods. That’s OK. Accessor methods are often implemented regardless of whether there’s an immediate need for them. That’s because they are very useful methods in general and providing them means that future code can use them when the need arises.

Sample session:

Enter numerator; then denominator.

5

8

5/8

Enter numerator; then denominator.

4

10

4/10

Sum:

82/80

1.025

Product:

20/80

0.25

Enter numerator; then denominator.

6

0

infinity

b)Modify the code so that it can handle negative numerators and negative denominators, and provide a helping method that performs fraction reduction.

Sample session using negative numbers and reduction:

Enter numerator; then denominator.

-5

-8

5/8

Enter numerator; then denominator.

4

-10

-2/5

Sum:

9/40

0.225

Product:

-1/4

-0.25

Enter numerator; then denominator.

0

-0

indeterminate

  

Explanation / Answer

import java.util.Scanner;

public class fractionimp {


public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
Fraction c, d, x; // Fraction objects

System.out.println("Enter numerator; then denominator.");
c = new Fraction(stdIn.nextInt(), stdIn.nextInt());
c.print();

System.out.println("Enter numerator; then denominator.");
d = new Fraction(stdIn.nextInt(), stdIn.nextInt());
d.print();

x = new Fraction();

System.out.println("Sum:");
x.add(c).add(d);
x.print();
x.printAsDouble();

x = new Fraction(1, 1);

System.out.println("Product:");
x.multiply(c).multiply(d);
x.print();
x.printAsDouble();

System.out.println("Enter numerator; then denominator.");

x = new Fraction(stdIn.nextInt(), stdIn.nextInt());
x.printAsDouble();
}

}


public class Fraction {

private int numerator;
private int denominator;


public int getNumerator() {
return numerator;
}

public int getDenominator() {
return denominator;
}


public Fraction(int numerator, int denominator) {
this.numerator=numerator;
this.denominator = denominator;
}

public Fraction() {
this.numerator = 0;

this.denominator = 0;
}


public void print() {
System.out.println(this.numerator + "/" + this.denominator);
}

public Fraction add(Fraction f) {

if(this.numerator == 0) {
this.numerator = f.numerator;
this.denominator = f.denominator;
}
else {
this.numerator =this.numerator*f.denominator + this.denominator*f.numerator;

this.denominator = this.denominator*f.denominator;

return this;
}

public void printAsDouble() {

double d;
d= (1.0*this.numerator/this.denominator);
System.out.println(d);
}

public Fraction multiply(Fraction*f) {
this.numerator=this.numerator*f.numerator;
this.denominator=this.denominator*f.denominator;
return this;
}
}

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