python课程典范选优_python学生选课系统
#登录
importsysimportosfrom core importauthfrom conf importsettingsimportpickleimporthashlibdef md5(arg): #这是加密函数,将传进来的函数加密
md5_pwd = hashlib.md5(bytes('123', encoding='utf-8'))
md5_pwd.update(bytes(arg, encoding='utf-8'))return md5_pwd.hexdigest() #返回加密的数据
classDie:defshow_select_courese(self):
with open(settings.courseinfo,'rb') as f:whileTrue:try:
obj=pickle.load(f)print('课程名字:%s,课程价格:%s,课程周期:%s,教导老师:%s' %(obj.name, obj.price, obj.period, obj.tearch))exceptEOFError:break
classCourse:def __init__(self,name,price,period,tearch):
self.name=name
self.price=price
self.period=period
self.tearch=tearchclassStudent:
operat_list= [('查看可选课程','show_courese'),('选择课程','choose_course'),('查看已选课程','show_select_courese'),('退出','exit')]
courses_list1=[]def __init__(self,name):
self.name=namedefshow_courese(self):
Die.show_select_courese(self.name)defchoose_course(self):
Die.show_select_courese(self.name)
with open(settings.select_course,'ab') as f1:
cours= input('请选择要学习课程名字:')if cours inStudent.courses_list1:print('课程已存在')else:
Student.courses_list1.append(cours)
pickle.dump({self.name: Student.courses_list1}, f1)print('用户%s,添加课程%s成功' %(self.name, cours))#pickle.dump({ret['user']:Student.courses_list1},f1)
#print('用户%s,添加课程%s成功'%(ret['user'],cours))
defshow_select_courese(self):
with open(settings.select_course,'rb') as f1:whileTrue:try:
obj=pickle.load(f1)print(obj)exceptEOFError:break
defexit(self):
exit('欢迎再来')classManager(Die):
operat_list= [('创建课程', 'create_course'),
('创建学生', 'create_student'),
('查看可选课程', 'show_select_course'),
('查看所有学生', 'show_select_student'),
('查看所有学生和已选课程', 'show_stu_course'),
('创建讲师', 'create_tearch'),
('为讲师指定班级', 'tearch_grade'),
('创建班级', 'create_grade'),
('为学生指定班级', 'select_stu_grade'),
('退出', 'exit')]def __init__(self,name):
self.name=namedefcreate_course(self):
name= input('请输入课程:')
price= input('价格:')
period= input('周期:')
tearch= input('tearch:')
course=Course(name,price,period,tearch)
with open(settings.courseinfo,'ab') as f:
pickle.dump(course,f)print('课程创建成功')defcreate_student(self):
user= input('请输入创建的学生名字:')
pwd= input('请输入密码:')
ret= input('输入学生的类别,例如Student:')if ret == 'Student':
course= '\n%s|%s|%s'%(user,md5(pwd),ret)
with open(settings.userinfo,'a') as f:
f.write('%s'%course)print('%s创建成功'%user)else:print('您输入的不是Student')defshow_select_course(self):
Die.show_select_courese(self.name)defshow_select_student(self):
with open(settings.userinfo,'r') as f:for i inf:
name,pwd,identify= i.strip().split('|')if identify == 'Manager' or identify == 'Tearch':pass
else:print(name)defshow_stu_course(self):
with open(settings.select_course,'rb') as f1:whileTrue:try:
obj=pickle.load(f1)for x,y inobj.items():print('用户%s一共学习了%s课程'%(x,y))#print(obj)
exceptEOFError:break
defcreate_tearch(self):
user= input('请输入创建的讲师名字:')
pwd= input('请输入密码:')
ret= input('输入讲师的类别,例如Tearch:')if ret == 'Tearch':
course= '\n%s|%s|%s'%(user,md5(pwd),ret)
with open(settings.userinfo,'a') as f:
f.write('%s'%course)print('%s老师创建成功'%user)else:print('您输入的不是Student')deftearch_grade(self):
grade_list=[]
with open(settings.userinfo,'r') as f:for line inf:
name,pwd,identify= line.strip().split('|')
with open(settings.gradeinfo,'rb') as f1:
obj=pickle.load(f1)
grade_list.append(obj)if identify == 'Tearch':print('可以为%s老师分配班级有\n(%s)班'%(name,obj))print('-------------')
grade= int(input('请输入班级号'))
with open(settings.tearch_grade,'ab') as f2:
pickle.dump({name:grade_list},f2)print('%s老师已经为%s班的讲师'%(name,grade))defcreate_grade(self):
grade= input('请输入您要创建的班级号')
with open(settings.gradeinfo,'ab') as f:
pickle.dump(grade,f)print('%s号班级已经创建成功'%grade)defselect_stu_grade(self):
stu_grade=[]
with open(settings.userinfo,'r') as f:
with open(settings.gradeinfo,'rb') as f1:
obj=pickle.load(f1)for line inf:
name, pwd, identify= line.strip().split('|')if identify == 'Manager' or identify == 'Tearch':pass
else:print('请为下面(%s)学生选择班级,\n可选班级有(%s)号班级\n'%(name,obj))
ret= input('请输入要选择的班级号')#stu_grade.append('ret')
with open(settings.student_grade,'ab') as f3:
pickle.dump({name:ret},f3)print('学生%s已经加入到%s班级'%(name,ret))defexit(self):
exit('欢迎下次再来')classTearch(Die):
operat_list= [('查看所有课程', 'select_course'),
('查看所教班级', 'select_grade'),
('查看班级中学生', 'select_grade_stu'),
('退出', 'exit')]def __init__(self,name):
self.name=namedefselect_course(self):
Die.show_select_courese(self.name)defselect_grade(self):
with open(settings.tearch_grade,'rb') as f:
obj=pickle.load(f)for x,y inobj.items():print('%s老师交的班级有%s'%(x,y))defselect_grade_stu(self):
with open(settings.student_grade,'rb') as f:
obj=pickle.load(f)for x,y inobj.items():print('%s号班级里一共有%s位学生'%(y,x))defstart():
ret=auth.login()if ret['identify']:
cls= getattr(sys.modules[__name__],ret['identify'])
obj= cls(ret['user'])whileTrue:for index,i in enumerate(cls.operat_list,1):print(index,i[0])
ind= int(input('please num'))print('----------------')
func= cls.operat_list[ind-1][1]
getattr(obj,func)()print('----------------')
python课程典范选优_python学生选课系统相关推荐
- c语言课程描述英文版,c语言学生选课系统(国外英文资料).doc
c语言学生选课系统(国外英文资料) c语言学生选课系统(国外英文资料) # include < stdio, h > # include < string. H > # inc ...
- 学生选课系统 数据库课程设计
数据库课程设计报告 设计题目 学生选课系统 专 业 计算机科学与技术 班 级 计1101 学 号 姓 名 寸利芳 ...
- 大学生数据库课程设计之学生选课系统(一个超级简单的系统)
大学数据库课程设计–一个简单的学生选课系统 一.系统简介 一个超级简单的学生选课系统,使用Windows窗体设计界面,使用C#语言实现各种功能,数据库使用的是SQL.由于时间原因,做的非常仓促,系统中 ...
- (附源码)mysql+ssm学生选课系统 毕业设计 170920
摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前 ...
- ssm+mysql+ssm学生选课系统 毕业设计-附源码170920
摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前背 ...
- 学生选课系统的设计与实现
技术:Java.JSP等 摘要: 随着网络和计算机的迅速快捷发展和普及,由于各各行业的业务需求,各各高校因为要高效的管理学生信息和降低信息上的错误,便利用计算机技术纷纷建立C/S或者B/S结构的学生管 ...
- 基于SSM的学生选课系统
数据库课程设计总结记录.学生选课系统,分为学生端和教师端,学生端和管理员端,学生端可以查看学生个人信息,查看课程成绩.查看课表.选课和退课:教师端可以查看个人信息.创建课程.课程管理.对课程的学生管理 ...
- python最简单选课系统作业_python之路——作业:学生选课系统
一.作业要求: 选课系统: 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go ...
- python开发项目:学生选课系统
程序要求: 1.创建北京.上海两所学校(分析:通过学校类实例化两个学校实例) 2.创建Linux.python.go三个课程,Linux\go在北京开,Linux在上海开(创建Linux.python ...
最新文章
- 初识聚类算法:K均值、凝聚层次聚类和DBSCAN 转载的聚类总结
- 九度OJ 1336:液晶屏裁剪 (GCD)
- Jenkins执行批处理文件失败
- ACM/ICPC 集:
- 图解TCPOP-SMTP
- 零基础的同学看过来,如何系统学习前端,保证让你不亏
- Javascript鼠标键盘事件
- zabbix常见报错
- SqlServer根据表中ID加序号
- pwnablekr-asm-seccomp-sandbox
- @interface List
- 关于快递查询接口的实现
- PHP Class - 图片水印
- IOS实现应用内打开第三方地图app进行导航
- 华为python673集_实现Redis Cluster并实现Python链接集群
- VS配色方案你值得拥有
- 平面Photoshop制作精致的早餐油条…
- mac文件无操作权限,mac提示您没有权限来打开文稿,请联系您的电脑或网络管理员
- python递归版算阶乘算法
- 考研到底有多累?有人心累,有人很快乐