#登录

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学生选课系统相关推荐

  1. c语言课程描述英文版,c语言学生选课系统(国外英文资料).doc

    c语言学生选课系统(国外英文资料) c语言学生选课系统(国外英文资料) # include < stdio, h > # include < string. H > # inc ...

  2. 学生选课系统 数据库课程设计

    数据库课程设计报告 设计题目         学生选课系统 专    业         计算机科学与技术 班    级         计1101 学    号 姓    名        寸利芳 ...

  3. 大学生数据库课程设计之学生选课系统(一个超级简单的系统)

    大学数据库课程设计–一个简单的学生选课系统 一.系统简介 一个超级简单的学生选课系统,使用Windows窗体设计界面,使用C#语言实现各种功能,数据库使用的是SQL.由于时间原因,做的非常仓促,系统中 ...

  4. (附源码)mysql+ssm学生选课系统 毕业设计 170920

     摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前 ...

  5. ssm+mysql+ssm学生选课系统 毕业设计-附源码170920

    摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前背 ...

  6. 学生选课系统的设计与实现

    技术:Java.JSP等 摘要: 随着网络和计算机的迅速快捷发展和普及,由于各各行业的业务需求,各各高校因为要高效的管理学生信息和降低信息上的错误,便利用计算机技术纷纷建立C/S或者B/S结构的学生管 ...

  7. 基于SSM的学生选课系统

    数据库课程设计总结记录.学生选课系统,分为学生端和教师端,学生端和管理员端,学生端可以查看学生个人信息,查看课程成绩.查看课表.选课和退课:教师端可以查看个人信息.创建课程.课程管理.对课程的学生管理 ...

  8. python最简单选课系统作业_python之路——作业:学生选课系统

    一.作业要求: 选课系统: 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go ...

  9. python开发项目:学生选课系统

    程序要求: 1.创建北京.上海两所学校(分析:通过学校类实例化两个学校实例) 2.创建Linux.python.go三个课程,Linux\go在北京开,Linux在上海开(创建Linux.python ...

最新文章

  1. 初识聚类算法:K均值、凝聚层次聚类和DBSCAN 转载的聚类总结
  2. 九度OJ 1336:液晶屏裁剪 (GCD)
  3. Jenkins执行批处理文件失败
  4. ACM/ICPC 集:
  5. 图解TCPOP-SMTP
  6. 零基础的同学看过来,如何系统学习前端,保证让你不亏
  7. Javascript鼠标键盘事件
  8. zabbix常见报错
  9. SqlServer根据表中ID加序号
  10. pwnablekr-asm-seccomp-sandbox
  11. @interface List
  12. 关于快递查询接口的实现
  13. PHP Class - 图片水印
  14. IOS实现应用内打开第三方地图app进行导航
  15. 华为python673集_实现Redis Cluster并实现Python链接集群
  16. VS配色方案你值得拥有
  17. 平面Photoshop制作精致的早餐油条…
  18. mac文件无操作权限,mac提示您没有权限来打开文稿,请联系您的电脑或网络管理员
  19. python递归版算阶乘算法
  20. 考研到底有多累?有人心累,有人很快乐

热门文章

  1. bll调用mysql存储过程_SQL Server的存储过程或自定义函数调用Com组件
  2. 高斯低通滤波 matlab_一维和二维高斯函数及其一阶和二阶导数
  3. 安装erlang没有bin文件夹_RabbitMQ安装教程
  4. 计算机应用基础复制3,计算机应用基础3(答案)
  5. Xcode安装及卸载
  6. HEVC---CompressCU 函数解析
  7. 网易云课堂微专业测试工程师 来源bilibili
  8. php自动关机代码,vb下的恶搞关机程序
  9. 31岁零基础转行软件测试,现已成功入职月薪14K+
  10. 一个杯子帮你理解软件测试