Help would be grately apreciated on this problem thank you!

Backgound

The employees can be any one of the two types: 1) Full-Time Salaried (FTS) and 2) Part-Time Hourly (PTH).
Currently, there are totally 1050 FTS employees and 274 PTH employees in a company.
The company plans to add up to 50 new employees
FTS employees are paid in a fixed amount per week irrespective of the number of hours they work.
FTS employees are paid a gross salary anywhere between $1000 to $1500 per week (after picking randomly the
salary should be fixed for an employee until a pay-hike).
FTS employee Take home salary would be 30% less owing to federal/state income taxes and other deductibles.
PTH employees are paid a gross wage of $35.25 per hour.
PTH employees’ incomes depend on the number of hours worked.
PTH employees work anywhere between 20 to 30 hours per week.
PTH employee Take home salary would be 20% less owing to federal/state income taxes.
Program
Create a data structure for employees that will store the following information for each employee:
• Full Name
• ID (IDs have a format 333-xxxx. Employee1 = 333-0000, employee2 = 333-0001 and so on.)
• Status: FTS or PTH
• Gross Salary per week (only for FTS employees)
• Wages per hour (only for PTH employees)
• Hours worked per week (only for PTH employees)
Notes: Type/number of data structures can be student’s personal choice
Remember: Allow space in your data-structure for adding new employees
Initialize the database: Fill random values for all the information for all the current employees (1050 FTS
employees and 274 PTH employees).

Your program in an infinite loop, should ask for the following choices

a) Add New Employee
Write a user-defined function that will process this choice
a. Ask for Name
b. Assign a random ID that has not been used yet. Two employees should NOT have the same
employee ID.
c. Ask for Status
d. If the Status is FTS, ask for Gross Salary
e. If the Status is PTH, ask for Wages per hour
f. ADD the new employee to the data-structure and provide confirmation

b) Delete Employee
Write a user-defined function that will process this choice
a. Ask for ID and delete the employee-entry
b. Provide confirmation that the entry is deleted
c. If not found, print “NOT FOUND”

c) Search and Display Employee Information
Write a user-defined function that will process this choice
a. Ask for ID and print all information
b. If not found, print “NOT FOUND”
c. If FTS employee, print gross_salary and take-home_salary
d. If PTH employee, print wages/hr, number_of_hours_worked_this_week (random), gross_salary
and take-home_salary

d) Update Employee Information
Write a user-defined function that will process this choice
a. Ask for ID (print NOT FOUND if the ID is not found)
b. Ask for WHAT do you want to update (Status or Pay-scale)
c. Ask for new Status: (updating the status of an employee)
i. Update the status of the specified employee
ii. Provide confirmation about status change
d. Ask for Pay Hike Percentage: (example: 2 means increasing salary or wages by 2%)
i. Increase the salary or wages of the specified employee by the specified percentage
ii. Provide confirmation (Display old salary or wages and new salary or wages)

e) FTS Employee Statistics
Write a user-defined function that will process this choice
a. List ALL FTS employees names and IDs
b. Print Average of the Salary/week
c. Print Standard Deviation of the Salary/week

f) PTH Employee Statistics
Write a user-defined function that will process this choice
a. List ALL PTH employees names and IDs
b. Print Average of the Hours_worked/week and Salary/week
c. Print Standard Deviation of the Hours_worked/week and Salary/week

g) QUIT the system
a. Quit the infinite loop

Perhaps I missed it, but it is not clear to me what kind of help you're after.

You are welcome to post the proposed data structure, pseudocode or actual code for critique or help with debugging.

To solve this problem, you will need to use a data structure to store information about each employee. The data structure should include the following fields for each employee:

- Full Name
- ID (in the format 333-xxxx, where employee1 = 333-0000, employee2 = 333-0001, etc.)
- Status (FTS or PTH)
- Gross Salary per week (only for FTS employees)
- Wages per hour (only for PTH employees)
- Hours worked per week (only for PTH employees)

You have the freedom to choose the type and number of data structures to use for this task. One possible option is to use a list of dictionaries, where each dictionary represents an employee and contains the above-mentioned fields as keys.

To initialize the database, you need to assign random values for each field for all the current employees. For example, you can generate random names, IDs, salaries, wages, and hours worked. You should ensure that the IDs are unique for each employee.

Now, let's go through the options the program should offer in an infinite loop:

a) Add New Employee:
- This option should prompt the user to enter the name of the new employee.
- Generate a random ID that has not been used yet.
- Ask for the employee's status (FTS or PTH).
- If the status is FTS, ask for the gross salary per week.
- If the status is PTH, ask for the wages per hour.
- Add the new employee to the data structure and provide confirmation.

b) Delete Employee:
- This option should prompt the user to enter the ID of the employee to be deleted.
- Search for the employee with the provided ID and delete their entry from the data structure.
- Provide confirmation that the entry is deleted.
- If the ID is not found, print "NOT FOUND".

c) Search and Display Employee Information:
- This option should prompt the user to enter the ID of the employee to search for.
- Search for the employee with the provided ID in the data structure.
- If the ID is found, print all information about the employee.
- If the ID is not found, print "NOT FOUND".
- If the employee is an FTS employee, print the gross salary and take-home salary.
- If the employee is a PTH employee, print the wages per hour, the number of hours worked this week (randomly generated), the gross salary, and the take-home salary.

d) Update Employee Information:
- This option should prompt the user to enter the ID of the employee to update.
- Search for the employee with the provided ID in the data structure.
- If the ID is found, prompt the user to choose what they want to update (status or pay-scale).
- If they choose to update the status, prompt the user to enter the new status and update the status of the specified employee. Provide confirmation about the status change.
- If they choose to update the pay-scale, prompt the user to enter the pay hike percentage (e.g., 2% means increasing salary or wages by 2%).
- Increase the salary or wages of the specified employee by the specified percentage. Provide confirmation by displaying the old salary or wages and the new salary or wages.

e) FTS Employee Statistics:
- This option should list all FTS employees' names and IDs.
- Calculate and print the average salary per week for FTS employees.
- Calculate and print the standard deviation of the salary per week for FTS employees.

f) PTH Employee Statistics:
- This option should list all PTH employees' names and IDs.
- Calculate and print the average of hours worked per week and salary per week for PTH employees.
- Calculate and print the standard deviation of hours worked per week and salary per week for PTH employees.

g) Quit the system:
- This option should quit the infinite loop and exit the program.

By implementing the above steps, you should be able to create a program that handles adding, deleting, searching, and updating employee information, as well as providing statistics for FTS and PTH employees in the company.