Source Code
Source Code
import counter
import dog
import bug
import recipe
import bankaccount
import collegecourse
def main():
done = False
print("Main Function")
print("E1 - Example 1")
choice = input("Choice: ").upper()
match choice:
case "E1":
example1()
case "E2":
example2()
case "E3":
example3()
case "E4":
example4()
case "E5":
example5()
case "E6":
example6()
case "E7":
example7()
case "E8":
example8()
case "Q":
print("Quitting!")
done = True
case _:
print("Invalid, try again!")
# define Example 1 Function
def example1():
print("Example 1")
# create counter object
tally = counter.Counter()
# call the click method on the object
tally.click()
tally.click()
# print tally
print(tally)
# call the reset method on the object
tally.reset()
# print tally
print(tally)
# define Example 2 Function
def example2():
print("Example 2")
c1 = counter.Counter()
c2 = counter.Counter()
for i in range(3):
c1.click()
for i in range(5):
c2.click()
print(c1)
print(c2)
# define Example 3 Function
def example3():
print("Example 3")
# create dog object
rocky = dog.Dog("Rocky", "Bulldog", 5)
rocky.bark()
# print the object
print(rocky)
# define Example 4 Function
def example4():
# create dog object
spunky = dog.Dog("Spunky", "Poodle", 10)
# print spunky's attributes
print("Name: " + spunky.name)
print("Breed: " + spunky.breed)
print("Age: " + str(spunky.age))
# example5 function definition
def example5():
print("Example 5")
# create first bug
fly = bug.Bug("Ms. Fly", 6, True)
fly.make_sound("buzz")
# create second bug
mosquito = bug.Bug("Mr. Mosquito", 6, True)
mosquito.make_sound("bite")
# create a third bug
ant = bug.Bug("The Ant", 6, False)
ant.make_sound("march")
# add the bugs to a list
list = [fly, mosquito, ant]
for bugs in list:
print(bugs)
# example6 function definition
def example6():
pancakes = recipe.Recipe("Pancakes")
pancakes.add_ingredient("Flour")
pancakes.add_ingredient("Eggs")
pancakes.add_ingredient("Milk")
pancakes.add_ingredient("Sugar")
print(pancakes)
fried_rice = recipe.Recipe("Fried Rice")
fried_rice.add_ingredient("Rice")
fried_rice.add_ingredient("Eggs")
fried_rice.add_ingredient("Chicken")
fried_rice.add_ingredient("Onions")
fried_rice.add_ingredient("Scallions")
print(fried_rice)
# example7 function definition
def example7():
print("Example 7")
sam = bankaccount.BankAccount("Sam", 1000)
print(sam.get_balance())
# Accessing the private attribute via name mangling
print(sam._BankAccount__balance)
# Modifying the private attribute via name mangling
sam._BankAccount__balance = 2000
print(sam.get_balance())
print(sam)
# example8 function definition
def example8():
print("Example 8")
# Example of usage:
semester = input("Semester: ")
course_number = input("Course Number: ")
course_name = input("Course Name: ")
course_instructor = input("Instructor: ")
course_daytime = input("Course Day/Time: ")
cps3320 = collegecourse.CollegeCourse(semester, course_number, course_name, course_instructor, course_daytime)
for x in range(3):
assignment = input("Name of Assignment: ")
grade = input("Grade: ")
cps3320.add_grade(assignment, grade)
print(cps3320)
main()counter.py
# header
class Counter:
# constructor
def __init__(self):
# initialize attribute
self.count = 0
# methods
def click(self):
self.count = self.count + 1
def reset(self):
self.count = 0
# __str__ method
def __str__(self):
return "Current count: " + str(self.count)dog.py
# header
class Dog:
# constructor
def __init__(self, name, breed, age):
self.name = name
self.breed = breed
self.age = age
# bark method
def bark(self):
print(self.name + " likes to bark.")
# __str__ method
def __str__(self):
output = self.name + " is a " + self.breed
output += " and is " + str(self.age) + " years old."
return outputbug.py
# header
class Bug:
# constructor
def __init__(self, name, legs, can_fly):
self.name = name
self.legs = legs
self.can_fly = can_fly
# move method
def move(self):
if self.can_fly:
print(self.name + " flies away!")
else:
print(self.name + " crawls quickly!")
# make_sound method
def make_sound(self, sound):
print(self.name + " likes to " + sound + ".")
# __str__ method
def __str__(self):
if self.can_fly:
ability = "can fly"
else:
ability = "cannot fly"
output = self.name + " has " + str(self.legs) + " legs"
output += " and " + ability + "."
return output
recipe.py
# header
class Recipe:
# constructor
def __init__(self, name):
self.name = name
self.ingredients = []
# add_ingredient method
def add_ingredient(self, item):
self.ingredients.append(item)
# __str__ method
def __str__(self):
output = self.name + " Recipe\n"
output += "Ingredients:\n"
for i in self.ingredients:
output += "* " + i + "\n"
return output
bankaccount.py
# header
class BankAccount:
# constructor
def __init__(self, name, initial_balance):
self.name = name
self.__balance = initial_balance
# methods
def deposit(self, amount):
self.__balance += amount
def get_balance(self):
return self.__balance
def __str__(self):
output = "Name: " + self.name + "\n"
output += "Balance: $" + str(self.get_balance())
return output
def __repr__(self):
return f"name='{self.name}', initial_balance={self.get_balance()}"collegecourse.py
class CollegeCourse:
def __init__(self, semester, course_number, course_name, instructor, time):
self.semester = semester
self.course_number = course_number
self.course_name = course_name
self.instructor = instructor
self.time = time
self.grades = {} # Dictionary to store grades with assignment names as keys
def add_grade(self, assignment_name, grade):
self.grades[assignment_name] = grade
def __str__(self):
"""Returns a user-friendly string representation of the CollegeClass object."""
grade_list = "\n".join([f" {assignment}: {grade}" for assignment, grade in self.grades.items()])
return (f"Semester: {self.semester}\n"
f"Course Number: {self.course_number}\n"
f"Course Name: {self.course_name}\n"
f"Instructor: {self.instructor}\n"
f"Time: {self.time}\n"
f"Grades:\n{grade_list}")
def __repr__(self):
"""Returns a formal string representation of the CollegeClass object, useful for debugging."""
return (f"CollegeCourse(semester='{self.semester}', course_number='{self.course_number}', "
f"course_name='{self.course_name}', instructor='{self.instructor}', time='{self.time}', "
f"grades={self.grades})")Last updated