JAVA Program(*MUST WORK IN HYPERGRADE*) Homework #1. Chapter 7. PC# 2. Payroll Class (page 488-489) Write a Payroll class that uses the following arrays as fields: * employeeId. An array of seven integers to hold employee identification numbers. The array should be initialized with the following numbers: 5658845 4520125 7895122 8777541 8451277 1302850 7580489 * hours. An array of seven integers to hold the number of hours worked by each employee * payRate. An array of seven doubles to hold each employee’s hourly pay rate * wages. An array of seven doubles to hold each employee’s gross wages The class should relate the data in each array through the subscripts. For example, the number in element 0 of the hours array should be the number of hours worked by the employee whose identification number is stored in element 0 of the employeeId array. That same employee’s pay rate should be stored in element 0 of the payRate array. The class should have a method that accepts an employee’s identification number as an argument and returns the gross pay for that employee. Demonstrate the class in a complete program that displays each employee number and asks the user to enter that employee’s hours and pay rate. It should then display each employee’s identification number and gross wages. Input Validation: Do not accept negative values for hours or numbers less than 6.00 for pay rate. PLEASE CREATE A WORKING CODE SO WHEN I UPLOAD IT TO HYPERGRADE IT PASSES ALL THE TEST CASSES. IT HAS TO PASS ALL THE TEST CASSES. ATTACHED IS THE FAILED PART. THANK YOU Test Case 1 Please enter hours for employee ID: 5658845\n 41ENTER Please enter pay rate for employee ID: 5658845\n 11ENTER Please enter hours for employee ID: 4520125\n 42ENTER Please enter pay rate for employee ID: 4520125\n 12ENTER Please enter hours for employee ID: 7895122\n 43ENTER Please enter pay rate for employee ID: 7895122\n 13ENTER Please enter hours for employee ID: 8777541\n 44ENTER Please enter pay rate for employee ID: 8777541\n 14ENTER Please enter hours for employee ID: 8451277\n 45ENTER Please enter pay rate for employee ID: 8451277\n 15ENTER Please enter hours for employee ID: 1302850\n 46ENTER Please enter pay rate for employee ID: 1302850\n 16ENTER Please enter hours for employee ID: 7580489\n 47ENTER Please enter pay rate for employee ID: 7580489\n 17ENTER ===========================\n Employee ID\tGross Wages\n ===========================\n 5658845\t$ 451.00\n 4520125\t$ 504.00\n 7895122\t$ 559.00\n 8777541\t$ 616.00\n 8451277\t$ 675.00\n 1302850\t$ 736.00\n 7580489\t$ 799.00\n Test Case 2 Please enter hours for employee ID: 5658845\n -1ENTER Hours cannot be negative.\n Please enter hours for employee ID: 5658845\n 41ENTER Please enter pay rate for employee ID: 5658845\n 1ENTER Employee pay rate cannot be less than $6.00/hour.\n Please enter pay rate for employee ID: 5658845\n 11ENTER Please enter hours for employee ID: 4520125\n -2ENTER Hours cannot be negative.\n Please enter hours for employee ID: 4520125\n 42ENTER Please enter pay rate for employee ID: 4520125\n 2ENTER Employee pay rate cannot be less than $6.00/hour.\n Please enter pay rate for employee ID: 4520125\n 12ENTER Please enter hours for employee ID: 7895122\n -3ENTER Hours cannot be negative.\n Please enter hours for employee ID: 7895122\n 43ENTER Please enter pay rate for employee ID: 7895122\n 3ENTER Employee pay rate cannot be less than $6.00/hour.\n Please enter pay rate for employee ID: 7895122\n 13ENTER Please enter hours for employee ID: 8777541\n -4ENTER Hours cannot be negative.\n Please enter hours for employee ID: 8777541\n 44ENTER Please enter pay rate for employee ID: 8777541\n 4ENTER Employee pay rate cannot be less than $6.00/hour.\n Please enter pay rate for employee ID: 8777541\n 14ENTER Please enter hours for employee ID: 8451277\n -5ENTER Hours cannot be negative.\n Please enter hours for employee ID: 8451277\n 45ENTER Please enter pay rate for employee ID: 8451277\n 5ENTER Employee pay rate cannot be less than $6.00/hour.\n Please enter pay rate for employee ID: 8451277\n 15ENTER Please enter hours for employee ID: 1302850\n -6ENTER Hours cannot be negative.\n Please enter hours for employee ID: 1302850\n 46ENTER Please enter pay rate for employee ID: 1302850\n 1.6ENTER Employee pay rate cannot be less than $6.00/hour.\n Please enter pay rate for employee ID: 1302850\n 16ENTER Please enter hours for employee ID: 7580489\n -7ENTER Hours cannot be negative.\n Please enter hours for employee ID: 7580489\n 47ENTER Please enter pay rate for employee ID: 7580489\n 1.7ENTER Employee pay rate cannot be less than $6.00/hour.\n Please enter pay rate for employee ID: 7580489\n 17ENTER ===========================\n Employee ID\tGross Wages\n ===========================\n 5658845\t$ 451.00\n 4520125\t$ 504.00\n 7895122\t$ 559.00\n 8777541\t$ 616.00\n 8451277\t$ 675.00\n 1302850\t$ 736.00\n 7580489\t$ 799.00\n
Test Case 1
41ENTER
Please enter pay rate for employee ID: 5658845\n
11ENTER
Please enter hours for employee ID: 4520125\n
42ENTER
Please enter pay rate for employee ID: 4520125\n
12ENTER
Please enter hours for employee ID: 7895122\n
43ENTER
Please enter pay rate for employee ID: 7895122\n
13ENTER
Please enter hours for employee ID: 8777541\n
44ENTER
Please enter pay rate for employee ID: 8777541\n
14ENTER
Please enter hours for employee ID: 8451277\n
45ENTER
Please enter pay rate for employee ID: 8451277\n
15ENTER
Please enter hours for employee ID: 1302850\n
46ENTER
Please enter pay rate for employee ID: 1302850\n
16ENTER
Please enter hours for employee ID: 7580489\n
47ENTER
Please enter pay rate for employee ID: 7580489\n
17ENTER
===========================\n
Employee ID\tGross Wages\n
===========================\n
5658845\t$ 451.00\n
4520125\t$ 504.00\n
7895122\t$ 559.00\n
8777541\t$ 616.00\n
8451277\t$ 675.00\n
1302850\t$ 736.00\n
7580489\t$ 799.00\n
Test Case 2
-1ENTER
Hours cannot be negative.\n
Please enter hours for employee ID: 5658845\n
41ENTER
Please enter pay rate for employee ID: 5658845\n
1ENTER
Employee pay rate cannot be less than $6.00/hour.\n
Please enter pay rate for employee ID: 5658845\n
11ENTER
Please enter hours for employee ID: 4520125\n
-2ENTER
Hours cannot be negative.\n
Please enter hours for employee ID: 4520125\n
42ENTER
Please enter pay rate for employee ID: 4520125\n
2ENTER
Employee pay rate cannot be less than $6.00/hour.\n
Please enter pay rate for employee ID: 4520125\n
12ENTER
Please enter hours for employee ID: 7895122\n
-3ENTER
Hours cannot be negative.\n
Please enter hours for employee ID: 7895122\n
43ENTER
Please enter pay rate for employee ID: 7895122\n
3ENTER
Employee pay rate cannot be less than $6.00/hour.\n
Please enter pay rate for employee ID: 7895122\n
13ENTER
Please enter hours for employee ID: 8777541\n
-4ENTER
Hours cannot be negative.\n
Please enter hours for employee ID: 8777541\n
44ENTER
Please enter pay rate for employee ID: 8777541\n
4ENTER
Employee pay rate cannot be less than $6.00/hour.\n
Please enter pay rate for employee ID: 8777541\n
14ENTER
Please enter hours for employee ID: 8451277\n
-5ENTER
Hours cannot be negative.\n
Please enter hours for employee ID: 8451277\n
45ENTER
Please enter pay rate for employee ID: 8451277\n
5ENTER
Employee pay rate cannot be less than $6.00/hour.\n
Please enter pay rate for employee ID: 8451277\n
15ENTER
Please enter hours for employee ID: 1302850\n
-6ENTER
Hours cannot be negative.\n
Please enter hours for employee ID: 1302850\n
46ENTER
Please enter pay rate for employee ID: 1302850\n
1.6ENTER
Employee pay rate cannot be less than $6.00/hour.\n
Please enter pay rate for employee ID: 1302850\n
16ENTER
Please enter hours for employee ID: 7580489\n
-7ENTER
Hours cannot be negative.\n
Please enter hours for employee ID: 7580489\n
47ENTER
Please enter pay rate for employee ID: 7580489\n
1.7ENTER
Employee pay rate cannot be less than $6.00/hour.\n
Please enter pay rate for employee ID: 7580489\n
17ENTER
===========================\n
Employee ID\tGross Wages\n
===========================\n
5658845\t$ 451.00\n
4520125\t$ 504.00\n
7895122\t$ 559.00\n
8777541\t$ 616.00\n
8451277\t$ 675.00\n
1302850\t$ 736.00\n
7580489\t$ 799.00\n
1. Import the `Scanner` class for user input.
2. Create a `Payroll` class with private fields:
- `employeeId`: An array of seven integers initialized with employee identification numbers.
- `hours`: An array to hold the number of hours worked by each employee.
- `payRate`: An array to hold each employee's hourly pay rate.
- `wages`: An array to hold each employee's gross wages.
- `scanner`: An instance of the `Scanner` class for input.
3. Create a method `inputHoursAndPayRate`:
- Loop through each employee's data (employeeId array):
- Prompt the user to enter hours worked for the current employee.
- Validate that the input is not negative using `validatePositiveInput` method.
- Prompt the user to enter the pay rate for the current employee.
- Validate that the pay rate is not less than $6.00 using `validatePayRate` method.
- Calculate the wages for the current employee using `calculateWages` method.
4. Create a private method `validatePositiveInput` to validate input for hours:
- Loop until the user enters a non-negative integer.
- If the input is negative, display an error message and prompt for input again.
- Return the validated input.
5. Create a private method `validatePayRate` to validate input for pay rate:
- Loop until the user enters a pay rate greater than or equal to $6.00.
- If the input is less than $6.00, display an error message and prompt for input again.
- Return the validated input.
6. Create a private method `calculateWages` to calculate the gross wages for an employee:
- Accept the index of the employee as a parameter.
- Calculate the gross wages by multiplying hours worked by the pay rate.
- Store the result in the `wages` array at the specified index.
7. Create a method `displayPayroll` to display the employee IDs and gross wages:
- Print a header for the table.
- Loop through each employee's data and print the employee ID and gross wages formatted with dollar sign and two decimal places.
8. In the `main` method:
- Create an instance of the `Payroll` class.
- Call the `inputHoursAndPayRate` method to gather input data from the user.
- Call the `displayPayroll` method to display the payroll information.
9. Run the program by executing the `main` method.
Step by step
Solved in 4 steps with 1 images