Write an application from scratch where you are to write in Java
the following methods to be used by the main():
getFootValue() returning a Double value that is entered
getInchValue() returning a Double value that is entered
convertToCentimeters() returns a Double value using the
calculated results from the getFootValue() and
getInchValue() which will be used as the input values for
the convertToCentimeters() method
Next: The Exceptions that will be thrown if the values are
invalid and these values are to be checked and handled
by a try/catch block…
Write the following Exceptions:
• NegativeNumberException (if the foot or inch input value are negative)
• NonDigitNumberException (if the foot or inch input value are non numeric)
In addition to checking for the NegativeNumberException, also check for a NumberFormatException for the foot or inch values that were entered incorrectly (For example: I enter a letter for an inch or foot value). When catching the NumberFormatException, you will then throw your own NonDigitNumberException which will be caught by the try/catch block.
Sample I/O
Enter the foot value: 2
Enter the inch value: 12
Your result = 91.44 cm // 2ft,12 inches converted to CM
Enter the foot value: Bill
A non-digit foot value has been entered Please enter the values
again.
Enter the foot value: 2
Enter the Inch value: Blah
A non-digit inch value has been entered Please enter the values
again.
// Convertor.java
import java.util.Scanner;;
public class Convertor {
static Scanner sc = new Scanner(System.in);
public static double getFootValue() throws
NonDigitNumberException, NegativeNumberException
{
System.out.print("Enter the foot
value: ");
double d;
String foot = sc.nextLine();
try
{
d =
Double.parseDouble(foot);
}
catch(NumberFormatException
n)
{
throw(new
NonDigitNumberException("foot"));
}
if (d < 0)
{
throw(new
NegativeNumberException("foot"));
}
return d;
}
public static double getInchValue() throws
NonDigitNumberException, NegativeNumberException
{
System.out.print("Enter the inch
value: ");
double d;
String inch = sc.nextLine();
try
{
d =
Double.parseDouble(inch);
}
catch(NumberFormatException
n)
{
throw(new
NonDigitNumberException("inch"));
}
if (d < 0)
{
throw(new
NegativeNumberException("inch"));
}
return d;
}
public static double convertToCentimeters(double foot,
double inch)
{
return (foot*12 + inch)*2.54;
}
public static void main(String[] args)
{
double foot = 0;
double inch = 0;
try{
foot =
getFootValue();
inch =
getInchValue();
}
catch(NonDigitNumberException
d)
{
System.out.println(d.getMessage());
}
catch(NegativeNumberException
n)
{
System.out.println(n.getMessage());
}
System.out.println("Your result = "
+ convertToCentimeters(foot, inch) + " cm");
}
}
//NonDigitNumberException .java
public class NonDigitNumberException extends Exception {
public NonDigitNumberException(){
super("A non-digit foot value has
been entered Please enter the values again.");
}
public NonDigitNumberException(String message){
super("A non-digit " + message + " value has been
entered Please enter the values again.");
}
}
// NegativeNumberException.java
public class NegativeNumberException extends Exception{
public NegativeNumberException(){
super("A non negative value has
been entered Please enter the values again.");
}
public NegativeNumberException(String message){
super("A non negative " + message + " value has been
entered Please enter the values again.");
}
}
Get Answers For Free
Most questions answered within 1 hours.