need help finishing up the code got some parts going and below the text result are the results that the prof wants and the # are what the prof is requesting Thanks again.
First step, create the classes as described. . Create a base class Employee that has the following attributes: o Employee's name (string) o Employee's address (string) o Vehicle data (Vehicle object). . The child classes FullTimeEmployee, HourlyEmployee and Consultant that inherit from Employee class have the following additional properties o FullTimeEmployee - salary (float). o HourlyEmployee - hours Worked (int) and hourlyRate (float). o Consultant - hours Worked (int) and ProjectType (valid values are 1, 2, and 3). The child class Management inherits from both FullTimeEmployee class and Consultant class. Management class has inherited three attributes (i.e. name, address, and vehicle object) indirectly from Employ class, one attribute (i.e. salary) from FullTimeEmployee class and two attributes (i.e. hours worked and project type) from Consultant class. . All these classes have the _init_method as well as the get and set methods. In addition, they have additional methods, i.e. compute_compensation() and compute_reimbursement() as described below. Function compute_compensation() returns weekly compensation and function compute_reimbursement() returns weekly reimbursement. . Compensation (weekly) for any employee type doesn't call for "outside" information. In other words, all information needed is available after initializing/creating an object. Compensation is to be computed as follows: o FullTimeEmployee: Compensation is salary minus taxes and taxes are calculated based on the tax rate in the table below. Please notice that this format calculates the annual compensation and what this function needs to return is the weekly compensation (assuming there are 52 weeks per year).Salary TaxRate $45, 000 or less 18% > $45,000 and $ 82,000 18% for the first 45000, 28% for the amount between 45000 and 82000, and 33% for the rest For example, someone whose salary is $123,000 will pay 18% on the first 45,000, 28% on the next (82,000 - 45,000) and 33% on the remaining (123,000 - 82,000) o HourlyEmployee: Compensation is hours Worked times hourlyRate for the first 40 hours. For hours in excess of 40 hours, the hourly rate is 1.8 times the regular hourly rate. The sum of the two is weekly compensation. For example, someone whose hourlyRate is $12.50 and who has worked 48 hours will earn 40 * $12.5 + 8 * $12.5 * 1.8. o Consultant: Compensation is HourlyRate times the hours worked (this is weekly compensation). HourlyRate for Consultants is computed based on the ProjectType as given in the table below: Project Type HourlyRate 1 $55.00 2 $70.00 3 $85.00 o Management: Total weekly compensation is the sum of the compensation from FullTimeEmployee role (i.e. from salary) and the compensation from Consultant role (i.e. from hours worked on a project). Reimbursement (weekly) for every employee type calls for "outside" information as input argument(s). In other words, the information is not provided when initializing/creating an object and there is no corresponding attribute. Reimbursement is to be computed as follows: o FullTimeEmployee: This method will take an argument which is the annual expense. If the annual expense is no more than $10,000, then the total reimbursement will be equal to the annual expense. If the annual expense is more than $10,000, then the totalreimbursement will be equal to $10,000 plus 50 percent of the amount of the annual expense that exceeds $10,000. Please notice that this format calculates the annual reimbursement and what this function needs to return is the weekly reimbursement {assuming there are 52 weeks per year). For example, someone whose annual expense is $12,000 will get $10,000 plus 50% on the remaining {$12,000 $10,000], totaling $11,000. $10, 000' or less 100% :3 510,1:1'0'0 100% for the rst $10,000, 50% for the rest o HourlyEmployee: This method will take an argument which is the weekly expense. If the weekly expense is no more than $100, then the total reimbursement will be equal to the weekly expense. If the weekly expense exceeds .5100, then the total reimbursement will be equal to $100. For example, someone whose weekly expense is $30 will get a weekly compensation of $30 while someone whose weekly expense is $120 will get a weekly compensation of $100. 0 Consultant: This method will take an argument which is the weekly expense. The weekly reimbursement is the product of weekly expense and the reimbursement rate (which is based on the project type as given in the table below). For example, three consultants all have a weekly exp-use of$100, then the one working on type 1 project will get $100, the one working on type 2 project will get $90, and the one working on type 3 will get 500. Reimbursement Rate D Management: This method will take two arguments. The rst argument is the annual expense which ts the FullTimeEmployee role. The second argument is the weekly expense which ts the Consultant role. Total reimbursement is the sum of the reimbursement ii'om FullTimeEmployee role [i.e. ii'om the annual expense) and the reimbursement ii'om Consultant role (i.e. from the weekly expense). In The 1Vehicle class is as described below: It has four instance variables - make (string), model (string), year of manufacture {int} and meage {int}. It should have a constructor {_init_} method which accepts values for all of the instance variables. You should use aggregation to include a Vehicle object to your Employee data. Second step, write a program to take user inputs to work on the Employee Database: {The information herejust provides some simple guidelines; see program template for more detailed and specic requirements.) The Employee Database application contains seven options: Option 1: Accept input for new Employees. If the user chooses option 1, the program should ask the type of employee rst and then guide the user to provide all required information. New employee will be added to a temporary \"obj ect container\" and written into a new database when program slats. Option 2: Display employee infomiation. If the user chooses option 2, the program should ask one question (introduced in the program template] and than display employee information. Option 3: List the name of all employees along with the compensation received by each. Option 4: Search for employees by name. If the user chooses option 4, the program should ask for a name and then display all employees that match the name search. Option 5: Display basic statistics (defined in the program template). Option ti: Calculate the reimbursement of one employee. If the user chooses option ti, the program should ask for a name and let the user to select one employee. Then certain information will be asked (depending on employee type] to calculate the weekly reimbursement. Option T: Exit the system after 1writing all information to anew databasetiile. The program should ask if the user really wants to seat the system before closing the program. If users select options Hi, this program should show the option mllu again after completing the required job. If users select option 7 and want to exit the system, this program will end then. Your program should also be able to handle exceptions in some settings. The detailed requirements are provided in the code template. Normally when users enter invalid values, the program should print an appropriate message and ask the user to re-enter a valid value