"""
Author: Fuahd Ibrahim
Date written: 10/04/2023
Assignment: Module#7 exercise#2
Short Desc: The code manages employee data, allows user input to create an employee
instance, and displays the stored employee information using accessor methods.
"""
# Define the Employee class
class Employee:
def __init__(self, name, employee_number):
self.name = name
self.employee_number = employee_number
# Define the ProductionWorker class as a subclass of Employee
class ProductionWorker(Employee):
def __init__(self, name, employee_number, hourly_pay_rate, shift_number):
# Call the constructor of the superclass (Employee)
super().__init__(name, employee_number)
self.hourly_pay_rate = hourly_pay_rate
self.shift_number = shift_number
# Accessor methods
def get_hourly_pay_rate(self):
return self.hourly_pay_rate
def get_shift_number(self):
return self.shift_number
# Mutator methods
def set_hourly_pay_rate(self, hourly_pay_rate):
self.hourly_pay_rate = hourly_pay_rate
def set_shift_number(self, shift_number):
self.shift_number = shift_number
# Create an instance of the ProductionWorker class and input data
name = input("Enter employee name: ")
employee_number = input("Enter employee number: ")
hourly_pay_rate = float(input("Enter hourly pay rate: "))
shift_number = int(input("Enter shift number (1 for day, 2 for night): "))
worker1 = ProductionWorker(name, employee_number, hourly_pay_rate, shift_number)
# Display employee information using accessor methods
print("\nEmployee Information:")
print("Name:", worker1.name)
print("Employee Number:", worker1.employee_number)
print("Hourly Pay Rate:", worker1.get_hourly_pay_rate())
print("Shift Number:", worker1.get_shift_number())