In: Computer Science
Submit:
Be sure to:
Dog Walker Program
Programming language: Python
requirement: please follow up the rules per demonstrated above
CODE:
main.py:
from include.Person import Person
from include.Dog import Dog
from include.Customer import Customer
from include.DogWalker import DogWalker
#main method
def main():
#list of dogs
dogs = []
#adding dogs
dogs.append(Dog("Brutus","German Shepherd",74.5,4))
dogs.append(Dog("Tommy","Pomerian",54.3,6))
#instantiating dogWalker and Customer objects
dogWalker = DogWalker(2.5,"Sam",24,dogs)
customer = Customer(43.5,"Bob",3,dogs)
#printing the details
print('Dog Walker:')
print(dogWalker)
print('\nCustomer:')
print(customer)
if __name__ == "__main__":
main()

___________________________________________________
Dogs.py
class Dog():
#constructor and member variables
def __init__(self,name,breed,weight,hours_walked):
self.name = name
self.breed = breed
self.weight = weight
self.hours_walked = hours_walked
#setters and getters
def setName(self,name):
self.name = name
def setBreed(self, breed):
self.breed = breed
def setWeight(self,weight):
self.weight = weight
def setHoursWalked(self,hours_walked):
self.hours_walked = hours_walked
def getName(self):
return self.name
def getBreed(self):
return self.breed
def getWeight(self):
return self.weight
def getHoursWalked(self):
return self.hours_walked
#str method
def __str__(self) -> str:
return "Name: {}\nBreed:{}\nWeight: {}lbs\nHours Walked: {} hours".format(self.name,
self.breed,
str(self.weight),
str(self.hours_walked))


_________________________________________________
Person.py
class Person():
#person constructor
def __init__(self,name,id_number,dogs : list):
self.name = name
self.id_number = id_number
self.dogs = dogs
#setters and getters
def getName(self):
return self.name
def getID(self):
return self.id_number
def getDogs(self):
return self.dogs
def setName(self,name):
self.name = name
def setID(self,id_number):
self.id_number = id_number
def setDogs(self,dogs:list):
self.dogs = dogs
#str method
def __str__(self) -> str:
#building the list of dogs string
dogString = ""
for i,x in enumerate(self.dogs):
dogString = dogString + str(x) +'\n'
return "Name: {}\nID: {}\nDogs List:\n{}".format(self.name,
str(self.id_number),
str(dogString))
_____________________________________________________
Customer.py
from include.Person import Person
class Customer(Person):
#customer class constructor
def __init__(self, amount_owed: float,name,id_number,dogs : list):
self.amount_owed = amount_owed
Person.__init__(self,name,id_number,dogs)
#setters and getters
def setAmountOwed(self, amount_owed):
self.amount_owed = amount_owed
def getAmountOwed(self):
return self.amount_owed
def __str__(self) -> str:
return super().__str__()+"\nAmount Owed: ${}".format(str(self.amount_owed))

__________________________________________________
DogWalker.py
from include.Person import Person
class DogWalker(Person):
#dogWalker class constructor
def __init__(self, hourly_rate: float,name,id_number,dogs : list):
self.hourly_rate = hourly_rate
Person.__init__(self,name,id_number,dogs)
#setters and getters
def setHourlyRate(self, hourly_rate):
self.hourly_rate = hourly_rate
def getHourlyRate(self):
return self.hourly_rate
#str method
def __str__(self) -> str:
return super().__str__()+"\nHourly Rate: ${}/hour".format(str(self.hourly_rate))
____________________________________________
OUTPUT:
___________________________________________________
Feel free to ask any questions in the comments section
Thank You!