DATA STRUCTURES PYTHON
CLASS INHERITANCE
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