Python开发程序:选课系统-自我理解过程

第三模块这个作业因为工作原因前前后后拖了好久,而且思路也会忘记,现在逐步记录一下自己书写的思路

1.作业要求

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

个人思路,第三模块主要还是讲面向对象,如何使用类,在开始写的时候,自我还是会带着以面向过程的思维去做作业,根本上还是写的少以及练习的少,再加上自己这段时间经常通宵处理故障,期间几天不想学习。所以啊学习还是一个坚持的事情。废话不说,先开始说自己的思路吧。

2.思路梳理

一开始拿到这个题目,关系挺乱的,理清楚花费了蛮久

先说框架

三大视图:管理,教师,学员   这样就意味着应该有三个接口对应着管理员,教师以及学员
六大角色:管理员,学校,教师,学员,课程,班级   这样就需要创建六个类对应不同的角色

在将要求整理成自己明白的语言,说实在这要求挺乱的,前后都不挨着,只能自己整理,难道说以后从事代码这份工作的话,需求也是这样的吗?深思

要求:
1. 创建北京、上海 2 所学校  #管理员创建学校,通过类实例化学校对象
2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 #管理员创建课程,通过类实例化课程对象,管理员通过绑定方法,给学校绑定课程
3. 课程包含,周期,价格,通过学校创建课程 #通过类来实例化课程,课程有课程名,周期,价格这三个参数
4. 通过学校创建班级, 班级关联课程、讲师 #通过类来实例化班级,班级有班级名,课程,教师关联班级
5. 创建学员时,选择学校,关联班级  #学员注册时,需要选择学校以及选择班级,但也需要一些私人属性姓名,密码,性别
6. 创建讲师角色时要关联学校, #实例化讲师
7. 提供两个角色接口
8. 学员视图, 可以注册, 交学费, 选择班级,#学员的功能
9. 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩   #讲师功能
10. 管理视图,创建讲师, 创建班级,创建课程   #管理员功能
11. 上面的操作产生的数据都通过pickle序列化保存到文件里   #最后保存的方法

将上面的需求整理一下,顺便把类也创建了

最开始先将学校的类创建了,与其他类关联,需要存放课程以及教师信息 

#学校拥有学校名字,学校地址,学校课程,学校教师这四个属性,
class School(object):
    """"""
    def __init__(self,school_name,school_address):
        self.school_name = school_name  #学校名字
        self.school_address = school_address  #学校地址
        self.course = {}   #学校初始课程为空,需要添加
        self.teacher = {}   #学校初始教师为空,需要添加

接下来是课程类,与其他关联,但并不存放其他信息

#课程主要有课程名,价格,以及学习周期
class Course(object):
    """"""
    def __init__(self,course_name,course_price,course_data):
        self.course_name = course_name  #定义课程名
        self.course_price = course_price   #定义课程价格
        self.course_data = course_data     #定义课程学习周期
        

接下来是班级类,与其他类关联,需要需要存放课程以及学生信息

#班级有班级名,课程,学生三个属性
class Class(object):
    """"""
    def __init__(self,class_name,course_obj):
        self.class_name = class_name #定义班级名
        self.course_obj = course_obj #创建班级之初就需要放入课程obj
        self.class_student = {} #创建班级之初,班级中的学生信息为空

接下来是学生类,与其他类关联,不需要存放其他类的信息,需要存放学生课程以及学生日常学习信息

#学生有学生姓名,密码,性别,课程信息,日常学习成绩属性,也有展示个人课程以及展示个人成绩的方法
class Student(object):
    """"""
    def __init__(self,student_name,student_password,student_sex):
        self.student_name = student_name#学生姓名
        self.student_password = student_password#学生用户密码
        self.student_sex = student_sex#学生性别
        self.student_information = {}#学生课程信息,不止学习python还有linux eg:python:2018-5-24,8mons
        self.student_grade = {}#学生日常学习成绩
        
    def login(self):
        #用于注册,注册时绑定学校,班级以及课程信息
        pass
        
    def show_course(self):
        #展示个人课程信息
        pass
    
    def show_grade(self):
        #展示个人成绩
        pass

接下来是教师类,与其他类关联,需要存放其他类的信息

#教师有名字,密码,班级三个属性,有查看班级学生列表以及作业批改的方法
class Teacher(object):
    """"""
    def __init__(self,teacher_name,teacher_password):
        self.teacher_name = teacher_name #教师名字
        self.teacher_password = teacher_password #教师用户密码
        self.teacher_class = [] #教师班级信息,默认为空

    def show_student(self):
        #查看班级学生信息
        pass
    
    
    def correct_homework(self):
        #学生作业批改
        #1.选择班级
        #2.选择学生
        #3.给学生增加批改信息
        pass

接下来是最后一个类,和所有类都有关联关系,不存储任何其他类,基本都是方法

#管理者只有方法没有属性
class Manager(object):
    """"""
    def creat_school(self):
        """
        创建学校
        1.输入名字以及地址
        2.实例化一个学校对象
        3.将学校对象存储        
        """
        pass
    
    def creat_teacher(self):
        """
        创建教师
        1.输入教师名字,密码
        2.格式化输出教师信息,dump到userinfo中
        3.实例化一个教师对象
        4.将教师对象存储
        """
        pass
    
    def creat_course(self):
        """
        创建课程
        1.输入课程名字,价格,周期
        2.实例化一个课程对象
        3.将课程对象存储       
        """
    
    def creat_class(self):
        """
        创建班级
        1.输入班级名
        2.导入课程对象
        3.实例化一个班级对象
        4.班级对象存储        
        """
        pass
    
    def teacher_bound_class(self):
        """
        给教师绑定班级
        1.展示班级
        2.绑定班级
        3.教师对象存储        
        """
        pass

3.代码结构

4.详细代码

还在完成中,完成后更新

猜你喜欢

转载自www.cnblogs.com/gbq-dog/p/9080725.html
今日推荐