• 作业21


    作业21

    # 选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
    # 1、学校数据与功能整合
    # 2、课程数据与功能进行整合
    # 3、学生数据与功能进行整合
    # 4、讲师数据与功能进行整合
    # 5、班级数据与功能进行整合
    # ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合
    
    # 数据部分:
         #  校区的名字:如"老男孩上海校区"
         #  校区的地址:如"上海虹桥"
    
         # 班级名字
         # 班级所在校区
    
         # 学生的学校
         # 学生的姓名
         # 学生的年龄
         # 学号
         # 学生的性别
    
         # 课程名字
         # 课程周期
         # 课程价格
    
         # 老师的名字
         # 老师的年龄
         # 老师的薪资
         # 老师的等级
    
    
    # 功能部分:
         # 校区创建完毕后,可以为每个校区创建班级
    
         # 班级创建完毕后,可以为每个班级创建课程
    
         # 学生创建完毕后,学生可以选择班级
    
         # 老师创建完毕后,可以为学生打分
    
    class Schools:
        def __init__(self, name, adress):
            self.name = name
            self.adress = adress
    
        def school_info(self):
            print("校区地址:{}     校区名字:{}".format(self.adress, self.name))
    
        # 校区创建完毕后,可以为每个校区创建班级
        def add_class(self, class_name):
            # 根据传入的班级名字创建班级,得到返回值---班级
            class_var = Classes(self, class_name)
            return class_var
    
    
    class Classes:
        def __init__(self, school, name):
            self.name = name
            self.school = school
    
        def class_info(self):
            print("班级名字:{}    班级所在的校区名字:{}".format(self.name, self.school.name))
    
        # 班级创建完毕后,可以为每个班级创建课程
        def add_course(self, name, time, price):
            course_var = Courses(self, name, time, price)
            return course_var
    
    
    class Courses:
        def __init__(self, course_class, name, time, price):
            self.name = name
            self.time = time
            self.price = price
            self.course_class = course_class
    
        def show_info(self):
            print(
                "所属班级为:{} 课程名字:{} 课程周期:{} 课程价格:{}".format(self.course_class.name, self.name, self.time, self.price))
    
    
    school_sh = Schools("老男孩上海校区", "上海虹桥")
    school_sh.school_info()
    python14 = school_sh.add_class("上海python14期")
    python14.class_info()
    python = python14.add_course("python", "5 month", 22200)
    python.show_info()
    
    
    class Students:
        def __init__(self, stu_name, stu_age, stu_num, stu_gender):
            self.name = stu_name
            self.age = stu_age
            self.num = stu_num
            self.gender = stu_gender
            self.stu_class = None
    
        # 学生创建完毕后,学生可以选择班级
        def choose_class(self, stu_class):
            self.stu_class = stu_class
            print("选择班级成功")
    
        def stu_info(self):
            if self.stu_class is None:
                print("所在班级:还未选择班级 姓名:{} 年龄:{} 学号:{} 性别:{}".format 
                          (self.name, self.age, self.num, self.gender))
            else:
                print("所在班级:{} 姓名:{} 年龄:{} 学号:{} 性别:{}".format 
                          (self.stu_class.name, self.name, self.age, self.num, self.gender))
    
    
    stu1 = Students("wu", 22, 999, "male")
    stu1.choose_class(python14)
    stu1.stu_info()
    
    
    class Teacher:
        def __init__(self, name, age, salary, level):
            self.name = name
            self.age = age
            self.salary = salary
            self.level = level
    
        def show_info(self):
            print("教师姓名:{} 年龄:{} 工资:{} 等级:{}".format(self.name, self.age, self.salary, self.level))
    
        # 老师创建完毕后,可以为学生打分
        def add_score(self, student, score):
            student.score = score
            print("打分成功")
    
    
    egon = Teacher("egon", 40, 2220000, "3级")
    egon.show_info()
    tank = Teacher("tank", 30, 1555000, "2级")
    tank.show_info()
    egon.add_score(stu1, 100)
    print(stu1.score)
    

    1

  • 相关阅读:
    第八讲、原型模式
    第七讲、建造者模式
    第六讲、抽象工厂模式
    第五讲、工厂方法模式
    第四讲、简单工厂模式
    第三讲、策略模式
    第二讲、备忘录模式
    第一讲、单例模式
    二、中国黑客
    java 17
  • 原文地址:https://www.cnblogs.com/achai222/p/12654477.html
Copyright © 2020-2023  润新知