Python作业选课系统(第六周)

作业需求:

角色:学校、学员、课程、讲师、完成下面的要求

1. 创建北京、上海 2 所学校

2. 创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开

3. 课程包含,周期,价格,通过学校创建课程

4. 通过学校创建班级, 班级关联课程、讲师

5. 创建学员时,选择学校,关联班级

5. 创建讲师角色时要关联学校,

6. 提供两个角色接口

6.1 学员视图, 可以注册, 交学费, 选择班级,

6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩

6.3 管理视图,创建讲师, 创建班级,创建课程

7. 上面的操作产生的数据都通过pickle序列化保存到文件里

 

思路(简单整理)

关联关系:

1.学校-班级

2. 班级-课程-讲师

3.讲师-学校

4.学生-学校-班级-(这里隐藏了一个关联关系就是班级还关联这-课程-讲师)

分析后得出5个类,学校,课程,班级,讲师,学生,创建这5个类,然后用学校类将关联关系理清,然后用三个视图调用不同对象进行操作。

 

简单流程图:

README:

作者:yaobin
版本:示例版本 v0.1 mmp版本  :(
程序介绍:

1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程 
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
5. 创建讲师角色时要关联学校, 
6. 提供两个角色接口
6.1 学员视图, 可以注册, 交学费, 选择班级,
6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩 
6.3 管理视图,创建讲师, 创建班级,创建课程
7. 上面的操作产生的数据都通过pickle序列化保存到文件里

文件目录

---选课系统 #主程序目录
│  README
│  __init__.py
│
├─bin
│      Course_Selecting.py #主程序__init__.py
│
├─conf
│  │  setting.py  #配置文件
│  │  __init__.py
│
├─core
│  │  main.py           #主逻辑交互程序
│  │  school_view.py    #学校视图
│  │  student_view.py   #学生视图
│  │  teacher_view.py   #老师视图
│  │  __init__.py
│
├─db
│      1.py
│      school.bak
│      school.dat           #数据db
│      school.dir
│
├─logs
│      __init__.py
│
├─src
│  │  class_classroom.py  #教室类
│  │  class_course.py     #课程类
│  │  class_school.py     #学校类
│  │  class_student.py    #学生类
│  │  class_teacher.py    #老师类
│  │  __init__.py
│
└─test
        __init__.py
View Code

 

代码部分:

bin / Course_Selecting.py 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import os,sys,logging,shelve
BASE_DIR  = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #添加环境变量
from conf import setting
from core.main import Admin

if __name__ == '__main__':
    Admin.run('')
View Code

conf / setting.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import  os,time,shelve,sys
from src.class_school import School
BASE_DIR  = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #添加环境变量
data_path = os.path.join(BASE_DIR+'db')
school_file = os.path.join(data_path,'school')
View Code

core / main.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import os,sys,logging,shelve
BASE_DIR  = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #添加环境变量
from conf import setting
from core.school_view import School_view
from core.teacher_view import Teacher_view
from core.student_view import Student_view

class Admin(object):
    def run(self):
        exit_flag =False
        menu = u'''
        33[32;1m
        1.学生视图
        2.老师视图
        3.学校视图
        4.退出33[0m
        '''
        while not exit_flag:
            print(menu)
            user_option = input('请输入要管理的视图,输入q退出>>>:	')
            if user_option == '1':
                Student_view()
            elif user_option == '2':
                Teacher_view()
            elif user_option == '3':
                School_view()
            elif user_option == 'q' or user_option =='4':
                sys.exit()
            else:
                print('输入的选项不正确,请重新输入')
View Code

  school_view.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import os,sys,logging,shelve
BASE_DIR  = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #添加环境变量
from conf import setting
from src.class_school import School

class School_view(object):
    def __init__(self):
        if os.path.exists(setting.school_file+ '.dat'):
            self.school_file = shelve.open(setting.school_file)
            self.school_manger()
            self.school_file.close()
        else:
            print('没有学校和班级的数据,请先创建')
            self.init_school()
            self.school_manger()
            self.school_file.close()
    def init_school(self):
        self.school_file = shelve.open(setting.school_file)
        self.school_file['北京'] = School('总校','北京')
        self.school_file['上海'] = School('总校','上海')

    def school_manger(self):
        while True:
            for school_name in self.school_file:
                print('学校名称:%s'%school_name)
            school_option = input('请输入要管理的学校名称>>>:').strip()
            if school_option in  self.school_file:
                self.school_option = school_option
                self.school_obj = self.school_file[school_option]
                '''
                如果是北京就等于self.school_obj[北京]
                file[北京] =School('总校','北京')
                所以当下文出现了self.school_obj.school_course =School('总校','北京').school_course
                等同于调用了School().school_course的属性是
                '''
            while True:
                menu = '''
                欢迎来到  Python%s校区
                添加课程  add_course
                添加班级  add_classroom
                添加讲师  add_teacher
                查看班级  show_classroom
                查看课程  show_classroom
                查看讲师  show_teacher
                修改讲师  add_teacher
                退出      exit
                '''%school_option
                print(menu)
                user_choice = input('请选择以上操作>>>:').strip()
                if hasattr(self,user_choice):
                    getattr(self,user_choice)()
                else:
                    print("没有这个操作,请重新输入!!!!")
                    pass

    def add_course(self):
        course_name = input('请输入课程名称>>>:').strip()
        course_price = input('请输入课程价格>>>:').strip()
        course_time = input('请输入课程周期[默认为周]>>>:').strip()
        if course_name in self.school_obj.school_course:
            print('课程已经存在')
        else:
            self.school_obj.create_course(course_name, course_price, course_time)  #相当于School.create_course(course_name, course_price, course_time)
            print('%s课程添加成功' % course_name)
        self.school_file.update({self.school_option:self.school_obj})
        self.school_file.close()

    def add_classroom(self):
        class_name = input('请输入班级名称>>>:').strip()
        class_course = input('请输入课程>>>:').strip()
        if class_name not in self.school_obj.sch_class_room:    #sch_class_room
            if class_name not in self.school_obj.school_course:
                course_obj = self.school_obj.school_course[class_course]
                self.school_obj.create_classroom(class_name,course_obj)
                self.school_file.update({self.school_option:self.school_obj})
                self.school_file.close()
                print('班级创建成功')
            else:
                print('课程不存在')
        else:
           print('班级已经存在')

    def show_classroom(self):
        for classroom in self.school_obj.sch_class_room:
            class_obj = self.school_obj.sch_class_room[classroom]
            print('班级名称:%s	课程:%s'
                  % (class_obj.class_name,class_obj.course_obj.course_name))

    def add_teacher(self):
        teacher_name = input('请输入讲师姓名>>>:')
        teacher_age = input('请输入讲师年龄>>>:')
        teacher_gender = input('请输入讲师性别>>>:')
        teacher_salary = input('请输入讲师薪水>>>:')
        class_name = input('请输入授课班级>>>:')

        if class_name in self.school_obj.sch_class_room:  # sch_class_room
            class_obj = self.school_obj.sch_class_room[class_name]
            if teacher_name not in self.school_obj.sch_teacher:
                self.school_obj.create_teacher(teacher_name,teacher_age,teacher_gender,teacher_salary,class_name,class_obj)
                print('讲师创建成功,请确认是否已经签完合同')
            else:
                self.school_obj.modify_teacher({})
                print('修改讲师成功')
            self.school_file.update({self.school_option:self.school_obj})
            self.school_file.close()
        else:
            print('请先创建班级')

    def show_teacher(self):
        for teacher_name in self.school_obj.sch_teacher:
            teacher_obj = self.school_obj.sch_teacher[teacher_name]
            for t in teacher_obj.teacher_classroom:
                class_obj =  self.school_obj.sch_class_room[t]
                stu_list = []
                for j in class_obj.class_student:
                    stu_list.append(j)
                print('教师姓名:%s	教师所在班级:%s	教授课程:%s	课程学员:%s' %(teacher_obj.teacher_name
                                                               ,t,class_obj.course_obj.course_name,class_obj.class_student))


    def exit(self):
        sys.exit('程序退出')
View Code

  student_view.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import os, sys, logging, shelve

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)  # 添加环境变量
from conf import setting
from src.class_school import School
from core.school_view import School_view

class Student_view(object):
    def __init__(self):
        if os.path.exists(setting.school_file+ '.dat'):
            self.school_file = shelve.open(setting.school_file)
            self.student_manger()
            self.school_file.close()
        else:
            print('没有数据,请联系管理员选择分校')
            sys.exit()
    def student_manger(self):
        while True:
            print('欢迎注册IT学院我们的分校有:')
            for school_name in self.school_file:
                print('	Sean[%s]分校' %school_name)
            school_option = input('请输入您要学习的分校地址>>>:').strip()

            if school_option in self.school_file:
                self.school_option = school_option
                self.school_obj = self.school_file[school_option]
            else:
                print('输入有误程序退出')
                sys.exit()
            for classroom in self.school_obj.sch_class_room:
                class_obj = self.school_obj.sch_class_room[classroom]
                print('欢迎来到%s分校我们的班级有:%s	课程有:%s'
                      % (school_option, class_obj.class_name, class_obj.course_obj.course_name))

            student_option = input('请输入学生姓名进行操作[PS:注册也在这里哟]>>>:').strip()
            if student_option in self.school_obj.sch_student:
                self.student_option = student_option
                self.student_obj = self.school_obj.sch_student[self.student_option]
            else:
                print('[%s]这位童鞋'%student_option,'您是否进行注册?')
                user_choice = input('请注册/退出(y/n)>>>:')
                if user_choice == 'y':
                    self.student_option = student_option
                    self.enroll()
                elif user_choice == 'n':
                    sys.exit()
                else:
                    print('输入有误,请重新开始 = 。= ')
                    self.student_manger()
            while True:
                menu = '''
                          欢迎来到       Python[%s]校区[%s]童鞋
                          缴纳学费       pay
                          选择教室/课程  choice_class
                          查看讲师       view_teacher
                          退出           exit
                          ''' %(school_option,student_option)
                print(menu)
                user_choice = input('请选择以上操作>>>:').strip()
                if hasattr(self, user_choice):
                    getattr(self, user_choice)()
                else:
                    print("没有这个操作,请重新输入!!!!")
                    pass

    '''注册'''
    def enroll(self):  # 课程、班级
        student_name = self.student_option
        student_gender = input('%s童鞋请输入性别>>>:' % student_name)
        student_age = input('%s童鞋请输入年纪>>>:' % student_name)
        class_name = input('%s童鞋请输入教室(PS:教室已经和课程关联)>>>:' % student_name)
        student_score = None
        if class_name in self.school_obj.sch_class_room:
            class_obj = self.school_obj.sch_class_room[class_name]
            self.school_obj.create_student(student_name, student_gender, student_age, student_score, class_name)
            self.school_file.update({self.school_option: self.school_obj})
            self.school_file.close()
            print('%s童鞋注册成功,您选择的课程是%s,教室为%s'
                  % (student_name, class_obj.course_obj.course_name, class_obj.class_name))
        else:
            print('创建失败教室不存在')

    '''缴纳学费'''

    def pay(self):  # 根据教室缴纳学费
        student_name = self.student_option
        class_name = input('%s童鞋请输入您所在的教室(PS:教室已经和课程关联)>>>:' % student_name)
        if class_name in self.school_obj.sch_class_room:  # sch_class_room
            class_obj = self.school_obj.sch_class_room[class_name]
        if class_obj.course_obj.course_name in self.school_obj.school_course:
            course_obj = self.school_obj.school_course[class_obj.course_obj.course_name]
            print('所在分校:%s	课程名称:%s	课程价格:%s	课程学习计划:%s周'
                  % (self.school_obj.school_addr, course_obj.course_name, course_obj.course_price, course_obj.course_time))

    '''选择班级'''
    def choice_class(self):  # 根据学习日期选择班级
        student_name = self.student_option
        student_gender = self.student_obj.student_gender
        student_age = self.student_obj.student_age
        class_name = input('%s童鞋选择教室(PS:教室已经和课程关联)>>>:' % student_name)
        student_score = 0
        # class_name ='room'
        if class_name in self.school_obj.sch_class_room:  # sch_class_room
            class_obj = self.school_obj.sch_class_room[class_name]
            self.school_obj.create_student(student_name, student_gender, student_age, student_score, class_name)
            self.school_file.update({self.school_option: self.school_obj})
            self.school_file.close()
            print('%s更改教室成功,您选择的课程是%s,教室为%s'
                  % (student_name, class_obj.course_obj.course_name, class_obj.class_name))
        else:
            print('创建失败教室不存在')

    '''查看讲师'''
    def view_teacher(self):
        for teacher_name in self.school_obj.sch_teacher:
            teacher_obj = self.school_obj.sch_teacher[teacher_name]
            for t in teacher_obj.teacher_classroom:
                class_obj = self.school_obj.sch_class_room[t]
                stu_list = []
                for j in class_obj.class_student:
                    stu_list.append(j)
                print('教师姓名:%s	教师所在班级:%s	教授课程:%s	学生有%s'
                      % (teacher_obj.teacher_name,t, class_obj.course_obj.course_name,stu_list))
    '''退出'''
    def exit(self):
        sys.exit('感谢使用再见')
View Code

  teacher_view.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import os,sys,logging,shelve
BASE_DIR  = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #添加环境变量
from conf import setting
from src.class_school import School

class Teacher_view(object):
    def __init__(self):
        if os.path.exists(setting.school_file+ '.dat'):
            self.school_file = shelve.open(setting.school_file)
            self.teacher_manger()
            self.school_file.close()
        else:
            print('没有教师数据,请先创建学校')
            sys.exit()
    def teacher_manger(self):
        while True:
            print('欢迎进入IT学院讲师视图:')
            for school_name in self.school_file:
                print('讲师分校名:%s' % school_name)
            school_option = input('请输入您所在分校名>>>:').strip()
            if school_option in self.school_file:
                self.school_option = school_option
                self.school_obj = self.school_file[school_option]
            else:
                print('您的输入有误')
                break
            teacher_option = input('请输入讲师姓名进行管理>>>:').strip()
            if teacher_option in self.school_obj.sch_teacher:
                self.teacher_option = teacher_option
                self.teacher_obj = self.school_obj.sch_teacher[self.teacher_option]
                print('欢迎讲师%s进入讲师管理系统以下是您的讲师信息:'
                      '
讲师姓名:%s	讲师年龄:%s	讲师性别:%s	讲师工资:%s'
                      %(self.teacher_obj.teacher_name,self.teacher_obj.teacher_name
                        ,self.teacher_obj.teacher_age,self.teacher_obj.teacher_gender,self.teacher_obj.teacher_salary))
            else:
                print('没有[%s]这位讲师'%teacher_option)
                sys.exit()
            while True:
                menu = '''
                          欢迎来到  Python[%s]校区[%s]讲师
                          选择教室  management_class
                          查看班级  view_class
                          查看学员  view_student_list
                          修改成绩  revise_student_grades
                          退出      exit
                          ''' %(school_option,teacher_option)
                print(menu)
                user_choice = input('请选择以上操作>>>:').strip()
                if hasattr(self, user_choice):
                    getattr(self, user_choice)()
                else:
                    print("没有这个操作,请重新输入!!!!")
                    pass

    '''管理自己的班级'''
    def management_class(self):
        for classroom in self.teacher_obj.teacher_classroom:
            class_obj = self.teacher_obj.teacher_classroom[classroom] #教室对象
        print('%s您所在的班级为:%s	教授的课程是%s:' % (self.teacher_obj.teacher_name,
                                                  class_obj.class_name,class_obj.course_obj.course_name))  # 讲师对应教室和课程
        user_choice = input('是否选择要上课的教室y/n>>>:').strip()
        if user_choice  == 'y':
            class_name = input('请输入要上课的教室>>>:').strip()
            class_obj = self.school_obj.sch_class_room[class_name]
            self.school_obj.create_teacher(self.teacher_obj.teacher_name, self.teacher_obj.teacher_age,
                                           self.teacher_obj.teacher_gender,self.teacher_obj.teacher_salary,class_name,
                                           class_obj)
            print('讲师选择教室对应的课程成功')
            self.school_file.update({self.school_option:self.school_obj})
            self.school_file.close()
        elif user_choice  == 'n':
            print('不对班级进行管理....请重新选择您的操作!!!>>>:')
            pass
        else:
            print('输入不正确')
            pass

    '''上课选择班级和管理班级'''
    def view_class(self):  # 上课选择班级,
        for classroom in self.teacher_obj.teacher_classroom:
            class_obj = self.teacher_obj.teacher_classroom[classroom]  # 教室对象
        print('%s您所在的班级为:%s	教授的课程是%s:' % (self.teacher_obj.teacher_name,
                                                  class_obj.class_name, class_obj.course_obj.course_name))  # 讲师对应教室和课程

    '''查看学员列表'''
    def view_student_list(self):  # 查看学员列表
        for classroom in self.teacher_obj.teacher_classroom:
            class_obj = self.teacher_obj.teacher_classroom[classroom]  # 教室对象
            stu_list = []
            for j in class_obj.class_student:
                stu_list.append(j)
            print('%s您所在的班级为:%s	教授的课程是%s	您班级里的学生有%s:' % (self.teacher_obj.teacher_name,
                                                  class_obj.class_name, class_obj.course_obj.course_name,
                                                  stu_list))  # 讲师对应教室和课程有问题
    '''修改成绩'''
    def revise_student_grades(self):
        self.view_student_list()
        for classroom in self.teacher_obj.teacher_classroom:
            class_obj = self.school_obj.sch_class_room[classroom]  # 教室对象
            student_name = input('请讲师修改成绩的学生的姓名>>>:').strip()
            if student_name in class_obj.class_student:
                student_obj = class_obj.class_student[student_name]
                print('%s童鞋成绩为%s	课程:%s	教室:%s'
                        %(student_name, student_obj.student_score, class_obj.course_obj.course_name, class_obj.class_name))
                student_gender = student_obj.student_gender
                student_age = student_obj.student_age
                new_score = input('请讲师修改成绩>>>:').strip()
                self.school_obj.create_student
                    (student_name, student_gender, student_age, new_score,class_obj.class_name)
                self.school_file.update({self.school_option: self.school_obj})
                self.school_file.close()
                print('%s童鞋修改成功,他的成绩为%s,他的课程是%s,教室为%s'
                      % (student_name, new_score, class_obj.class_name, class_obj.course_obj.course_name))
            else:
                print('没有这个童鞋>>>>>!!!!')

    def exit(self):
        sys.exit('[%s]讲师感谢使用再见'%self.teacher_obj.teacher_name)
View Code

db

logs

src / class_classroom.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import  time
'''班级类'''
class Class_room(object):
    def __init__(self,class_name,course_obj):
        self.class_name = class_name
        self.course_obj = course_obj
        self.class_student = {}
View Code

  class_course.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
'''课程类'''
import time
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
View Code

  class_school.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
import  time,os,shelve,sys
BASE_DIR  = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #添加环境变量
from src.class_teacher import Teacher
from src.class_course import Course
from src.class_classroom import Class_room
from src.class_student import Student
'''学校类'''
class School(object):
    def __init__(self,school_name,school_addr):
        self.school_name  = school_name
        self.school_addr  = school_addr
        self.school_course = {}
        self.sch_class_room ={}
        self.sch_teacher = {}
        self.sch_student = {}

        '''创建课程'''
    def create_course(self,course_name,course_price,course_time):
        course_obj = Course(course_name,course_price,course_time) #创建课程对象
        self.school_course[course_name] = course_obj  #根据课程名为key,课程对象为value创建对应关系传进了init self.school_course

        '''展示课程'''
    def show_course(self):
        for course in self.school_course:
            course_obj = self.school_course[course]
            print(course_obj.__dict__)  #是否需要添加学校
            print('所在分校:%s	课程名称:%s	课程价格:%s	课程学习计划:%s周'
                  %(self.school_addr,course_obj.course_name,course_obj.course_price,course_obj.course_time))

        '''修改课程'''
    def modify_course(self):  #可能会继续追加、保留
        for course in self.school_course:
            course_obj = self.school_course[course]
            course_obj.course_name= input('修改课程名称>>>:')
            course_obj.course_price = input('修改课程价格>>>:')
            course_obj.course_time = input('修改课程周期>>>:')

        '''创建教室'''
    def create_classroom(self,class_name,course_obj): #创建classroom、关联课程
        class_obj = Class_room(class_name,course_obj) #创建课程对象
        self.sch_class_room[class_name] = class_obj  #根据教室名为key,课程对象为value创建对应关系传进了init self.school_course

        '''展示教室'''
    def show_classroom(self):
        for classroom in self.sch_class_room:
            class_obj = self.sch_class_room[classroom]
            #应该是班级名称、对应课程、对应老师、对应的student、保留
            print('班级名称:%s	课程:%s'
                  % (class_obj.class_name,class_obj.course_obj))
            print(class_obj.__dict__)

        '''修改教室'''
    def modify_course(self):  #可能会继续追加、保留
        for classroom in self.sch_class_room:
            class_obj = self.sch_class_room[classroom]
            x = time.strftime("%Y%m%d%H%M%S", time.localtime()) #按照根据时间修改教室省去输入
            class_obj.course_obj = input('请慎重输入课程名称>>>:')
            y = time.strftime("%Y%m%d%H%M%S", time.localtime())
            class_obj.class_name= (y+"_"+ class_obj.course_obj)

        '''创建教师'''
    def create_teacher(self,teacher_name,teacher_age,teacher_gender,teacher_salary,class_name,class_obj):
        teacher_obj = Teacher(teacher_name,teacher_age,teacher_gender,teacher_salary)
        teacher_obj.add_tech_classroom(class_name,class_obj)   #讲师关联教室
        self.sch_teacher[teacher_name] = teacher_obj

        '''查看教师'''
    def show_teacher(self):
        for teacher_name in self.teacher:
            teacher_obj=self.teacher[teacher_name]
            print('老师姓名:%s','老师年龄:%s','老师性别:%s','老师工资:%s'
                  %(teacher_obj.teacher_name,teacher_obj.teacher_age,teacher_obj.teacher_gender,teacher_obj.teacher_salary))

        '''修改老师'''
    def modify_teacher(self):
        for teacher_name in self.teacher:
            teacher_obj=self.teacher[teacher_name]
            teacher_obj.teacher_name = input('请输入修改的老师姓名>>>:')
            teacher_obj.teacher_age = input('请输入修改的老师年龄>>>:')
            teacher_obj.teacher_gender = input('请输入修改的老师性别>>>:')
            teacher_obj.teacher_salary = input('请输入修改的老师工资>>>:')

        '''创建学生'''
    def create_student(self,student_name,student_gender,student_age,student_score,class_name):
       #创建学生对象
       student_obj = Student(student_name,student_gender,student_age,student_score)
       self.sch_student[student_name] = student_obj
       #建立学生和班级的关联关系
       class_obj = self.sch_class_room[class_name]
       class_obj.class_student[student_name] = student_obj
       #更新班级信息
       self.sch_class_room[class_name] =class_obj
View Code

  class_student.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
class Student(object):
    def __init__(self,student_name,student_gender,student_age,student_score):
        #学生性命,性别,年龄,分数
        self.student_name = student_name
        self.student_gender = student_gender
        self.student_age = student_age
        self.student_score = student_score
        self.student_classroom = {}
View Code

  class_teacher.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Colin Yao
class Teacher(object):
    def __init__(self,teacher_name,teacher_age,teacher_gender
                 ,teacher_salary):
        self.teacher_name = teacher_name
        self.teacher_age = teacher_age
        self.teacher_gender = teacher_gender
        self.teacher_salary = teacher_salary
        self.teacher_classroom = {}

    def add_tech_classroom(self,class_name,class_obj):
        self.teacher_classroom[class_name] = class_obj
View Code

 

  

 

 

原文地址:https://www.cnblogs.com/sean-yao/p/7748937.html