0% found this document useful (0 votes)
1 views10 pages

Inheritance and Polymorphism Exercise - Update Using Set Function

Uploaded by

Ntsiuoa Tatolo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views10 pages

Inheritance and Polymorphism Exercise - Update Using Set Function

Uploaded by

Ntsiuoa Tatolo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Inheritence and Polypmorphism

 Update using Set Function


 Using if else if instead of while loop

Code:

Class Address:

Def __init__(self, country, city, zipCode):

Self.country = country

Self.city = city

Self.zipCode = zipCode

Def get_country(self):

Return self.country

Def set_country(self, country):

Self.country = country

Def get_city(self):

Return self.city

Def set_city(self, city):

Self.city = city

Def get_zipCode(self):

Return self.zipCode

Def set_zipCode(self, zipCode):


Self.zipCode = zipCode

Def __str__(self):

Return “Country: {} , City: {} , Zip Code: {}”.format(self.country,


self.city, self.zipCode)

# Employee Class HAS-A address

Class Employee:

Def __init__(self, emp_id, name, department_Id, basic_salary, address):

Self.emp_id = emp_id

Self.name = name

Self.department_Id = department_Id

Self.basic_salary = basic_salary

Self.address = address

Def get_emp_id(self):

Return self.emp_id

Def set_emp_id(self, emp_id):

Self.emp_id = emp_id

Def get_name(self):

Return self.name

Def set_name(self, name):

Self.name = name
Def get_department_Id(self):

Return self.department_Id

Def set_department_Id(self, department_Id):

Self.department_Id = department_Id

Def get_basic_salary(self):

Return self.basic_salary

Def set_basic_salary(self, basic_salary):

If basic_salary > 0:

Self.basic_salary = basic_salary

Def get_address(self):

Return self.address

Def set_address(self, address):

Self.address = address

Def __str__(self):

# Ensure to call the __str__ method of the Address class here

Return “Employee ID: {} , Name: {} , Department ID: {}, Basic Salary:


{}, Address: {}”.format(

Self.emp_id, self.name, self.department_Id, self.basic_salary,


str(self.address))

# Manager Class Inherits from Employee


Class Manager(Employee):

Def __init__(self, emp_id, name, department_Id, basic_salary, address,


noofsub, performance_bonus):

Super().__init__(emp_id, name, department_Id, basic_salary, address)

Self.noofsub = noofsub

Self.performance_bonus = performance_bonus

Def get_noofsub(self):

Return self.noofsub

Def set_noofsub(self, noofsub):

If noofsub > 0:

Self.noofsub = noofsub

Def get_performance_bonus(self):

Return self.performance_bonus

Def set_performance_bonus(self, performance_bonus):

If performance_bonus > 0:

Self.performance_bonus = performance_bonus

Def net(self):

Return “Net Salary: {}”.format(self.basic_salary +


self.performance_bonus * 0.20)

Def __str__(self):

Return “{}, Number of Subordinates: {} , Performance Bonus:


{}”.format(super().__str__(), self.noofsub, self.performance_bonus)
# HourlyWorker Class Inherits from Employee

Class HourlyWorker(Employee):

Def __init__(self, emp_id, name, department_Id, basic_salary, address,


noofhours, hourlyrate):

Super().__init__(emp_id, name, department_Id, basic_salary, address)

Self.noofhours = noofhours

Self.hourlyrate = hourlyrate

Def get_noofhours(self):

Return self.noofhours

Def set_noofhours(self, noofhours):

Self.noofhours = noofhours

Def get_hourlyrate(self):

Return self.hourlyrate

Def set_hourlyrate(self, hourlyrate):

If hourlyrate > 0:

Self.hourlyrate = hourlyrate

Def net_salary(self):

Return “Salary Calculation: {}”.format(self.basic_salary +


self.hourlyrate * self.noofhours)

Def __str__(self):
Return “{}, Number of Hours: {} , Hourly Rate:
{}”.format(super().__str__(), self.noofhours, self.hourlyrate)

# PieceWorker Class Inherits from Employee

Class PieceWorker(Employee):

Def __init__(self, emp_id, name, department_Id, basic_salary, address,


noof_parts, rateper_part):

Super().__init__(emp_id, name, department_Id, basic_salary, address)

Self.noof_parts = noof_parts

Self.rateper_part = rateper_part

Def get_noof_parts(self):

Return self.noof_parts

Def set_noof_parts(self, noof_parts):

Self.noof_parts = noof_parts

Def get_rateper_part(self):

Return self.rateper_part

Def set_rateper_part(self, rateper_part):

If rateper_part > 0:

Self.rateper_part = rateper_part

Def net_pay(self):

Return “Net Salary of Piece Worker: {}”.format(self.basic_salary +


self.rateper_part * self.noof_parts)
Def __str__(self):

Return “{}, Number of Parts: {} , Rate per Part:


{}”.format(super().__str__(), self.noof_parts, self.rateper_part)

#Main Input Menu

Sentinel = input(“Enter Yes to continue or No to exit: “)

If sentinel == “Yes”:

Print(“To Choose Manager, Enter 1 \nTo Choose Hourly Worker, Enter 2 \nTo
Choose Piece Worker, Enter 3”)

Choice = int(input(“Enter your Choice: “))

If choice == 1: # User Input Manager

Emp_id = int(input(“Enter Employee ID: “))

Name = input(“Enter Employee Name: “)

Department_Id = int(input(“Enter Department ID: “))

Basic_salary = int(input(“Enter Employee Basic Salary: “))

Country = input(“Enter Employee Country: “)

City = input(“Enter Employee City: “)

zipCode = input(“Enter Employee Zip Code: “)

noofsub = int(input(“Enter number of Employee Subordinates: “))

performance_bonus = int(input(“Enter Employee Performance Bonus:


“))

# Create Manager Object

Manager = Manager(0, “”, 0, 0, Address(“”, “”, “”), 0, 0)

Manager.set_emp_id(emp_id)
Manager.set_name(name)

Manager.set_department_Id(department_Id)

Manager.set_basic_salary(basic_salary)

Manager.set_address(Address(country, city, zipCode))

Manager.set_noofsub(noofsub)

Manager.set_performance_bonus(performance_bonus)

Print(“Manager Details: {}”.format(manager))

# Display the net salary for Manager

Print(manager.net())

Elif choice == 2: # User Input Hourly Worker

Emp_id = int(input(“Enter Employee ID: “))

Name = input(“Enter Employee Name: “)

Department_Id = int(input(“Enter Department ID: “))

Basic_salary = int(input(“Enter Employee Basic Salary: “))

Country = input(“Enter Employee Country: “)

City = input(“Enter Employee City: “)

zipCode = input(“Enter Employee Zip Code: “)

noofhours = int(input(“Enter the number of hours worked: “))

hourlyrate = float(input(“Enter your hourly rate: “))

# Create Hourly Worker Object

Worker = HourlyWorker(0, “”, 0, 0, Address(“”, “”, “”), 0, 0)

Worker.set_emp_id(emp_id)

Worker.set_name(name)

Worker.set_department_Id(department_Id)
Worker.set_basic_salary(basic_salary)

Worker.set_address(Address(country, city, zipCode))

Worker.set_noofhours(noofhours)

Worker.set_hourlyrate(hourlyrate)

Print(“Worker Details: {}”.format(worker))

# Display the net salary for Hourly Worker

Print(worker.net_salary())

Elif choice == 3: # User Input Piece Worker

Emp_id = int(input(“Enter Employee ID: “))

Name = input(“Enter Employee Name: “)

Department_Id = int(input(“Enter Department ID: “))

Basic_salary = int(input(“Enter Employee Basic Salary: “))

Country = input(“Enter Employee Country: “)

City = input(“Enter Employee City: “)

zipCode = input(“Enter Employee Zip Code: “)

noof_parts = int(input(“Enter the number of parts made: “))

rateper_part = float(input(“Enter the rate per part: “))

# Create Piece Worker Object

Pieceworker = PieceWorker(0, “”, 0, 0, Address(“”, “”, “”), 0, 0)

Pieceworker.set_emp_id(emp_id)

Pieceworker.set_name(name)

Pieceworker.set_department_Id(department_Id)

Pieceworker.set_basic_salary(basic_salary)

Pieceworker.set_address(Address(country, city, zipCode))


Pieceworker.set_noof_parts(noof_parts)

Pieceworker.set_rateper_part(rateper_part)

Print(“Piece Worker Details: {}”.format(pieceworker))

# Display the net salary for Piece Worker

Print(pieceworker.net_pay())

Else:

Print(“Invalid Choice! Please choose a valid option (1, 2, or 3).”)

You might also like