To rectify the problem identified in the following program,add a public method called isZero() to Fraction class. This method will determine if a Fraction represents a zero fraction. A zero fraction has a numerator == 0, no matter what the denominator is. isZero() method should return a Boolean result indicating a zero fraction or otherwise. The method will be used by the client class (TestFraction.java) to test whether the ‘calling fraction’ is equal to the number zero. Modify old client class so that it now loops until a fraction representing zero is entered. //TestFraction.java import java.util.Scanner; //test program public class TestFraction {     public static void main(String[] args)      {         //create a Scanner object         Scanner in = new Scanner(System.in);         //create new fraction         Fraction frac = new Fraction();         //declare numerator and denominator         int n=1,d;         System.out.print("Enter Fraction's Numerator: ");         //input numerator         n = in.nextInt();         System.out.print("Enter Fraction's Denominator: ");         //input denominator         d = in.nextInt();         //loop execute until the numerator is negative         while(n>=0)         {             //call input with n and d             frac.input(n, d);             //call display             frac.display();             System.out.print("Enter Fraction's Numerator: ");             //input numerator             n = in.nextInt();             System.out.print("Enter Fraction's Denominator: ");             //input denominator             d = in.nextInt();             frac.setNumerator(n);             frac.setDenominator(d);         }     } }       Step 3 Fraction.java: class Fraction{     private double numerator;     private double denominator;     //Getter and setter method for numerator     public double getDecimalValue(){         return numerator/denominator;     }     public double getNumerator() {         return numerator;     }     public void setNumerator(double numerator) {         this.numerator = numerator;     }     //Getter and setter method for denominator     public double getDenominator() {         return denominator;     }     public void setDenominator(double denominator) {         this.denominator = denominator;     }     //method to initialize numerator and denominator     public void input(int num, int den)     {         numerator = num;         //check if denominator is not zero         if (den != 0) {             denominator = den;         }         else {             System.out.println("Invalid denominator!!");             System.exit(0);         }     }     //method to display fraction     public void display()     {         double n, d;         n = numerator;         d = denominator;         //if the denominator is less than 0 then swap the sign of both numerator and denominator         if(denominator<0)         {             n= (-1)*numerator;             d=(-1)*denominator;             System.out.print(n + "/" + d);             System.out.println(" = " + n/d);         }         else         {             System.out.print(numerator + "/" + denominator);             System.out.println(" = " + n/d);         }     } }

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter7: Using Methods
Section: Chapter Questions
Problem 1CP
icon
Related questions
Question

To rectify the problem identified in the following program,add a public method called isZero() to Fraction class. This method will determine if a Fraction represents a zero fraction. A zero fraction has a numerator == 0, no matter what the denominator is. isZero() method should return a Boolean result indicating a zero fraction or otherwise. The method will be used by the client class (TestFraction.java) to test whether the ‘calling fraction’ is equal to the number zero. Modify old client class so that it now loops until a fraction representing zero is entered.


//TestFraction.java
import java.util.Scanner;
//test program
public class TestFraction
{
    public static void main(String[] args) 
    {
        //create a Scanner object
        Scanner in = new Scanner(System.in);
        //create new fraction
        Fraction frac = new Fraction();
        //declare numerator and denominator
        int n=1,d;
        System.out.print("Enter Fraction's Numerator: ");
        //input numerator
        n = in.nextInt();
        System.out.print("Enter Fraction's Denominator: ");
        //input denominator
        d = in.nextInt();
        //loop execute until the numerator is negative
        while(n>=0)
        {
            //call input with n and d
            frac.input(n, d);
            //call display
            frac.display();
            System.out.print("Enter Fraction's Numerator: ");
            //input numerator
            n = in.nextInt();
            System.out.print("Enter Fraction's Denominator: ");
            //input denominator
            d = in.nextInt();
            frac.setNumerator(n);
            frac.setDenominator(d);
        }
    }
}

 

 
 

Step 3

Fraction.java:

class Fraction{

    private double numerator;
    private double denominator;

    //Getter and setter method for numerator
    public double getDecimalValue(){
        return numerator/denominator;
    }
    public double getNumerator() {
        return numerator;
    }
    public void setNumerator(double numerator) {
        this.numerator = numerator;
    }
    //Getter and setter method for denominator
    public double getDenominator() {
        return denominator;
    }
    public void setDenominator(double denominator) {
        this.denominator = denominator;
    }

    //method to initialize numerator and denominator
    public void input(int num, int den)
    {
        numerator = num;
        //check if denominator is not zero
        if (den != 0) {
            denominator = den;
        }
        else {
            System.out.println("Invalid denominator!!");
            System.exit(0);
        }
    }

    //method to display fraction
    public void display()
    {
        double n, d;
        n = numerator;
        d = denominator;
        //if the denominator is less than 0 then swap the sign of both numerator and denominator
        if(denominator<0)
        {
            n= (-1)*numerator;
            d=(-1)*denominator;
            System.out.print(n + "/" + d);
            System.out.println(" = " + n/d);
        }

        else
        {
            System.out.print(numerator + "/" + denominator);
            System.out.println(" = " + n/d);
        }
    }
}

 
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
void method
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,