选课系统
选课系统
目录
选课系统
功能分析及使用
选课系统总复习:
- 用户视图层
与用户交互
- 管理员
- 学生
- 老师
- 接口层
处理业务逻辑
- admin_interface
- student_interface
- teacher_interface
- common_interface
- 数据层
- models
存放一个个的类
- db_handler
- pickle
通过pickle存取对象
功能分类
注意: 为所有登录、注册意外的功能添加装饰器,用作用户认证
- 管理员功能
1.注册
- 让用户输入用户名与密码,传给注册接口
- 注册接口接收到用户名与密码
- 调用models的类的select方法获取对象
- 判断对象是否存在,若存在,则返回用户已存在
- 若用户不存在,则调用models的类的save方法保存对象
注意: 密码md5加密
2.登录
- 让用户输入用户名与密码,传给登录接口
- 登录接口接收到用户名与密码
- 调用models的类的select方法获取对象
- 判断对象是否存在,若不存在,则返回用户不存在
- 若用户存在,则判断用户输入的密码是否与对象中的密码一样
- 若一样则返回登录成功,否则返回密码错误。
- 用户视图层,记录当前用户登录状态
3.创建学校
- 让用户输入学校名称与学校地址
- 把学校名称与学校地址发送给接口层
- 再接口层调用调用models的类的select方法获取学校对象
- 判断学校是否存在,若存在,返回学校已存在,退出
- 若学校不存在,则获取管理员对象,让管理员调用创建学校功能
- 管理员的创建学校方法中,调用School类触发__init__,self.save()保存对象
4.创建课程
- 调用获取所有学校接口获取所有学校,若没有退出功能
- 若有,则打印所有学校名称与编号, 让用户选择学校编号
- 对用户输入的选择数据进行限制
- 获取学校名称,输入需要创建的课程名称
- 调用接口,把学校名称、创建的课程传给创建课程接口
- 先获取学校对象,查看当前输入的课程是否存在学校对象的course_list中
- 若存在,则返回,课程已存在,重新输入课程名称
- 若不存在,则让管理员对象创建课程,得先获取管理员对象
- 通过管理员对象调用创建课程方法,把课程名称与学校传给该方法
- 调用Course课程类,触发__init__创建课程对象,并保存文件
- 让课程对象去添加学校,课程对象.school = 学校名绑定学校
- 获取学校对象,学校对象调用add_course方法,并把该课程添加到学校course_list中
- 再保存即可
5.创建老师
- 让用户输入老师名称,调用创建老师接口
- 先获取老师对象,判断老师是否存在
- 若存在,则返回
- 若不存在则创建老师,把管理员对现象获取出来
- 让管理员对象来调用创建老师方法
- 调用Teacher老师类,触发__init__,调用save方法保存老师对象。
注意: 密码md5加密
- 学生功能
1.学生注册
与管理员一样
2.学生登录
与管理员一样
3.选择学校
- 调用获取学校接口,获取所有学校
一、需求分析
# 项目需求如下
'''
角色:学校、学生、课程、讲师
要求:
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linux\py在北京开,go在上海开
3. 管理员创建学校 ,老师,课程
4. 学校包含学校名称,地址等属性
5. 学生注册登录后,可以选择学校,选择课程,查看成绩
6. 学生只能选择一所学校,从校区中选择一门课程,课程绑定给学生。
7. 老师登录后,可以查看教授课程,选择想要教授的课程,查看课程下的学生,修改学生成绩等
最终分为以下视图和功能:
学生视图
1、注册
2、登录
3、选择校区
4、选择课程
5、查看成绩
老师视图
1、登录
2、查看教授课程
3、选择教授课程
4、查看课程下学生
5、修改学生成绩
管理视图,创建讲师, 创建班级,创建课程
1、注册
2、登录
3、创建学校
4、创建老师
5、创建课程
'''
二、程序的框架设计
'''
程序的架构一共分为三层:
- 1.用户视图层
- 2.接口层
- 3.数据层
- models ---> 用于把数据封装在对象中
- db_handler ---> 把对象通过pickle的形式进行存储
'''
三、程序的目录结构
'''
conf放置配置信息setting
core:放置用户层视图
db:数据操作层py文件和以文件形式保存的数据,通过pickle把数据序列化保存到文件里。
interface:放置接口相关信息,有管理员接口,老师接口,学校接口,学生接口和公共接口
lib:放置公共方法
用户功能层:src下:
src:主视图,
admin:管理员视图,
student:学生视图
teacher:老师视图
接口层:interface下:
admin_interface管理员的接口
common_interface公共的接口
school_interface学校的接口
student_interface学生的接口
teacher_interface老师的接口
数据层:db目录下:
db_handler,文件操作相关的方法
models:各种类及类方法的定义
其它目录:admin,course,school,student,teacher是自动生成的目录,用来存放数据信息
start.py启动文件
总共分三个视图:
管理员视图:
def admin_register():
pass
def admin_login():
pass
def creat_school():
pass
def creat_teacher():
pass
def creat_course():
pass
老师视图:
def teacher_login():
pass
def check_course():
pass
def choose_course():
pass
def check_student():
pass
def modify_score():
pass
学生视图:
def student_register():
pass
def student_login():
pass
def choose_school():
pass
def choose_course():
pass
def check_score():
pass
'''