模仿选课系统

  选课系统作业阻碍了我好几天,看了下别人的思路,自己整理下,从大到小。。学校>老师>班级>课程和学生

  设计思路是逆向的,首先从学校开始。学校要包含所有信息,但是里面有的信息能包装起来,所以拆分很多小类(学生,教师,课程,班级),只有学校特有的是学校名称,学校地址。

  然后老师可以通过班级,管理学生等,所以接下来是老师,对应老师名,年龄,包含班级

       然后班级这个类其实最容易,班级对应课程,班级名,包含学生。

  课程只有几个元素,名字,时间,价格。其它地址,老师啥的关系不用放在这里,因为这些在老师类,学校类里面。

  最后学生也尽量简单,只有姓名和年龄。上面的类信息都有了,因此学生就简单了。

      主要是类的定义,学生,课程,班级,老师,学校。依次复杂,能简单尽量简单。

  学生只包含姓名 年龄

  课程只包含课程名(类型),价格,时间(地点放在学校里)

  

#!/usr/bin/env python
#-*-coding=utf-8-*-

class Student(object):
    def __init__(self,student_name,student_age):
        self.student_name=student_name
        self.student_age=student_age
class Course(object):
    def __init__(self,course_name,course_price,course_time,):
        self.course_name=course_name
        self.course_price=course_price
        self.course_time=course_time
class Class(object):
    def __init__(self,class_name,course_obj):
        self.class_name=class_name
        self.class_course=course_obj
        self.students=[]
class Teacher(object):
    def __init__(self,teacher_name,teacher_age,teacher_salary):
        self.teacher_age=teacher_age
        self.teacher_name=teacher_name
        self.teacher_salary=teacher_salary
        self.teacher_classes=[]
class School(object):
    def __init__(self,school_name,school_addr):
        self.school_name=school_name
        self.school_addr=school_addr
        self.school_courses={}
        self.school_teachers={}
        self.school_classes={}
        self.school_students={}
    def create_course(self,course_name,course_price,course_tine):
        course_obj=Course(course_name,course_price,course_tine)
        self.school_courses[course_name]=course_obj
    
原文地址:https://www.cnblogs.com/a10086/p/9236869.html