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

// EXCEPTION // I NEED HELP /* 1. An empty string is given for the employee’s na

ID: 3702036 • Letter: #

Question

// EXCEPTION

// I NEED HELP

/*

1. An empty string is given for the employee’s name.

2. An invalid value is given for the employee’s ID number. If you implemented this field as a string, then an empty string could be invalid. If you implemented this field as a numeric variable, then a negative number or zero would be invalid.

3. An invalid number is given for the number of hours worked. This would be a negative number or a number greater than 84.

4. An invalid number is given for the hourly pay rate. This would be a negative number or a number greater than 25

.*/

/**

   Payroll class

   Chapter 6, Programming Challenge 5

*/

public class Payroll

{

   private String name; // Employee name

   private int idNumber; // ID number

   private double payRate; // Hourly pay rate

   private double hoursWorked; // Number of hours worked

   /**

      The constructor initializes an object with the

       employee's name and ID number.

       @param n The employee's name.

       @param i The employee's ID number.

   */

   public Payroll(String n, int i)

   {

name = n;

idNumber = i;

   }

   /**

      The setName sets the employee's name.

       @param n The employee's name.

   */

   public void setName(String n)

   {

name = n;

   }

   /**

      The setIdNumber sets the employee's ID number.

       @param i The employee's ID number.

   */

  

   public void setIdNumber(int i)

   {

idNumber = i;

   }

   /**

      The setPayRate sets the employee's pay rate.

       @param p The employee's pay rate.

   */

  

   public void setPayRate(double p)

   {

payRate = p;

   }

   /**

      The setHoursWorked sets the number of hours worked.

       @param h The number of hours worked.

   */

   public void setHoursWorked(double h)

   {

hoursWorked = h;

   }

   /**

      The getName returns the employee's name.

       @return The employee's name.

   */

   public String getName()

   {

return name;

   }

   /**

      The getIdNumber returns the employee's ID number.

       @return The employee's ID number.

   */

  

   public int getIdNumber()

   {

return idNumber;

   }

   /**

      The getPayRate returns the employee's pay rate.

       @return The employee's pay rate.

   */

   public double getPayRate()

   {

return payRate;

   }

   /**

      The getHoursWorked returns the hours worked by the

       employee.

       @return The hours worked.

   */

   public double getHoursWorked()

   {

return hoursWorked;

   }

   /**

      The getGrossPay returns the employee's gross pay.

       @return The employee's gross pay.

   */

   public double getGrossPay()

   {

return hoursWorked * payRate;

   }

}

Explanation / Answer

/* 1. An empty string is given for the employee’s name. 2. An invalid value is given for the employee’s ID number. If you implemented this field as a string, then an empty string could be invalid. If you implemented this field as a numeric variable, then a negative number or zero would be invalid. 3. An invalid number is given for the number of hours worked. This would be a negative number or a number greater than 84. 4. An invalid number is given for the hourly pay rate. This would be a negative number or a number greater than 25 .*/ /** Payroll class Chapter 6, Programming Challenge 5 */ public class Payroll { private String name; // Employee name private int idNumber; // ID number private double payRate; // Hourly pay rate private double hoursWorked; // Number of hours worked /** The constructor initializes an object with the employee's name and ID number. @param n The employee's name. @param i The employee's ID number. */ public Payroll(String n, int i) { setName(n); setIdNumber(i); } /** The setName sets the employee's name. @param n The employee's name. */ public void setName(String n) { if(n == null || n.isEmpty()) { throw new IllegalArgumentException("Name can not be empty"); } name = n; } /** The setIdNumber sets the employee's ID number. @param i The employee's ID number. */ public void setIdNumber(int i) { if(i 25) { throw new IllegalArgumentException("Invalid payment rate"); } payRate = p; } /** The setHoursWorked sets the number of hours worked. @param h The number of hours worked. */ public void setHoursWorked(double h) { if(h < 0 || h > 84) { throw new IllegalArgumentException("Invalid hours"); } hoursWorked = h; } /** The getName returns the employee's name. @return The employee's name. */ public String getName() { return name; } /** The getIdNumber returns the employee's ID number. @return The employee's ID number. */ public int getIdNumber() { return idNumber; } /** The getPayRate returns the employee's pay rate. @return The employee's pay rate. */ public double getPayRate() { return payRate; } /** The getHoursWorked returns the hours worked by the employee. @return The hours worked. */ public double getHoursWorked() { return hoursWorked; } /** The getGrossPay returns the employee's gross pay. @return The employee's gross pay. */ public double getGrossPay() { return hoursWorked * payRate; } }