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); } } }
To rectify the problem identified in the following
//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);
}
}
}
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);
}
}
}
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images