class University: def __init__(self,name): self.name = name self.courses = [] self.students = [] def __str__(self): return self.name def addCourse(self, course): self.courses.append(course) def addStudent(self,student): self.students.append(student) def registerStudentForCourse(self,student,course): student.addCourse(course) course.addStudent(student) def printCourses(self): for c in self.courses: print(c) def printStudents(self): for s in self.students: print(s) class Course: # A couse can be created with a number, name, description, prerequisit, and grading option def __init__(self, number, name, desc): self.number = number self.name = name self.desc = desc # Every course starts off with an empty list of students self.students = [] # This tells python to print the name and description for the Course object def __str__(self): return self.name + " - " + self.desc # This methods takes a Student object and adds it to the list of students def addStudent(self, student): self.students.append(student) def printStudents(self): for s in self.students: print(s,) class Student: def __init__(self, name, id, schedule=[]): self.name = name self.id = id self.schedule = schedule def addCourse(self, course): self.schedule.append(course) def __str__(self): return self.name cal = University("University of California Berkeley") i90 = Course(90,"Info 90", "Python Programming") i202 = Course(202,"Info 202", "Info Org and Retreival") ariel = Student("Ariel","03343") gabriel = Student("Gabriel","44543") irene = Student("Irene", "544348") cal.addCourse(i90) cal.addCourse(i202) cal.addStudent(ariel) cal.addStudent(gabriel) cal.addStudent(irene) cal.registerStudentForCourse(ariel,i90) cal.registerStudentForCourse(gabriel,i90) cal.registerStudentForCourse(ariel,i202) cal.registerStudentForCourse(gabriel,i202) cal.registerStudentForCourse(irene,i202) print("Courses at " + str(cal)) cal.printCourses() print(); print("Students in " + str(i90)) i90.printStudents()