-
定義管理員類,管理員有屬性(name,password),可以創建學校、創建課程、創建老師
-
定義老師類,老師有屬性(name,password),可以添加課程、給學生打分,但發現學生沒有購買課程時,不能打分,並給出提示
-
定義學生類,學生有屬性(name,password),可以獲取當前學校、選擇學校、選擇課程,但學校沒有該課程時,需要提示,並且不能選擇該課程
-
定義學校類,學校有屬性(name,addr),可以添加課程
-
定義課程類,課程有屬性(name),可以添加學生
# 人類 class Person(object): def __init__(self,name,password): self.name = name self.password = password # 管理員類,繼承Person class Admin(Person): school_list = [] def __init__(self,name,password): super().__init__(name,password) def create_school(self,school_name,school_addr): school = School(school_name,school_addr) Admin.school_list.append(school) print(f'{self.name} 創建了 {school.name}') return school def create_coures(self,course_name,course_prize): course = Course(course_name,course_prize) print(f'{self.name} 創建了 {course.name}課程') return course def create_teacher(self,teacher_name,teacher_passwd): teacher = Teacher(teacher_name,teacher_passwd) print(f'{self.name} 招聘 {teacher.name}為老師') return teacher # 教師類,繼承Person class Teacher(Person): def __init__(self,name,password): super().__init__(name,password) self.courses = list() def add_course(self,course): self.courses.append(course) print(f'{self.name} 增加了 {course.name}') def scoring(self, student,course, grade): print("開始打分") if course in student.courses: print(f'{self.name} 老師給 {student.name} 的{course.name}打了 {grade}分') else: print(f'{self.name}老師發現 學生{student.name} 沒有購買{course.name}課程') # 學生類,繼承Person class Student(Person): def __init__(self,name,password): super().__init__(name,password) self.courses = list() self.school = '' def get_school_list(self,admin): for i in admin.school_list: print(f'當前學校有{i.name}') def choice_school(self,school): self.school = school print(f'{self.name} 選擇了 {school.name}') def choice_course(self,course): if course.name in self.school.courses: self.courses.append(course) course.students.append(self.name) print(f'{self.name} 選擇了 {course.name} 課程') else: print(f'{self.school.name} 沒有 {course.name} 課程') # 學校類 class School(object): def __init__(self,name,addr): self.name = name self.addr = addr self.courses = list() def add_course(self,course): course_name = course.name self.courses.append(course_name) print(f'{self.name} 學校 增加了 {course_name}課程') # 課程類 class Course(object): def __init__(self,name,prize): self.name = name self.prize = prize self.students = list() def add_student(self,student): self.students.append(student) print(f'{student} 學了 {self.name}課程') # 管理員 admin = Admin('冉宏元','123') # 管理員創建了school bj_school = admin.create_school('北京oldboy教育公司','北京') sz_school = admin.create_school('深圳oldboy教育公司','深圳') sh_school = admin.create_school('上海oldboy教育公司','上海') wh_school = admin.create_school('武漢oldboy教育公司','武漢') # 管理員創建了課程 python = admin.create_coures('Python',21000) linux = admin.create_coures('Linux',18000) go = admin.create_coures('go',16000) # 學校增加課程 '''北京''' bj_school.add_course(python) bj_school.add_course(linux) bj_school.add_course(go) '''上海''' sh_school.add_course(go) sh_school.add_course(python) '''武漢''' wh_school.add_course(linux) '''深圳''' sz_school.add_course(python) sz_school.add_course(go) # 管理員招聘老師 nick = admin.create_teacher('nick','456') tank = admin.create_teacher('tank','789') # 學生 one = Student('張三','123') one.get_school_list(admin) one.choice_school(sh_school) one.choice_course(linux) one.choice_course(python) one.choice_course(go) two = Student('李四','123') two.get_school_list(admin) two.choice_school(wh_school) two.choice_course(linux) two.choice_course(python) two.choice_course(go) # 老師給學生打分 nick.scoring(one,linux,12) # 打印one學生的課程記錄 print("打印one學生的課程記錄") for i in one.courses: print(i.name) print("打印two學生的課程記錄") for i in two.courses: print(i.name) '''打印python課程學習的人''' for i in python.students: print(i) '''打印linux課程學習的人''' for i in linux.students: print(i) '''打印go課程學習的人''' for i in go.students: print(i)
