首页 > 技术文章 > python基础学习-day27==课后作业练习(面向对象思想整合)

dingbei 2020-04-07 22:58 原文

一、今日作业:
选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
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__)

 

推荐阅读