python-选课系统,,详细要求:1、创建北


详细要求:
1、创建北京、上海 2 所学校
2、创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开
3、课程包含,周期,价格,通过学校创建课程
4、通过学校创建班级, 班级关联课程、讲师
5、创建学员时,选择学校,关联班级
6、创建讲师角色时要关联学校
7、提供两个角色接口:

8、为学员、讲师、管理员分别提供用户界面,并提供对应功能:
1) 学员视图,可以注册,交学费,选择班级,
2) 讲师视图,讲师可管理自己的班级,上课时选择班级,查看班级学员列表,修改所管理的学员的成绩
3) 管理视图,创建讲师,创建班级,创建课程

注1:上面的操作产生的数据都通过pickle序列化保存到文件里 注2:此作业必须画流程图,
图中标注好不同类或对象之间的调用关系

一、选课系统用例

## 用例名称
选课系统

## 场景
who :学生,老师,管理员
where:oldboy
when: anytime

## 用例描述
1、管理员创建学校:北京和上海两个校区
2、管理员创建课程: python、linux、go (python,linux在北京校区,go在上海校区)
3、管理员创建班级:python周末18期,python脱产7期,linux架构35期
4、管理员创建学员:erleng,bode,wenjie
5、管理员创建讲师:alex(python),egon(),wupeiqi
6、讲师创建上课记录:python周末班18期day7
7、讲师为day7这节课所有学生批改作业,为每个学生打分
8、学员wenjie查看自己的课程信息:所在学校、报名课程、所在班级
9、学员wenjie在python18期day7提交了作业
10、学员wenjie查看自己在day7的成绩列表


二、找名词

管理员、学校、课程、班级、学员、讲师、上课记录、作业、分数、学员详细信息、成绩列表


三、加属性

名词 属性 方法
管理员 None 创建(学校、课程、班级、讲师、学员)
学校 学校名、地址、课程列表、班级列表 None
课程 课程名、周期、价钱、大纲 None
班级 班级名、所属学校、课程 None
学员 学员名、课程 选课、查看课程信息、提交作业、查看成绩列表
讲师 讲师名、课程 创建上课记录、打分
上课记录 课程名、时间
作业 课程名
学员信息 姓名、班级、课程
成绩列表 姓名、课程、成绩
1、创建课程、班级需选定学校,并将课程、班级信息加入学校

四、数据存储方式(pickle序列化后存储)

管理员信息: {"username":"admin","password":"123"}

学校信息:{"luffycity_beiing":{"address":"北京沙河","courses":[],"classes":[]},
"luffycity_shanghai":{"address":"上海虹桥","courses":[],"classes"}:[]}

课程信息:{"python":{"school":"luffycity_beiing","course_time":"6mons","course_price":"8000","course_info":"python全栈开发"},
"linux":{"school":"luffycity_beiing","course_time":"8mons","course_price":"8000","course_info":"Linux高级架构"},
"go":{"school":"luffycity_shanghai","course_time":"7mons","course_price":"10000","course_info":"go高级开发"}}

班级信息:{"python":{"school_name":"Luffycity_beijing","class_name":"python_online班","teachers":[],"students":[]},

学生信息:{"wenjie":{"age":18,"sex":"male","password":"123","school_name":"Luffycity_beijing","classes":[],"course":[]}}

讲师信息:{"alex":{"age":25,"sex":"male","password":"123","course":"python","class_name":"python全栈"}}

课程记录:{"python_mod1":{"time":xxx,"task":"用户登录接口程序","submission_list":[]}}

学习记录:{"wenjie":{"course"}:"python","already_learned"[]}

成绩记录:{"wenjie":{"task":"0"}}


五、目录结构


.
├── Course_selection_system # 选课系统
││
│ ├── bin # 可执行程序入口目录
│ │ ├── __init__.py
│ │ └── start.py # 启动入口
│ ├── conf # 配置文件目录
│ │ ├── __init__.py
││└── settints.py # 配置文件目录
│├── core# 主程序目录(三个主要视图)
││├── __init__.py
││├──main.py# 主程序
││├── manager.py# manager 类
││├── student.py# student 类
││└──teacher.py# teacher 类
│├── database# 数据结构目录
││├── Crouse_record# 上课记录目录
│││├── go.pkl# go上课记录数据
│││├── linux.pkl# linux上课记录数据
│││└── python.pkl# python上课记录数据
││├── Learn_record# 学习记录目录
│││├──go_learned.pkl# go学习记录数据
│││├──linux_learned.pkl# linux学习记录数据
│││└── python_learned.pkl# python学习记录数据
││├── Score_record# 成绩目录
│││├──go_score.pkl# go 成绩数据
│││├──linux_score.pkl# linux 成绩数据
│││└── python_score.pkl# python 成绩数据
││├── classes.pkl# 班级数据
││├── courses.pkl# 课程数据
││├──manager.pkl# 管理员用户数据
││├── schools.pkl# 学校数据
││├── students.pkl# 学员用户数据
││└── teachers.pkl# 讲师用户数据
│└── modules # 共用模块目录
│├── __init__.py
│└── public_mod.py# 密码加密、用户登录验证、pickle序列化
└── README


六、主要模块介绍

1、Manager 类

包含 创建学校(打印学校)、创建课程(打印课程)、创建班级(打印班级)、创建学员(打印学员)、创建讲师(打印讲师)

其中创建学员方法在学员验证登录中注册功能时会再次调用;

2、Student 类

# 对象私有参数 (name)
#方法:打印当前学员信息、选课(购买课程)、学习管理(按照模块学习、提交作业)、提交作业、查看成绩

3、Teacher 类

# 对象私有参数 (name)
#方法:班级管理、创建上课记录(打印课程记录)、批改作业


4、DataPickle 类

# 对象私有参数(path)
# 方法:dump、load

七、测试账户
1、管理员: admin : 123
2、学 员: wenjie : 123 erleng :123 bode : 123
3、讲 师: alex : 123 egon : 123 peiqi ;123

八、代码:

云盘:后续更新

python-选课系统

评论关闭