本节作业: 选课系统
### 作者介绍:
* author:lzl
### 博客地址:
* http://www.cnblogs.com/lianzhilei/p/5813986.html
### 功能实现
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
5. 创建讲师角色时要关联学校,
6. 提供两个角色接口
6.1 学员视图, 可以注册, 交学费, 选择班级,
6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
6.3 管理视图,创建讲师, 创建班级,创建课程
7. 上面的操作产生的数据都通过pickle序列化保存到文件里
(所有功能均实现)
###程序需知
1. 当前数据库已建立好信息,可以直接进行查看增加
北京 课程:Python 讲师:金角大王 班级:S14 学员:我要学python
课程:Linux 讲师:银角大王 班级:L01 学员:我要学Linux
上海 课程:Go 讲师:天棚元帅 班级:G01 学员:我要学GO
2. 也可以把database下的两个数据库文件删除掉,数据清空,执行程序,数据库进行初始化,初始化只生成北京、上海学校名
3. 数据库结构main_dict 储存主要的逻辑结构:
{学校名:{课程名1:{"teacher":讲师,"grade":班级},课程名2:{"teacher":讲师2,"grade":班级2}},
学校名:{课程名3:{"teacher":讲师3,"grade":班级3},课程名4:{"teacher":讲师4,"grade":班级4}}}
存储的数据类型都为实例对象
数据库结构teacher_dict 存储讲师与班级的对应关系,用于方便讲师登录系统认证,结构为
{讲师:{grade:班级}
两个数据库文件均可扩展
4. 程序实现了以下严格限制:
①一个学校里面不能出现同名的课程
②一个课程只能有一个讲师
③讲师被聘用后,不能再进行聘用,一个讲师也只能教一门课程(教python,就不能再教linux了)
④班级只能对应一门课程,班级名只能出现一次,不能重复(python班级s14,linux的班级就不能再出现s14班级了)
###后期扩展
程序没有定义学生类,后期可定义类,添加学生属性(年龄,成绩),对可学生成绩信息进行修改,把功能添加到教师中心,很显然
我没时间了。。。。。
程序按功能分出不同的模块,可以更简洁
Readme
![Python开发程序:选课系统]()
角色:学校、学员、课程、讲师
要求:
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
5. 创建讲师角色时要关联学校,
6. 提供两个角色接口
7. 学员视图, 可以注册, 交学费, 选择班级,
8. 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
9. 管理视图,创建讲师, 创建班级,创建课程
10. 上面的操作产生的数据都通过pickle序列化保存到文件里
程序: 1、最最重要的readme:### 作者介绍:
* author:lzl
### 博客地址:
* http://www.cnblogs.com/lianzhilei/p/5813986.html
### 功能实现
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
5. 创建讲师角色时要关联学校,
6. 提供两个角色接口
6.1 学员视图, 可以注册, 交学费, 选择班级,
6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
6.3 管理视图,创建讲师, 创建班级,创建课程
7. 上面的操作产生的数据都通过pickle序列化保存到文件里
(所有功能均实现)
###程序需知
1. 当前数据库已建立好信息,可以直接进行查看增加
北京 课程:Python 讲师:金角大王 班级:S14 学员:我要学python
课程:Linux 讲师:银角大王 班级:L01 学员:我要学Linux
上海 课程:Go 讲师:天棚元帅 班级:G01 学员:我要学GO
2. 也可以把database下的两个数据库文件删除掉,数据清空,执行程序,数据库进行初始化,初始化只生成北京、上海学校名
3. 数据库结构main_dict 储存主要的逻辑结构:
{学校名:{课程名1:{"teacher":讲师,"grade":班级},课程名2:{"teacher":讲师2,"grade":班级2}},
学校名:{课程名3:{"teacher":讲师3,"grade":班级3},课程名4:{"teacher":讲师4,"grade":班级4}}}
存储的数据类型都为实例对象
数据库结构teacher_dict 存储讲师与班级的对应关系,用于方便讲师登录系统认证,结构为
{讲师:{grade:班级}
两个数据库文件均可扩展
4. 程序实现了以下严格限制:
①一个学校里面不能出现同名的课程
②一个课程只能有一个讲师
③讲师被聘用后,不能再进行聘用,一个讲师也只能教一门课程(教python,就不能再教linux了)
④班级只能对应一门课程,班级名只能出现一次,不能重复(python班级s14,linux的班级就不能再出现s14班级了)
###后期扩展
程序没有定义学生类,后期可定义类,添加学生属性(年龄,成绩),对可学生成绩信息进行修改,把功能添加到教师中心,很显然
我没时间了。。。。。
程序按功能分出不同的模块,可以更简洁
Readme
2、程序目录结构:

3、数据库:
main_dict和teacher_dict两个数据库文件可不创建,运行程序自动生成