sistema electivo ha mostrado signos

Sistema electiva:

# coding:utf-8
from db import db_handler


# 父类
class Base:
    # 保存数据(对象)方法
    def save_obj(self):
        db_handler.save(self)

    # 查看数据(对象)方法
    @classmethod
    def select_obj(cls, obj_name):
        obj = db_handler.select(cls, obj_name)
        return obj


# 学校类
class School(Base):
    school_name = 'OLDBOY'

    def __init__(self, name, addr):
        self.name = name
        self.addr = addr
        self.class_list = []
        self.save_obj()

    def related_classes(self, class_obj):
        self.class_list.append(class_obj)
        self.save_obj()

    def tell_school_class(self):
        print(f'{self.name}:')
        for class_obj in self.class_list:
            class_obj.tell_class()


# 班级类
class Class(Base):
    def __init__(self, name):
        self.name = name
        self.course = None
        self.save_obj()

    def related_course(self, course_obj):
        self.course = course_obj
        self.save_obj()

    def tell_class(self):
        self.course.tell_info()


# 课程类
class Course(Base):
    def __init__(self, course_name, course_price, course_time):
        self.name = course_name
        self.price = course_price
        self.time = course_time
        self.student_list = []
        self.save_obj()

    def tell_info(self):
        print(f'<课程:{self.name}  价格:{self.price}  周期:{self.time}>')

    def add_student(self, student_obj):
        self.student_list.append(student_obj)
        self.save_obj()

    def tell_all_student(self):
        print('课程列表:', self.student_list)
        if self.student_list:
            print(f'课程:{self.name}'.center(50, '='))
            for student_obj in self.student_list:
                print(student_obj.name)
        else:
            print('该课程下无学生')

    def tell_all_score(self):
        print(f'课程:{self.name}:', end='')
        for student_obj in self.student_list:
            print(f'{student_obj.name}:{student_obj.score[self.name]}')


# 学生类
class Student(Base):
    def __init__(self, student_name, student_pwd):
        self.name = student_name
        self.password = student_pwd
        self.school = None
        self.course_list = []
        self.score = {}
        self.save_obj()

    # 选择学校
    def choice_school(self, school_obj):
        self.school = school_obj.name
        self.save_obj()
    # 选择课程
    def choice_course(self, course_obj):
        self.course_list.append(course_obj)
        self.score[course_obj.name] = 0
        # 课程下也需要添加学生
        course_obj.add_student(self)
        self.save_obj()

    def tell_courses_score(self):
        print(f'学生:{self.name}'.center(50, '='))
        for course_obj in self.course_list:
            print(f'课程:{course_obj.name}  分数:[{self.score[course_obj.name]}]')

    def tell_all_courses(self):
        print(f'学生{self.name}的课程'.center(50, '='))
        for course_obj in self.course_list:
            print(f'{course_obj.name} ')


class Admin(Base):
    def __init__(self, name, pwd):
        self.name = name
        self.pwd = pwd
        self.save_obj()

    def create_school(self, school_name, school_addr):
        School(school_name, school_addr)
        self.save_obj()

    def create_class(self, class_name):
        Class(class_name)


    def create_course(self, course_name, price, date_time):
        Course(course_name, price, date_time)




# #创建课程
# course_obj1 = Course('python全栈', 12000, 'mons6')
# course_obj2 = Course('Linux', 10000, 'mons6')
# course_obj1.tell_all_student()

# #创建班级
# class_obj1 = Class('脱产 1期')
# class_obj2 = Class('脱产 2期')
# #为班级关联课程
# class_obj1.related_course(course_obj1)
# class_obj2.related_course(course_obj2)
#
# #创建学校
# school_obj1 = School('上海校区', '上海')
# school_obj1.tell_school_class()
# school_obj2 = School('北京校区', '北京')
# #为学校开设班级
# school_obj1.related_classes(class_obj1)
# school_obj2.related_classes(class_obj2)

# #创建学生
# student_obj1 = Student('han', 123)
# student_obj2 = Student('tank', 123)
# #学生1选择课程
# student_obj1.choice_course(course_obj1)
# student_obj1.choice_course(course_obj2)
# #学生2选择课程
# student_obj2.choice_course(course_obj2)
# #查看学生1课程
# # student_obj1.tell_all_courses()
# #查看学生1所有课程分数
# student_obj1.tell_courses_score()
#
# #查看python全栈课程下的所有学生
# course_obj1.tell_all_student() #han
# #查看Linux课程下的所有学生
# course_obj2.tell_all_student() #han, tank



Supongo que te gusta

Origin www.cnblogs.com/xy-han/p/12663619.html
Recomendado
Clasificación