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

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());

       }

   }

}