day26练习

类与对象测验 1、定义学校类,实例化出:北京校区、上海校区两个对象 校区独有的特征有: 校区名=“xxx” 校区地址={'city':"所在市",'district':'所在的区'} 多们课程名=['xxx','yyy','zzz'] 多个班级名=['xxx','yyy','zzz']

校区可以: 1、创建班级 2、查看本校区开设的所有班级名 3、创建课程 4、查看本校区开设的所有课程名

2、定义出班级类,实例化出两个班级对象 班级对象独有的特征: 班级名=‘xxx’ 所属校区名=‘xxx’ 多门课程名=['xxx','yyy','zzz'] 多个讲师名=['xxx','xxx','xxx']

班级可以: 1、查看本班所有的课程 2、查看本班的任课老师姓名

3、定义课程类,实例化出python、linux、go三门课程对象 课程对象独有的特征: 课程名=‘xxx’ 周期=‘3mons’ 价格=3000

课程对象可以: 1、查看课程的详细信息

 

4、定义学生类,实例化出张铁蛋、王三炮两名学生对象 学生对象独有的特征: 学号=10 名字=”xxx“ 班级名=['xxx','yyy'] 分数=33

学生可以: 1、选择班级 3、注册,将对象序列化到文件

5、定义讲师类,实例化出egon,lqz,alex,wxx四名老师对象 老师对象独有的特征: 名字=“xxx” 等级=“xxx”、 老师可以: 1、修改学生的成绩

import pickle
class Course:
    def __init__(self,name,period,price):
        self.__name = name
        self.__period = period
        self.__price = price
    def show_info(self):
        print('<course:%s><period:%s><price:%s>'
              %(self.__name,self.__period,self.__price))
    @property
    def name(self):
        return self.__name
    @name.setter
    def name(self,name):
        self.__name = name
    @property
    def period(self):
        return self.__period
    @period.setter
    def period(self,period):
        self.__period=period
    @property
    def price(self):
        return self.__price
    @price.setter
    def price(self,price):
        self.__price = price

class Student:
    def __init__(self,id,name,score,cls=[]):
        self.id =id
        self.name = name
        self.cls =cls
        self.score =score
    def choose_cls(self,cls):
        self.cls.append(cls)
    def regist(self):
        with open(r'%s'%self.name,'wb') as f:
            pickle.dump(self,f)

class Teacher:
    def __init__(self,name,level):
        self.name = name
        self.level = level
    def mod_score(self,stu,score):
        stu.score = score

class Cls:
    def __init__(self,name,school,courses=[],teachers=[]):
        self.name = name
        self.school =school
        self.courses = courses
        self.teachers = teachers
    def show_all_course(self):
        for i in self.courses:
            print('<name %s> <period: %s> <price:%s>'
                  %(i.name,i.period,i.price))
    def show_all_teacher(self):
        for i in self.teachers:
            print('<name:%s><level:%s>'%(i.name,i.level))


class School:
    def __init__(self,name,city,district,courses=[],clss=[]):
        self.name = name
        self.address = {"city":city,"district":district}
        self.courses = courses
        self.clss = clss
    def create_clss(self,name,courses=[],teachers=[]):
        cls = Cls(name,self.name,courses,teachers)
        self.clss.append(cls)
    def show_cls_name(self):
        for i in self.clss:
            print(i.name)
    def create_course(self,name,period,price):
        cou = Course(name,period,price)
        self.courses.append(cou)
    def show_courses(self):
        for i in self.courses:
            print(i.name)

bjschool = School('北京校区','北京','三里桥')
shschool = School('上海校区','上海','浦东新区')
bjschool.create_clss('班级1')
shschool.create_course('java','3mon',3000)
bjschool.show_cls_name()
shschool.show_courses()

course1 = Course('python','3mon',3000)
course2 = Course('linux','3mon',3000)
course3 = Course('go','3mon',3000)
course1.show_info()




css1 =[course1,course2]
css2=[course1,course3]

st1 =Student(1,'张铁蛋',66,css1)
st2 =Student(2,"王三炮",69,css2)



egon =Teacher('egon',10)
lqz = Teacher('lqz',8)
alex =Teacher('alex',10)
egon.mod_score(st1,100)

t1 = [egon]
t2 =[lqz,alex]

c1=Cls('python4',shschool.name,courses=css1,teachers=t2)
c2 =Cls('linux',bjschool.name,css2,t1)
c1.show_all_course()
c2.show_all_teacher()

st1.choose_cls(c1)
st1.regist()

结果:

"""
班级1
java
<course:python><period:3mon><price:3000>
<name python> <period: 3mon> <price:3000>
<name linux> <period: 3mon> <price:3000>
<name:egon><level:10>
"""

猜你喜欢

转载自www.cnblogs.com/msj513/p/9845808.html