Question: Starter code: class Worker: #Constructor def _ _ init _ _ ( self ) : self.employee _ number = None self.office _ number = None

Starter code:
class Worker:
#Constructor
def __init__(self):
self.employee_number = None
self.office_number = None
self.name = None
self.birthdate = None
self.total_hours_worked =0
self.total_overtime_hours =0
self.overtime_salary = None
self.hourly_salary = None
#Gets employee number
def get_employee_number(self):
return self.employee_number
#Sets employee number
def set_employee_number(self, x):
self.employee_number = x
#Gets office number
def get_office_number(self):
return self.office_number
#Sets office number
def set_office_number(self, x):
if x <100 or x >500:
return False
else:
self.office_number = x
return True
#Gets name
def get_name(self):
return self.name
#Sets name
def set_name(self, x):
self.name = x
#Gets birthdate
def get_birthdate(self):
return self.birthdate
#Sets birthdate
def set_birthdate(self, m, d, y):
if m <1 or m >12 or d <1 or d >31:
return False
else:
self.birthdate =(m, d, y)
return True
#Get hours worked
def get_hours_worked(self):
return self.total_hours_worked
#Add to hours worked total
def add_hours(self, x):
if x >9:
self.total_hours_worked +=9
self.total_overtime_hours += x -9
else:
self.total_hours_worked += x
#Gets hours worked overtime
def get_hours_overtime(self):
return self.total_overtime_hours
#Sets hourly salary
def set_hourly_salary(self, x):
if x <0:
return False
else:
self.hourly_salary = x
return True
#Sets overtime hourly salary
def set_overtime_salary(self, x):
if x <0:
return False
else:
self.overtime_hourly_salary = x
return True
#Gets hourly salary
def get_hourly_salary(self):
return self.hourly_salary
#Gets overtime hourly salary
def get_overtime_salary(self):
return self.overtime_hourly_salary
#Gets pay
def get_pay(self):
return (self.total_hours_worked * self.hourly_salary)+(self.total_overtime_hours * self.overtime_hourly_salary)
Assignment:
For this lab you will modify your Lab 7 to make several improvements to the getter/setter
methods. Instead of having them return True/False, modify each one to throw an exception if
invalid data is passed.
Modify these methods in the following way:
add_hours(x)
o If the number of hours being added is less than 0, throw an exception. Do not
change how the hours are distributed if the number of hours added is greater
than 0.
set_employee_number(x)
o The employee number must be an integer. If the given input is not an integer,
throw an exception
set_office_number(x)
o If the office number given is less than 100 or greater than 500, throw an
exception.
set_name(x)
o If the given name is empty, throw an exception
o Any of the following characters should be removed from the name:
_,.,-(Underscore, period, and dash)
set_birthdate(m, d, y)
o If the given value for the month is less than 1 or greater than 12, throw an
exception
o If the given value for the day is less than 1 or greater than 31, throw a different
exception
You do not need to round or truncate your output. Name your class Worker and save your
program as Lab10.py

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!