第三模块这个作业因为工作原因前前后后拖了好久,而且思路也会忘记,现在逐步记录一下自己书写的思路
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.详细代码
还在完成中,完成后更新