2020Python作业——类与对象

 

@2020.4.7

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

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

     班级名字
     班级所在校区

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

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

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


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

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

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

     老师创建完毕后,可以为学生打分
练习题--View Code

数据和功能分类

# 1、学校数据与功能
#      校区的名字:如"老男孩上海校区"
#      校区的地址:如"上海虹桥"

# 校区创建完毕后,可以为每个校区创建班级


# 2、课程数据与功能
#       课程名字
#       课程周期
#       课程价格

# 3、学生数据与功能
#      学生的学校
#      学生的姓名
#      学生的年龄
#      学号
#      学生的性别

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

# 4、讲师数据与功能
#      老师的名字
#      老师的年龄
#      老师的薪资
#      老师的等级

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

# 5、班级数据与功能
#   班级名字
#   班级所在校区

#   班级创建完毕后,可以为每个班级创建课程
数据和功能--View Code

 代码

# 学校类
class School:
    def __init__(self,s_name,s_area):
        self.school_name = s_name
        self.school_area = s_area

    #校区创建完毕后,可以为每个校区创建班级
    def built_class(self,name,campus):
        class_obj = SchoolClass(name,campus)
        return class_obj

# 班级类
class SchoolClass:
    def __init__(self,c_name,c_campus):
        self.class_name = c_name
        self.class_campus = c_campus

    #班级创建完毕后,可以为每个班级创建课程
    def built_course(self,name,circle,price):
        course_obj = Course(name,circle,price)
        return course_obj

# 课程类
class Course:
    def __init__(self,cou_name,circle,price):
        self.course_name = cou_name
        self.circle = circle
        self.price = price

# 学生类
class Student:
    def __init__(self,s_school,stu_name,age,sno,gender):
        self.student_school = s_school
        self.student_name = stu_name
        self.student_age = age
        self.student_sno = sno
        self.student_gender = gender

    #学生创建完毕后,学生可以选择班级
    def choose_class(self,class_name):
        self.class_name = class_name

# 老师类
class Teacher:
    def __init__(self,t_name,t_age,salary,level):
        self.teacher_name = t_name
        self.teacher_age = t_age
        self.teacher_salary = salary
        self.teacher_level = level

        #老师创建完毕后,可以为学生打分
    def student_grade(self,student_obj,grade):
        student_obj.grade = grade


school_1 = School("老男孩上海校区","上海虹桥")
print(school_1.school_area)
print(school_1.school_name)

class_1 = school_1.built_class('14期','老男孩上海校区')
print(class_1.class_name)

course_1 = class_1.built_course('py全栈开发','6m','2w')
print(course_1.circle)

student_1 = Student('老男孩上海校区','hz','18','50','male')
print(student_1.student_name)

student_1.choose_class('14期')
print(student_1.class_name)

teacher_1 = Teacher('egon','100','3w','nb')
print(teacher_1.teacheer_age)

teacher_1.student_grade(student_1,100)
print(student_1.grade)

 

posted @ 2020-04-07 22:14  bigorangecc  阅读(542)  评论(0编辑  收藏  举报