DATA STRUCTURES PYTHON
COSC 2436 Python Programming Assignment 1
1
Payroll Classes – Inheritance and Polymorphism Specification:
ABC Corp. has a staff of employees and needs to calculate pay for all of its employees. Below is a class hierarchy of the employees Class Name: Employee – super class Members in the Employee class: *All data fields are private members
Data fields Data type Purpose
name string Employee’s name department string Employee’s department
Constructor Purpose
__init__ Parameter list: (name='', department='') Assign parameter value to data fields
Method Name Return type Parameter list
get_name string Return data field name
set_name None Parameter list: (self, name) get_department string Return data field department
set_department None Parameter list: (self, department)
pay float Return 0.0
__str__ string Return the description of the Employee object
Class Name: CommissionPaid – subclass of Employee Members in the Executive class: *All data fields are private members
Data fields Data type Purpose
base_rate float Base salary for the week sales float Weekly sales Constructor Purpose
__init__ call super class’s __init__ Parameter list: (self, base_rate,sales) Assign parameter value to data fields
Method Name Return type Parameter list
get_base_rate float Return data field base_rate
Employee
CommissionPaid HourlyPaid SalaryPaid
COSC 2436 Python Programming Assignment 1
2
set_base_rate None Parameter list: (self, base_rate)
get_sales float Return data field sales set_sales None Parameter list: (self, sales)
pay
float Return base pay + commission for that week Commission calculation: If sales amount is greater than 30,000 commission is 3% of the sales amount else if sales amount is between 5,000 to 30,000 commission is 1% of the sales amount else (the sales amount is less than 5,000) there is no commission
__str__ string Return the description of the CommissionPaid object Class Name: HourlyPaid – subclass of Employee Members in the HourlyPaid class:
Data fields Data type Purpose hourly_rate float Hourly rate
hours float Hours worked for the week
Constructor Purpose __init__ call super class’s __init__
Parameter list: (self, hourly_rate, hours) Assign parameter value to data fields
Method Name Return type Parameter list
get_hourly_rate float Return data field hourly_rate
set_hourly_rate None Parameter list: (self, hourly_rate) get_hours float Return data field hours
set_hours None Parameter list: (self, hours)
pay float Calculate weekly pay including overtime pay Overtime pay calculation: If hours worked are over 40, the overtime pay will be calculated using hourly rate * overtime hours * 1.5
__str__ string Return description of the HourlyPaid object
Class Name: SalaryPaid– subclass of Employee Members in the SalaryPaid class:
Data fields Data type Purpose salary float Weekly salary Constructor Purpose
__init__ call super class’s __init__ Parameter list: (self, salary)
COSC 2436 Python Programming Assignment 1
3
Assign parameter value to data field
Method Name Return type Parameter list
get_salary float Return data field salary
set_salary None Parameter list: (self, salary) pay float return weekly salary
__str__ string Return description of the SalaryPaid object Functions in the main program:
Function Name Return Type Parameter List total_pay float Parameter: a list of employee objects
Return total weekly pay for all employees print_employee_list None Parameter: a list of employee objects
Display the employee information. (See Program Output)
Assignment Instructions:
1. Create a python module to store all classes and name it employees.py 2. Create a python file which will contain the main function to test your classes and name it
assignment1_yourFirstName_yourLastName.py 3. To test your code, create a list of objects containing 3 instances. Summarize your data to display
each employee information, and total payroll for the week. Here is the test data. CommissionPaid object: Justin White, Marketing department, base pay: $500, sales:$50,000 HourlyPaid object: John Smith, Accounting department, hourly rate: $20.5, hours: 55.0 SalaryPaid object: Mary Smith, Finance department, salary: $2,500
4. You can create extra function to enhance your program 5. Name your variables clearly 6. Add comments to document your project and code 7. Add doc string to document your module/functions 8. Submit two python files and a screen shot of your output in Canvas for grading
Program Output: Employee Type Employee Name Department Weekly Pay
------------- ------------- ---------- ----------
Hourly Paid John Smith Accounting $ 1281.25
Salary Paid Mary Smith Finance $ 2500.00
Commission Paid Justin White Marketing $ 1400.00
Total Weekly Pay:$ 5181.25