作业面向对象1

选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
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个月','10块')
print(course1.__dict__)

student1 = Student('老男孩上海校区','张三',18,2017050,'男')
student1.choice('python')
print(student1.__dict__)

teacher1 = Teacher('李四',18,10000,3)
teacher1.grade(student1,90)
print(teacher1.__dict__)

print(student1.__dict__)
posted @ 2020-04-07 21:53  小子,你摊上事了  阅读(79)  评论(0)    收藏  举报