python 每日作业

选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
# 1、学校数据与功能整合
# 2、课程数据与功能进行整合
# 3、学生数据与功能进行整合
# 4、讲师数据与功能进行整合
# 5、班级数据与功能进行整合
ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合

数据部分:
校区的名字:如"老男孩上海校区"
校区的地址:如"上海虹桥"

班级名字
班级所在校区

学生的学校
学生的姓名
学生的年龄
学号
学生的性别

课程名字
课程周期
课程价格

老师的名字
老师的年龄
老师的薪资
老师的等级


功能部分:
校区创建完毕后,可以为每个校区创建班级

班级创建完毕后,可以为每个班级创建课程

学生创建完毕后,学生可以选择班级

老师创建完毕后,可以为学生打分

 

 

class School:
    def __init__(self,name,adr):
        self.name=name
        self.adr=adr

    def creat_classes(self,class_name,sch):
        classes_obj=Classes(class_name,sch)
        return classes_obj



class Course:
    def __init__(self,name,period,price):
        self.name=name
        self.period=period
        self.price=price



class Student:
    def __init__(self,school,name,age,id,sex):
        self.school=school
        self.name=name
        self.age=age
        self.id=id
        self.sex=sex

    def select_classes(self,name):
        self.class_name=name

class Teacher:
    def __init__(self,name,age,salary,level):
        self.name=name
        self.age=age
        self.salary=salary
        self.level=level
        self.classes={}

    def give_grade(self,student_obj,gra):
        student_obj.grade=gra


class Classes:
    def __init__(self,name,school):
        self.name=name
        self.school=school

    def create_course(self,name,period,price):
        course_obj=Course(name,period,price)
        return course_obj


sch1=School("老男孩上海校区","上海虹桥")
classes_obj=sch1.creat_classes("python14期全栈","老男孩上海校区")
print(classes_obj.name,classes_obj.school)    #python14期全栈 老男孩上海校区
course_obj=classes_obj.create_course("python",6,20000)
print(course_obj.name,course_obj.period,course_obj.price)
stu1=Student("老男孩上海校区","lxx",18,1,"man")
stu1.select_classes("python")
print(stu1.class_name)
tea1=Teacher("egon",18,13000,29)
tea1.give_grade(stu1,100)
print(stu1.grade)

 

posted @ 2020-04-07 19:50  耗油炒白菜  阅读(155)  评论(0编辑  收藏  举报