角色:学校、学员、课程、讲师
要求:
-
创建北京、上海 2 所学校
-
创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开
-
课程包含,周期,价格,通过学校创建课程
-
通过学校创建班级, 班级关联课程、讲师
-
创建学员时,选择学校,关联班级
-
创建讲师角色时要关联学校,
-
提供两个角色接口
-
学员视图, 可以注册, 交学费, 选择班级,
-
讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
-
管理视图,创建讲师, 创建班级,创建课程
-
上面的操作产生的数据都通过pickle序列化保存到文件里
框架
1、视图:三个视图,管理员视图、讲师视图、学员视图
2、角色分类:学校、课程、班级、讲师、学员
3、课程、班级、讲师、学员都要通过管理员进行创建
4、关联关系:教师关联班级,班级关联课程。创建讲师时,要有关联班级的信息,创建班级时,要关联对应课程
5、视图功能:管理视图:添加查看更新课程、班级、讲师、学员信息
讲师视图:查看自己的学员
学员视图:注册缴费
数据库:使用shelve模块,存储在database
项目目录架构
代码
如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:688244617
1 #!/usr/bin/env python
2 #-*- coding:utf-8 -*-
3 #Author:SiWen
4
5 import os
6 import sys
7 import platform
8
9 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
10 sys.path.insert(0,BASE_DIR)
11 #print(sys.path)
12
13 from core import main
14 from config import settings
15
16 if __name__ == '__main__':
17 obj = main.Main()
18 obj.run()
1 #!/usr/bin/env python
2 #-*- coding:utf-8 -*-
3 #Author:SiWen
4
5 import os
6 import sys
7 import platform
8
9 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
10 database_path = os.path.join(BASE_DIR,"database")
11
12 school_db_file = os.path.join(database_path,"school")
core中main主函数
1 #!/usr/bin/env python
2 #-*- coding:utf-8 -*-
3 #Author:SiWen
4 import os
5 import sys
6 import shelve
7 from config import settings
8 from modules.school import School
9
10
11 class Main(object):
12 def __init__(self):
13 pass
14
15 def run(self):
16 while True:
17 print('''_______欢迎进入选课系统_______
18 1.学生视图
19 2.讲师视图
20 3.学校视图
21 q.返回主界面''')
22 user_choice = input('请输入您的选择:')
23 if user_choice == '1':
24 Manage_student()
25 if user_choice == '2':
26 Manage_teacher()
27 if user_choice == '3':
28 Manage_school()
29 if user_choice == 'q':
30 print('您已退出系统,返回主界面')
31 break
32 else:
33 print('请输入正确选项')
34
35
36 class Manage_school(object):
37 # 学校视图
38 def __init__(self):
39 if os.path.exists(settings.school_db_file + '.dat'):
40 self.school_db = shelve.open(settings.school_db_file) # 打开数据库
41 self.run_manage()
42 self.school_db.close() # 关闭数据库
43
44 else:
45 print('初始化数据库')
46 self.initialize_school()
47 self.run_manage()
48 self.school_db.close()
49
50 def initialize_school(self):
51 self.school_db = shelve.open(settings.school_db_file)
52 self.school_db['北京'] = School('中国*北京', '北京')
53 self.school_db['上海'] = School('中国*上海', '上海')
54