zoukankan      html  css  js  c++  java
  • 选课系统初见

    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 People(Base):
    def init(self, name, password):
    self.__name = name
    self.__pwd = password
    @property
    def user_name(self):
    return self.__name

    @user_name.setter
    def user_name(self, name, password):
        if type(name) is not str:
            print('请输入字符串名字')
            return
        self.__name = name
        self.__pwd = password
        self.save_obj()
    
    @user_name.deleter
    def user_name(self):
        print('不能删除')
    

    学校类

    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_class(self, class_obj):
        self.__class_list.append(class_obj)
        self.save_obj()
    
    @property
    def tell_school_class(self):
        print(f'{self.name}:')
        for class_obj in self.__class_list:
            class_obj.tell_class_course()
    
    @property
    def classes(self):
        return self.__class_list
    

    班级类

    class Class(Base):
    def init(self, name):
    self.name = name
    self.course = None
    self.student_list = []
    self.save_obj()

    def related_course(self, course_obj):
        self.course = course_obj
        self.save_obj()
    
    @property
    def tell_class_course(self):
        self.course.tell_info()
    
    
    def add_student(self, student_obj):
        self.student_list.append(student_obj)
        self.save_obj()
    
    @property
    def tell_all_student(self):
        if self.student_list:
            print(f'班级:{self.name}'.center(50, '='))
            for student_obj in self.student_list:
                print(student_obj.name)
        else:
            print('该班级下无学生')
    
    @property
    def tell_student_score(self):
        print(f'课程:{self.course.name}:', end='')
        for student_obj in self.student_list:
            print(f'{student_obj.user_name}:{student_obj.score[self.name]}')
    

    课程类

    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.save_obj()
    
    def tell_info(self):
        print(f'<课程:{self.name}  价格:{self.price}  周期:{self.time}>')
    

    学生类

    class Student(People):
    def init(self, student_name, student_pwd):
    People.init(self, student_name, 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(People):
    def init(self, name, pwd):
    People.init(self, name, 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)
    

    class Teacher(People):
    def init(self, teacher_name, teacher_pwd):
    People.init(self, teacher_name, teacher_pwd)
    self.__class_list = []
    self.save_obj()

    @property
    def classes(self):
        if not self.__class_list:
            return '未选择班级'
        return self.__class_list
    
    @classes.setter
    def classes(self, class_obj):
        self.__class_list.append(class_obj)
        self.save_obj()
    #查看班级下的学生
    def check_student_of_class(self, class_obj):
        return class_obj.tell_all_student
    
    #查看班级所有学生的课程分数
    def check_course_of_student(self, class_obj):
        return class_obj.tell_class_course
    

    teacher_obj = Teacher('egon', 123)

    # teacher_obj.classes = '脱产 1 期'

    print(teacher_obj.classes)

  • 相关阅读:
    Codeforces Round #548
    省选前的th题
    省选前多项式的挣扎
    2019.3.18考试&2019.3.19考试&2019.3.21考试
    省选前的反演抢救计划
    2019.3.16 noiac的原题模拟赛
    AtCoder Regular Contest 069 F
    Atcoder Grand 012 C
    Atcoder Grand 011 C
    Atcoder Grand 006 C-Rabbit Exercise
  • 原文地址:https://www.cnblogs.com/xy-han/p/12663619.html
Copyright © 2011-2022 走看看