二十二次作业

作业

一、题目

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

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

     班级名字
     班级所在校区

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

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

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

#功能部分:
     校区创建完毕后,可以为每个校区创建班级
     班级创建完毕后,可以为每个班级创建课程
     学生创建完毕后,学生可以选择班级
     老师创建完毕后,可以为学生打分

二、代码实现

#定义学生类:学生的姓名,年龄,学号,性别,所在学校
class Student:
    def __init__(self,school,name,age,id,gender):
        self.school=school
        self.name=name
        self.age=age
        self.id=id
        self.gender=gender

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

#定义学校类:学校的名字,地址
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,money):
        self.name=name
        self.period=period
        self.money=money

#定义教师类:教师的名字,年龄,薪资,等级
class Teacher:
    def __init__(self,name,age,salary,level):
        self.name=name
        self.age=age
        self.salary=salary
        self.level=level

    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 add(self,name,period,money):
        course_obj=Course(name,period,money)
        return course_obj

三、功能测试

#功能执行:
# 学校
school_1=School("老男孩上海校区",'虹桥校区')
classes_obj=school_1.creat_classes("上海py14期","老男孩上海校区")
print(classes_obj.name,classes_obj.school)   
# 上海py14期 老男孩上海校区

# 科目
course_obj=classes_obj.add("python",6,19800)
print(course_obj.name,course_obj.period,course_obj.money)
# python 6 20000

# 学生
stu_1=Student("老男孩上海校区","lwx",18,520,"male")
stu_1.select_classes("py交易")
print(stu_1.name)
# lwx

# 教师
tea_1=Teacher("egon",78,'5毛,能买得起一包辣条,不错了','后勤部部长')
print(tea_1.salary)
# 100
# 5毛,能买得起一包辣条,不错了

# 修改分数
tea_1.give_grade(stu_1,100)
print(stu_1.grade)
posted @ 2020-04-07 20:25  祥SHAO  阅读(101)  评论(0编辑  收藏  举报