Exception Project (Written in Java using netbeans) - Chapter 11 This assignment
ID: 3799655 • Letter: E
Question
Exception Project (Written in Java using netbeans) - Chapter 11
This assignment assumes you have completed Programming Challenge 1 of Chapter 10 (Employee and ProductionWorker Classes). Modify the Employee and ProductionWorker clases so they throw exceptions when the following errors occur:
*The Employee class should throw and exception named InvalidEmployeeNumber when it receives and invalid employee number.
*The ProductionWorker class should throw an exception named InvalidShift when it receives an invalid shift.
*The ProductionWorker class should throw an exception named InvalidPayRate when it receives a negative number for the hourly pay rate.
This is what I have for Programming Challenge 1 of Chapter 10:
package employeeandproductionworkerclasses;
import java.util.*;
public class ProductionWorkerDemo
{
public static void main(String[] args)
{
String name,id,date;
int shift;
double pay;
// Creates Scanner object
Scanner keyboard = new Scanner(System.in);
// Gets the user's name.
System.out.println("Enter employee name: ");
name = keyboard.nextLine();
// Gets the user's employee number.
System.out.println("Enter employee ID: ");
id = keyboard.nextLine();
// Gets the user's hire date.
System.out.println("Enter employee date ");
date = keyboard.nextLine();
System.out.println("1-day Shift/n2-Night shift");
System.out.println("Enter employee shift: ");
shift = keyboard.nextInt();
System.out.println("Enter hourly pay");
pay = keyboard.nextDouble();
// Creates an Production worker object.
ProductionWorker pw =
new ProductionWorker(name,id,date,shift,pay);
System.out.println();
System.out.println("Employee Name: " + pw.getName());
System.out.println("Employee ID: " + pw.getNumber());
System.out.println("Hire Date: " + pw.getHireDate());
System.out.println("Shift: " + pw.getShift());
System.out.println("Hourly Rate: " + pw.getHourlyPayRate());
}
}
package employeeandproductionworkerclasses;
import java.util.*;
import java.text.DecimalFormat;
import java.text.DateFormat;
public class ProductionWorker extends Employee
{
private int shift; // The employee's shift
private double hourpayrate; // The employee's pay rate
public ProductionWorker(String Empname, String Empnumber, String Hiredate,
int shift, double hourpayrate)
{
super(Empname, Empnumber, Hiredate);
setShift(shift);
setHourlyPayRate(hourpayrate);
}
public int getShift()
{
return shift;
}
public double getHourlyPayRate()
{
return hourpayrate;
}
public void setShift(int s)
{
shift = s;
}
/**
The setPayRate method sets the employee's pay rate.
@param p The employee's pay rate.
*/
public void setHourlyPayRate(double r)
{
hourpayrate = r;
}
}
package employeeandproductionworkerclasses;
class Employee
{
private String Empname;
private String Empnumber;
private String Hiredate;
public Employee()
{
Empname="";
Empnumber="";
Hiredate="";
}
public Employee (String Empname, String Empnumber,String Hiredate)
{
setName(Empname);
setNumber(Empnumber);
setHiredate(Hiredate);
}
public void setName(String n)
{
Empname = n;
}
public void setNumber(String num)
{
Empnumber = num;
}
public void setHireDate(String h)
{
Hiredate = h;
}
public String getName()
{
return Empname;
}
public String getNumber()
{
return Empnumber;
}
public String getHireDate()
{
return Hiredate;
}
private void setHiredate(String Hiredate) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
package employeeandproductionworkerclasses;
/**
*
* @author Derek
*/
public class invalidpayrate extends Exception {
public invalidpayrate(String message){super(message);
}
}
Explanation / Answer
HI, Please find my implementation.
Please let me know in case of any issue.
########## Employee.java ##########
public class Employee
{
private String Empname;
private String Empnumber;
private String Hiredate;
public Employee()
{
Empname="";
Empnumber="";
Hiredate="";
}
public Employee (String Empname, String Empnumber,String Hiredate) throws InvalidEmployeeNumber
{
setName(Empname);
setNumber(Empnumber);
setHiredate(Hiredate);
}
public void setName(String n) throws InvalidEmployeeNumber
{
if( n == null || n.trim().equals(""))
throw new InvalidEmployeeNumber("Employee name can not be null or empty");
Empname = n;
}
public void setNumber(String num)
{
Empnumber = num;
}
public void setHireDate(String h)
{
Hiredate = h;
}
public String getName()
{
return Empname;
}
public String getNumber()
{
return Empnumber;
}
public String getHireDate()
{
return Hiredate;
}
private void setHiredate(String Hiredate) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
########## ProductionWorker.java ##########
import java.util.*;
import java.text.DecimalFormat;
import java.text.DateFormat;
public class ProductionWorker extends Employee
{
private int shift; // The employee's shift
private double hourpayrate; // The employee's pay rate
public ProductionWorker(String Empname, String Empnumber, String Hiredate,
int shift, double hourpayrate) throws InvalidEmployeeNumber, InvalidShift, Invalidpayrate
{
super(Empname, Empnumber, Hiredate);
setShift(shift);
setHourlyPayRate(hourpayrate);
}
public int getShift()
{
return shift;
}
public double getHourlyPayRate()
{
return hourpayrate;
}
public void setShift(int s) throws InvalidShift
{
if(s < 0){
throw new InvalidShift("Shift can not negative");
}
shift = s;
}
/**
The setPayRate method sets the employee's pay rate.
@param p The employee's pay rate.
*/
public void setHourlyPayRate(double r) throws Invalidpayrate
{
if(r < 0)
throw new Invalidpayrate("Pay rate can not be negative");
hourpayrate = r;
}
}
########## Exceptions classes ##########
class Invalidpayrate extends Exception {
public Invalidpayrate(String message){
super(message);
}
}
class InvalidEmployeeNumber extends Exception{
public InvalidEmployeeNumber(String message) {
super(message);
}
}
class InvalidShift extends Exception{
public InvalidShift(String message) {
super(message);
}
}
########### ProductionWorkerDemo.java ###########
import java.util.*;
public class ProductionWorkerDemo
{
public static void main(String[] args)
{
String name,id,date;
int shift;
double pay;
// Creates Scanner object
Scanner keyboard = new Scanner(System.in);
// Gets the user's name.
System.out.println("Enter employee name: ");
name = keyboard.nextLine();
// Gets the user's employee number.
System.out.println("Enter employee ID: ");
id = keyboard.nextLine();
// Gets the user's hire date.
System.out.println("Enter employee date ");
date = keyboard.nextLine();
System.out.println("1-day Shift/n2-Night shift");
System.out.println("Enter employee shift: ");
shift = keyboard.nextInt();
System.out.println("Enter hourly pay");
pay = keyboard.nextDouble();
try{
// Creates an Production worker object.
ProductionWorker pw = new ProductionWorker(name,id,date,shift,pay);
System.out.println();
System.out.println("Employee Name: " + pw.getName());
System.out.println("Employee ID: " + pw.getNumber());
System.out.println("Hire Date: " + pw.getHireDate());
System.out.println("Shift: " + pw.getShift());
System.out.println("Hourly Rate: " + pw.getHourlyPayRate());
}catch(InvalidEmployeeNumber e){
System.out.println(e.getMessage());
}catch(Invalidpayrate e){
System.out.println(e.getMessage());
}catch(InvalidShift e){
System.out.println(e.getMessage());
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.