一、今日作业:
选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
1.学校数据与功能整合
2.课程数据与功能进行整合
3.学生数据与功能进行整合
4.讲师数据与功能进行整合
5.班级数据与功能进行整合
ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合
数据部分:
校区的名字:如"老男孩上海校区"
校区的地址:如"上海虹桥"
班级名字
班级所在校区
学生的学校
学生的姓名
学生的年龄
学号
学生的性别
课程名字
课程周期
课程价格
老师的名字
老师的年龄
老师的薪资
老师的等级
功能部分:
校区创建完毕后,可以为每个校区创建班级
班级创建完毕后,可以为每个班级创建课程
学生创建完毕后,学生可以选择班级
老师创建完毕后,可以为学生打分
class School:
def __init__(self,name,address):
self.name = name
self.address = address
def addclass(self,name,schoolname):
classname = SchoolClass(name,schoolname)
return classname
class SchoolClass:
def __init__(self,name,schoolname):
self.name = name
self.address = schoolname
def addcourse(self,name,cycle,price):
course = Course(name,cycle,price)
return course
class Course:
def __init__(self, name, cycle, price):
self.name = name
self.cycle = cycle
self.price = price
class Student:
gender = 0
def __init__(self,school,name,age,id,sex):
self.school = school
self.name = name
self.age = age
self.id = id
self.sex = sex
def choice(self,classname):
self.classname = classname
class Teacher:
def __init__(self,name,age,salary,leve):
self.name = name
self.age = age
self.salary = salary
self.leve = leve
def grade(self,student_obj,grade):
student_obj.gender = grade
school1 = School('老男孩上海校区','上海虹桥')
print(school1.__dict__)
classname1 = school1.addclass('14班', '老男孩上海校区')
print(classname1.__dict__)
course1 = classname1.addcourse('python','5个月','1000')
print(course1.__dict__)
student1 = Student('老男孩上海校区','小黑',22,2019050,'男')
student1.choice('python')
print(student1.__dict__)
teacher1 = Teacher('小白',33,10000,4)
teacher1.grade(student1,90)
print(teacher1.__dict__)
print(student1.__dict__)