这是一个简单的类练习题:
一、分析:
1.新增:1.新增学校:属性有学校编号,学校名称,学校地址
2.新增课程:属性有课程编号,课程名称,课程周期,课程价格
要求:通过学校创建课程
3.创建班级:班级属性:班级编号,班级名称
要求:需要关联课程,讲师
4.创建学员:属性:学员编号,学员名称,学员年龄
要求:关联学校,关联班级
5.创建讲师:属性:讲师编号,讲师名称
要求:关联学校
1.学员登录--》注册--》选班级--》交学费
2.讲师登录--》选择班级--》查看班级学员--》查看班级成绩
3.管理员登录--》创建讲师--》创建班级---》创建课程
二、简单画下模型:
|
三、再来简单画下流程图:
先分析学校这个流程图:通过流程我们看出,学校的角度进行创建学校、创建课程、创建老师、创建班级,所以在学校类里面实现这个,即用学校列表、课程列表、老师列表及班级列表来存储;
再分别定义课程、老师、班级三个类,然后将三个类传入学校类中,实现上述功能。
1 #!/usr/bin/python 2 # class Education(object): 3 # def __init__(self, name): 4 # self.name = name 5 # 6 # def show_info(self): 7 # pass 8 # 9 # def __str__(self): 10 # return self.name 11 12 class School(object): 13 school=[] #创建学校 14 course=[] #创建课程 15 teacher=[] #创建老师 16 teacher_class=[] #创建班级并关联课程和老师 17 18 def __init__(self,name,school_addr): 19 self.name=name 20 self.__school_addr=school_addr 21 def create_school(self): 22 x=[self.name,self.__school_addr] 23 self.school.append(x) 24 print('%s创建成功'%self.name) 25 26 27 def create_course(self,name,course_semester,course_price): 28 course=Course(name,course_semester,course_price).create_course() #将课程类的参数引用过来,或者将课程类的方法引用过来 29 self.course.append(course) 30 print('%s创建成功'%name ) 31 32 def create_teacher(self,name): 33 teacher=Teacher(name).create_teacher() 34 self.teacher.append(teacher) 35 36 def create_class(self,name): 37 #先执行选择课程 38 print(self.course) 39 choice_course=input('请选择课程') 40 print(self.teacher) 41 choice_teacher=input('请选择讲师') 42 compare_course=[] 43 for i in self.course: 44 compare_course.append(i[0]) 45 if choice_course in compare_course and choice_teacher in self.teacher: 46 #新增班级 47 teacher_class=[Teacher_class(name).teacher_class_list(),choice_course,choice_teacher] 48 self.teacher_class.append(teacher_class) 49 else: 50 print('选择不正确') 51 52 53 54 55 56 class Course(object): 57 def __init__(self,name,course_semester,course_price): 58 self.name=name 59 self.course_semester=course_semester 60 self.course_price=course_price 61 62 def create_course(self): 63 course_list=[self.name,self.course_semester,self.course_price] 64 # print(course_list) 65 return course_list 66 67 class Teacher(object): 68 def __init__(self,name): 69 self.name=name 70 def create_teacher(self): 71 teacher_list=self.name 72 return teacher_list 73 74 75 class Teacher_class(object): 76 def __init__(self,name): 77 self.name=name 78 def teacher_class_list(self): 79 teacher_class_list=[self.name] 80 return teacher_class_list 81 82 83 x=School('上海校区','上海') 84 x.create_course('数学','2',1534) 85 print(x.course) 86 x.create_teacher('test') 87 print(x.teacher) 88 x.create_class('1101班') 89 print(x.teacher_class)
再分析学生这个流程图:主要是选择学校,选择班级然后注册的流程。
选择的学校和班级从上面的代码继承过来,然后注册。
1 #!/usr/bin/python 2 import school_create as sc 3 4 class Student(object): 5 student=[] 6 def __init__(self,name): 7 self.name=name 8 def __chose_school(self): 9 print(sc.School.school) 10 self.choice_school=input('请选择学校').strip() 11 school_list=[] 12 for i in sc.School.school: 13 school_list.append(i[0]) 14 # print(school_list) 15 if self.choice_school in school_list: 16 pass 17 else : 18 print('没有这个学校') 19 exit() 20 21 22 23 def __choose_teacher_class(self): 24 print(sc.School.teacher_class) 25 self.choice_teacher_class=input('请选择班级').strip() 26 teacher_class_list=[] 27 for i in sc.School.teacher_class: 28 teacher_class_list.append(i[0]) 29 # print(teacher_class_list) 30 if self.choice_teacher_class in teacher_class_list: 31 pass 32 else: 33 print('没有这个班级') 34 exit() 35 36 def regester(self): 37 self.__chose_school() 38 self.__choose_teacher_class() 39 self.student.append([self.name,self.choice_school,self.choice_teacher_class]) 40 41 42 x=Student('test_student') 43 x.regester() 44 print(x.student)
人生没有白走的路,每一步都算数。