视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
python-----作业完成--学校选课系统
2020-11-27 14:14:14 责编:小采
文档
 选课系统:
角色:学校、学员、课程、讲师
要求:
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
5. 创建讲师角色时要关联学校,
6. 提供两个角色接口
6.1 学员视图, 可以注册, 交学费, 选择班级,
6.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
6.3 管理视图,创建讲师, 创建班级,创建课程

7. 上面的操作产生的数据都通过pickle序列化保存到文件里

README

学校选课系统

学生视图:可以自助注册,注册时可以选择班级,通过注册名登陆,,交学费,上课
讲师视图:通过讲师编号登陆,可以管理自己的班级,上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
管理视图: 1、创建学校. 2、查看学校.
 3、创建班级. 4、查看班级.
 5、创建讲师. 6、查看讲师.
 7、创建课程. 8、查看课程.
 9、课师关联. 10、查看课师关联.
 11、创建学员. 12、查看学员.



程序结构:
school/#程序目录
|- - -__init__.py
|- - -bin/#启动目录
| |- - -__init__.py
| |- - -admin.py#管理视图启动
| |- - -initalize.py#系统初始化
| |- - -stud.py#学生视图启动
| |- - -teacher.py#讲师视图启动
|
|- - -cfg/#配置目录
| |- - -__init__.py
| |- - -config.py#配置文件
|
|- - -core/#主要程序目录
| |- - -__init__.py
| |- - -admin_main.py#管理视图主逻辑
| |- - -class_main.py#主逻辑,类
| |- - -func_main.py#主逻辑,函数
| |- - -id_classes.py#id文件主逻辑,函数
| |- - -log_file.py#日志函数
| |- - -students_main.py#学生视图主逻辑
| |- - -teacher_main.py#讲师视图主逻辑
|
|- - -db/#数据目录
| |- - -__init__.py
| |- - -admin_file/#管理员相关文件
| | |- - -
| |
| |- - -admin_user_list#是否初始化的检测文件
| |
| |- - -classes/#班级文件目录
| |- - -course/#课程文件目录
| |- - -school/#学校文件目录
| |- - -students_file/#学生文件目录
| |- - -teac_to_cour/#讲师与课程关联文件目录
| |- - -teacher_file/#讲师文件目录
|
|
|- - -log/#日志目录
| |- - -__init__.py

详细代码:

admin.py

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 5 6 #管理视图:创建讲师, 创建班级,创建课程 7 8 import os ,sys 9 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量10 sys.path.append(BASE_DIR)#增加环境变量11 #print(BASE_DIR)12 from core import admin_main #包含目录下的文件脚本13 if __name__ == '__main__':14 admin_main.loging()
View Code

initalize.py

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 #初始化系统 5 import os ,sys 6 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量 7 sys.path.append(BASE_DIR)#增加环境变量 8 from core import func_main 9 if __name__ == '__main__':10 func_main.initialize_admin()#初始化管理员
View Code

stud.py

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import os ,sys 5 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量 6 sys.path.append(BASE_DIR)#增加环境变量 7 8 from core import students_main 9 from core.func_main import stud_alize10 11 if __name__ == '__main__':12 while True:13 print('''14 温馨提示:如果未注册可以自助注册15 1、自助注册16 2、进入登陆17 3、退出18 ''')19 s=input('请选择:')20 if s=='1':21 stud_alize()22 continue23 elif s=='2':24 students_main.stud_log()25 continue26 elif s=='3':27 exit()28 else:29 print('输入有误,请重输!')
View Code

teacher.py

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import os ,sys 5 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量 6 sys.path.append(BASE_DIR)#增加环境变量 7 8 from core.teacher_main import teach_log 9 10 if __name__ == '__main__':11 teach_log()
View Code

config.py

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import os ,sys 5 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量 6 sys.path.append(BASE_DIR)#增加环境变量 7 8 ADMIN_USER_FILE=BASE_DIR+'db\admin_user_list'#定义管理员列表文件变量 9 10 ADMIN_DIR=BASE_DIR+'db\admin_file\'#定义管理员路径变量11 CLASS_DIR=BASE_DIR+'db\classes\'#定义班级文件路径变量12 COURSE_DIR=BASE_DIR+'db\course\'#定义学校课程文件路径变量13 STUD_DIR=BASE_DIR+'db\students_file\'#定义学员文件路径变量14 TEACH_DIR=BASE_DIR+'db\teacher_file\'#定义讲师文件路径变量15 SCHOOL_DIR=BASE_DIR+'db\schools\'#定义学校路径变量16 TEAC_COUR_DIR=BASE_DIR+'db\teac_to_cour\'#定义学校课程文件路径变量17 18 AMOUNT=300#每堂课收入基数19 20 21 USER_LOG=BASE_DIR+'log\user_log.log'#用户登陆日志文件22 USER_ERRO=BASE_DIR+'log\user_erro.log'#用户错误日志文件23 USER_OPERT=BASE_DIR+'log\user_operation.log'#用户操作日志文件24 25 ADMIN_LOG=BASE_DIR+'log\admin_log.log'#管理员登陆日志文件26 ADMIN_ERRO=BASE_DIR+'log\admin_erro.log'#管理员错误日志文件27 ADMIN_OPERT=BASE_DIR+'log\admin_operation.log'#管理员操作日志文件
View Code

admin_main.py

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import pickle 5 import os ,sys 6 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量 7 sys.path.append(BASE_DIR)#增加环境变量 8 #from core import user_pass 9 from core import class_main 10 from core import func_main 11 from core import log_file 12 from cfg import config 13 14 15 def loging():#运行函数 16 if func_main.file_char(config.ADMIN_USER_FILE):#检测相关文件是否不存在,进行初始化 17 print('系统还未进行初始化!') 18 func_main.initialize_admin()#进行初始化 19 while True: 20 print('管理员界面'.center(60,'=')) 21 print('按q/Q退出<<<<

 ') 22 user=input('用户名:').strip() 23 if user=='q' or user=='Q': 24 exit() 25 pwd=input('密码:').strip() 26 data=class_main.Admin.login(user,pwd)#检测密码 27 info_str='管理员[%s] 登录成功 '%user 28 log_file.admin_log(info_str) 29 if data['tag']==True: 30 print(data['data'].center(60,'=')) 31 while True: 32 print('''=========================== 33 温馨提示:创建班级前请先进行课师关联1 34 请按提示操作: 35 1、创建学校. 2、查看学校. 36 3、创建班级. 4、查看班级. 37 5、创建讲师. 6、查看讲师. 38 7、创建课程. 8、查看课程. 39 9、课师关联. 10、查看课师关联. 40 11、创建学员. 12、查看学员. 41 0、退出. 42 ================================ 43 ''') 44 foo=input('请选择:') 45 if foo=='1': 46 func_main.car_school() 47 info_str='管理员:[%s]进行了创建学校!'%user 48 log_file.admin_opert(info_str) 49 continue 50 elif foo=='2': 51 func_main.show_school() 52 info_str='管理员:[%s]进行了查看学校!'%user 53 log_file.admin_opert(info_str) 54 continue 55 elif foo=='3': 56 func_main.car_classes() 57 info_str='管理员:[%s]进行了创建班级!'%user 58 log_file.admin_opert(info_str) 59 continue 60 elif foo=='4': 61 func_main.show_classes() 62 info_str='管理员:[%s]进行了查看班级!'%user 63 log_file.admin_opert(info_str)  continue 65 elif foo=='5': 66 func_main.car_teacher() 67 info_str='管理员:[%s]进行了创建讲师.'%user 68 log_file.admin_opert(info_str) 69 continue 70 elif foo=='6': 71 func_main.show_teacher() 72 info_str='管理员:[%s]进行了查看讲师!'%user 73 log_file.admin_opert(info_str) 74 continue 75 elif foo=='7': 76 func_main.car_course() 77 info_str='管理员:[%s]进行了创建课程!'%user 78 log_file.admin_opert(info_str) 79 continue 80 elif foo=='8': 81 func_main.show_course() 82 info_str='管理员:[%s]进行了查看课程!'%user 83 log_file.admin_opert(info_str) 84 continue 85 elif foo=='9': 86 func_main.associated_course() 87 info_str='管理员:[%s]进行了课师关联.!'%user 88 log_file.admin_opert(info_str)  continue 90 elif foo=='10': 91 func_main.show_teac_to_cour() 92 info_str='管理员:[%s]进行了查看课师关联!'%user 93 log_file.admin_opert(info_str) 94 continue 95 elif foo=='11': 96 func_main.car_students() 97 info_str='管理员:[%s]进行了创建学员!'%user 98 log_file.admin_opert(info_str) 99 continue100 elif foo=='12':101 func_main.show_students()102 info_str='管理员:[%s]进行了查看学员!'%user103 log_file.admin_opert(info_str)104 continue105 elif foo=='0':106 print("您已经成功退出!")107 info_str='管理员[%s] 成功退出 '%user108 log_file.admin_log(info_str)109 exit()110 else:111 print("选择有误,请重新选择!")112 continue113 114 else:115 print('用户名或密码错误请重输入')116 info_str='管理员[%s] 登录错误 '%user117 log_file.admin_err(info_str)118 continue
View Code

class_main.py

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import os ,sys,pickle,uuid,time 5 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#获取相对路径转为绝对路径赋于变量 6 sys.path.append(BASE_DIR)#增加环境变量 7 8 9 from cfg import config 10 11 from core import id_classes 12 13 #基础类 14 class BasisClass(object):#基础类 15 def save(self): 16 file_dir=os.path.join(self.file_path,str(self.ID))#拼接文件路径 17 pickle.dump(self,open(file_dir,'wb'))#序列化到文件 18 19 @classmethod 20 def open_file_list(cls):#传入当前类 21 list_l=[]#定义一个列表 22 for file in os.listdir(cls.file_path):#循环
输出对应目录下的文件 23 file_dir=os.path.join(cls.file_path,file)##拼接文件路径 24 list_l.append(pickle.load(open(file_dir,'rb')))#反序列化,追加到列表 25 return list_l#返回列表 26 27 #管理员类 28 class Admin(BasisClass): 29 file_path=config.ADMIN_DIR#管理员路经变量 30 def __init__(self,user,pwd): 31 self.ID=id_classes.Admin_id(self.file_path)#自动生成唯一ID 32 self.USER=user 33 self.PWD=pwd 34 self.create_time=time.strftime('%Y-%m-%d %H:%M:%S')#创建的时间 35 @staticmethod 36 def login(name,pas): 37 try: 38 for obj in Admin.open_file_list(): 39 if obj.USER == name and obj.PWD == pas: 40 tag=True 41 error='' 42 data='