Develop a simulated payroll application. The project has three parts. Part A is developed for HR staff to save and open a personnel file. Part B is developed for the payroll process to calculate a gross wage before tax. Part C is developed for payroll tax staff to deduct tax based on the tax table and calculate the net wage after tax. The DFD of the HR-Payroll system is presented as follows.

Diagram: see image.

PART A AS AN HR STAFF, I WANT TO OPEN A FILE AND PERMANENTLY SAVE IT IN THE COMPUTER SO THAT I CAN STORE STAFF DETAILS SUCH AS ID, NAME, PAY RATE AND EMAIL ADDRESS.

Based on the above user story and Part A of the DFD, your tasks are:

1. Develop Method 1 (AddToList) to add personal details to a list box (see following figure). Ensure your input validation is under the controls, e.g. no letters can be input for pay rate. Also, the data can be deleted if errors are made.

2. Develop Method 2 (SaveDataFile) to save all the details to a personnel text file.

3. Develop Method 3 (OpenSavedFile) to open a saved file. When giving a file name, this method will open the file and send all the data to a list. For example, if the file name is PersonnelFile.txt, all the saved data will be sent to a PeopleList.

4. Test and debug.

Form: see image.

PART B AS A PAYROLL PROCESS STAFF, I WANT TO RETRIEVE THE PAY RATES OF INDIVIDUAL STAFF FROM PERSONNEL FILE IN THE HR DEPARTMENT SO THAT I CAN CALCULATE WAGES BASED ON WEEKLY WORKING HOURS ( WAGES = PAY RATE X WORKING HOURS).

Based on the above user story and Part B of the DFD, your tasks are:

1. Develop Method 4 (SearchforPayRate) to search the personal list details for individual pay rate (e.g. $20 per hour) according to Employment Id (e.g. 103).

2. Calculate the wages (wage = pay rate x working hours = 20 x 25 = 500). Note: To be more realistic, all the numbers are required to use decimal data type rather than integer.

3. Display the results on the screen as in the follows.

4. Test and debug.

Form: see image.

PART C AS A TAX PROCESS STAFF, I WANT TO FIND OUT THE TAX CODE* AND WEEKLY WITHHOLDING TAX** FOR EACH WAGE SO THAT I CAN CALCULATE THE TAX PAYMENT AND NET WAGE

*Tax code is based on weekly wage income (see Table 1).

Table 1. Weekly Income Tax Code see image.

** Weekly Withholding Tax is based on searching a tax table by tax code in order to find out tax rate and deduction (see Table 2). Weekly Withholding Tax = Tax Rate x Wage Deduction

Table 2. Tax Table see image.

Based on the above user story and Part C of the DFD, your tasks are:

1. Develop Method 5 (MakeTaxCode) to decide a suitable tax code for each wage. For example, if wage is $500, according to Table 1, its Tax Code is B.

2. Reuse previously made method (3. OpenSavedFile) to open a TaxTable file (download TaxTable.txt from Moodle).

3. Develop a method (6. SerachforTaxRate) to search the Tax Table list for relevant Tax Rate based on the Tax Code. For example, for tax code B based on wage $500, the tax rate is 0.17.

4. Develop a method (7. SerachforTaxDeduction) to search the Tax Table list for relevant Tax Deduction based on the Tax Code. For example, for tax code B, the deduction is 65.

5. Process Tax and display results (see the Figure below), e.g. weekly withholding tax (tax payment) = Tax Rate x Wage Tax Deduction = 0.17 x 500 65 = 20; Net wage after tax = wage before tax tax payment = 500 20 = 480.

6. Test and debug.

Form: see image.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.