Python实现信息管理系统
作者:凋谢的向日葵 发布时间:2022-10-08 22:28:39
标签:python,信息,管理系统
本文实例为大家分享了Python实现信息管理系统的具体代码,供大家参考,具体内容如下
"""
项目名称 = 'python'
文件名= '学生信息管理系统'
作者 = '向日葵'
"""
import time
# 管理员登录
gly_zm = ("admin",["1234"])
# 学员登录
st_dict = dict()
# 课程数据
kc_dict = dict()
# 选课数据
xk_dict = dict()
# 记录当前登录的用户
jl_yh = None
# 登录菜单页面选项
cd_ym = {"1":"gly()", # 管理员登录
"2":"xs()", # 学生登录
"3":"xs_zc()", # 学生注册
"4":"tc()"} # 退出
# 管理员首页选择
gly_ym = {"1":"gly_zjkc()", # 增加课程
"2":"gly_ckkc()", # 查看课程
"3":"gly_cksy()", # 查看学员
"4":"dl_cdjm()", # 返回登录页面
"5":"tc()"} # 退出
# 管理员选课选项
gly_xk = {"1":"gly_zjkc()", # 增加课程
"2":"gly_sckc()", # 删除课程
"3":"gly_xgkc()", # 修改课程
"4":"gly_sy()"} # 返回管理员首页
# 管理员查看学员
gly_ckxy = {"1":"gly_zjxy()", # 查看指定学生
"2":"gly_sy()"} # 返回管理员首页
# 学生首页选择
xs_ym = {"1":"xs_grzl()", # 个人资料
"2":"xs_xgmm()", # 修改密码
"3":"xs_ckkc()", # 查看所有课程
"4":"xs_yxkc()", # 查看已选课程
"5":"dl_cdjm()", # 返回登录页面
"6":"tc()"} # 退出
# 完善资料选择
xs_ws_zl = {"1":"xs_wszl()", # 完善资料
"2":"xs_sy()"} # 学生首页
# 学生选课
xs_xk = {"1":"ks_xk()", # 开始选课
"2":"xs_sy()"} # 学生首页
# 登录菜单
#####################################################################################
# 登录菜单页面
def dl_cdjm():
print(" 学生管理系统")
print("*******************************************")
print(" 1、管理员登录")
print(" 2、学生登录")
print(" 3、学生注册")
print(" 4、安全退出")
print("*******************************************")
choice = input("输入你的选项")
options = cd_ym.get(choice,"dl_cdjm()")
return eval(options)
# 管理员登录
def gly():
username = input("请输入你的账号")
password = input("请输入你的密码")
# 判断账号密码
if username == gly_zm[0] and password == gly_zm[1][0]:
# 登录成功
return gly_sy()
else:
input("账号或密码错误,按任意键返回")
return dl_cdjm()
# 学生登录
def xs():
global jl_yh
username = input("请输入你的账号")
password = input("请输入你的密码")
# 判断账号
if username in st_dict:
# 判断密码
if password == st_dict.get(username).get("password"):
# 登录成功,记录学员
jl_yh = st_dict.get(username)
return xs_sy()
else:
input("账号或密码输入有误,按任意键返回登录菜单")
return dl_cdjm()
else:
input("账号不存在,按任意键返回登录菜单")
return dl_cdjm()
# 学生注册
def xs_zc():
# 判断账号
username = input("请输入你的账号")
if username in st_dict:
input("账号已存在,请重新输入")
return xs_zc()
# 判断密码
password = input("请输入你的密码")
confirm = input("请确认密码:")
if password != confirm:
input("两次密码不同,请重新输入")
return xs_zc()
# 创建用户注册
user = {"username": username, "password": password,
"email": None, "phone": None, "address": None,
"reg_no": None, "gender": None, "age": None}
# 添加
st_dict[username] = user
input("注册成功,按任意键返回主菜单")
return dl_cdjm()
# 安全退出
def tc():
"""退出系统"""
input("即将退出,按任意键继续")
for i in range(3):
print(f"系统将在{3-i}s退出")
time.sleep(1)
exit(1)
# 管理员菜单
#######################################################################################
def gly_sy():
"""管理员首页"""
print(" 学员管理系统-管理员首页")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
print(" 1. 增加课程")
print(" 2. 查看课程")
print(" 3. 查看学员")
print(" 4. 返回登录菜单")
print(" 5. 安全退出")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
choice = input("请输入选项:")
options = gly_ym.get(choice,"gly_sy()")
return eval(options)
# 增加课程
def gly_zjkc():
name = input("请输入课程")
if name in kc_dict:
res = input("课程已存在,请录入其他课程。按任意键继续(Q返回首页)").strip()
if res.upper() == "Q":
return gly_sy()
teacher = input("请输入课程讲师:").strip()
score = input("请输入课程学分:").strip()
count = input("请输入学习人数上限:").strip()
times = input("请输入课程学时:").strip()
desc = input("请输入课程描述:").strip()
clazz = {"name": name, "score": score, "count": count, 'selected': 0,
"times": times, "desc": desc, "teacher": teacher}
# 注册课程
kc_dict[name] = clazz
input("录入完成,按任意键继续")
return gly_sy()
# 查看课程
def gly_ckkc():
print("课程名称\t课程学时\t课程学分\t课程讲师\t课程描述")
for clazz in kc_dict.values():
print(f"{clazz['name']}\t{clazz['times']}\t{clazz['score']}\
\t{clazz['teacher']}\t{clazz['desc']}")
chonic = input("\n共有上述课程、请选择(1、增加课程 2、删除课程 3、修改课程 4、返回首页):")
return eval(gly_xk.get(chonic, "gly_ckkc()"))
# 删除课程
def gly_sckc():
name = input("请选择你要删除的课程名称")
if name in kc_dict:
res = input("请确认是否删除课程(Y确认)")
if res.lower() == "y":
kc_dict.pop(name)
input("删除完成")
return gly_ckkc()
else:
res = input("没有这门课,按任意键重新输入(Q返回课程列表")
if res.lower() == "q":
return gly_ckkc()
return gly_sckc()
# 修改课程
def gly_xgkc():
name = input("请输入你要修改的课程名称")
choice = input("请输入要修改的课程数据(score|count|times|desc)")
if choice == "score":
score = input("请输入新的学分")
kc_dict[name]["score"] = score
elif choice == "count":
count = input("请输入新的人数上限")
kc_dict[name]["count"] = count
elif choice == "times":
times = input("请输入新的课程课时")
kc_dict[name]["times"] = times
elif choice == "desc":
desc = input("请输入新的课程描述")
kc_dict[name]["desc"] = desc
input("修改完成,按任意键返回查看课程页面")
return gly_ckkc()
# 查看学员
def gly_cksy():
print("会员账号\t联系邮箱\t联系电话\t性别")
for student in st_dict.values():
print(f"{student['username']}\t{student.get('email', '待完善')}\
\t{student.get('phone', '待完善')}\t{student.get('gender', '待完善')}\t")
choice = input("\n所有学员信息展示完成,(1-查看指定学员详细信息,输入2-返回管理员首页)")
return eval(gly_ckxy.get(choice,"gly_sy()"))
def gly_zjxy():
"""查看某个指定会员"""
username = input("请输入学员账号:")
if username in st_dict:
student = st_dict[username]
# 展示学员信息
print("***************************************")
print(f" 学员账号:{student.get('username')}")
print(f" 学员手机:{student.get('phone')}")
print(f" 学员学分:{student.get('score')}")
print(f" 学员学时:{student.get('times')}")
print(f" 学员家庭地址:{student.get('address')}")
print(f" 学员邮箱:{student.get('email', '待完善')}")
print("****************************************")
input("展示完成,按任意键返回学员列表")
return gly_cksy()
else:
res = input("没有这个学员,按任意键重新输入(Q返回管理员首页)")
if res.upper() == "Q":
return gly_sy()
return gly_zjxy()
# 会员菜单
##################################################################################
# 学生首页
def xs_sy():
print(" 学员管理系统-学员首页")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
print(" 1. 查看个人资料")
print(" 2. 修改登录密码")
print(" 3. 查看所有课程")
print(" 4. 查看已选课程")
print(" 5. 返回登录菜单")
print(" 6. 安全退出")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
choice = input("请输入您的选项:")
return eval(xs_ym.get(choice,"xs_sy()"))
# 查看个人资料
def xs_grzl():
"""查看个人资料"""
print("#####################")
print(f" 账号:{jl_yh.get('username')}")
print(f" 性别:{jl_yh.get('gender', '待完善')}")
print(f" 年龄:{jl_yh.get('age', '待完善')}")
print(f" 手机:{jl_yh.get('phone', '待完善')}")
print(f" 身份证:{jl_yh.get('reg_no', '待完善')}")
print(f" 邮箱:{jl_yh.get('email', '待完善')}")
print(f" 地址:{jl_yh.get('address', '待完善')}")
print("#####################")
res = input("\n信息展示完成,(1-完善个人资料;2-返回学员首页)")
return eval(xs_ws_zl.get(res,"xs_grzl()"))
# 完善资料
def xs_wszl():
choic = input("请输入你要修改的项目(phone|reg_no|email|address)")
if choic == "phone":
phone = input("请输入你的手机号")
jl_yh["phone"] = phone
elif choic == "reg_no":
reg_no = input("请输入你的身份证")
jl_yh["reg_no"] = reg_no
elif choic == "email":
email = input("请输入你的邮箱")
jl_yh["email"] = email
elif choic == "address":
address = input("请输入你的地址")
jl_yh["address"] = address
input("修改完成,按任意键查看")
return xs_grzl()
# 修改登录密码
def xs_xgmm():
input("即将修改,请确认周围安全,按任意键继续")
old_password = input("请输入旧密码")
if old_password != jl_yh.get("password"):
input("密码错误")
return dl_cdjm()
new_password = input("请输入新的密码")
new_mima = input("请确认密码")
if new_password != new_mima:
input("两次密码输入不一致,请重新修改")
return xs_sy()
jl_yh["password"] = new_password
input("密码修改成功")
return dl_cdjm()
# 查看所有课程
def xs_ckkc():
print("课程名称\t课程学时\t课程学分\t课程讲师\t课程描述")
for clazz in kc_dict.values():
print(f"{clazz['name']}\t{clazz['times']}\t{clazz['score']}\
\t{clazz['teacher']}\t{clazz['desc']}")
choice = input("\n共有上述课程,请选择您的操作(1-开始选课;2-返回首页):")
return eval(xs_xk.get(choice, "xs_ckkc()"))
# 开始选课
def ks_xk():
name = input("请输入要选择的课程名称:")
if name in kc_dict:
# 开始选课
if int(kc_dict[name]["selected"]) < int(kc_dict[name]["count"]):
xk_dict[jl_yh.get("username")][name] = kc_dict[name].copy()
xk_dict[jl_yh.get("username")][name].update({"studied": 0, "status": "learning"})
# 更改课程的选课人数
kc_dict[name]['selected'] = int(kc_dict[name]['selected']) + 1
input("选择结束,按任意键返回首页")
return xs_sy()
else:
input("课程人数已满,请选择其他课程")
else:
res = input("没有这门课程,按任意键重新输入(Q返回课程列表)")
if res.lower() == "q":
return xs_ckkc()
else:
return ks_xk()
# 查看已选课程
def xs_yxkc():
my_classer = xk_dict.get(jl_yh['username'])
print("课程名称\t课程学分\t课程学时\t已学课时\t课程状态")
if my_classer != None:
for clazz in my_classer.vaiues():
print(f"{clazz['name']}\t"
f"{clazz['score']}\t"
f"{clazz['times']}\t"
f"{clazz['studied']}\t"
f"{clazz['status']}")
res = input("1-学习指定课程;2-返回首页")
if res == '1':
reso = input("请输入你要学的课程")
print("正在学习中")
time.sleep(3)
print('学习完成')
my_classer[reso]['studied'] += 1
return xs_sy()
else:
input("当前用户还没有选择任何课程,按任意键返回首页")
return xs_sy()
# 程序运行入口
dl_cdjm()
效果图
来源:https://blog.csdn.net/weixin_46229151/article/details/104202567
0
投稿
猜你喜欢
- 这篇文章主要介绍了python列表推导式入门学习解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- python输入错误怎么删除?python常用的输入函数raw_input()在输入的过程中如果输错了,不能像在命令行下那样backspac
- EM算法实例通过实例可以快速了解EM算法的基本思想,具体推导请点文末链接。图a是让我们预热的,图b是EM算法的实例。这是一个抛硬币的例子,H
- 目录楔子faker使用方法基本使用地理信息类基础信息类计算机基础、Internet信息类网络基础信息类浏览器信息类数字类文本、加密类时间信息
- 搭建lnmp完lnmp环境后,测试时出现502报错,看到这个问题,我立刻想到是php-fpm没有起来,但是我用 ps -ef | grep
- 一.基于纹理背景的图像分割该部分主要讲解基于图像纹理信息(颜色)、边界信息(反差)和背景信息的图像分割算法。在OpenCV中,GrabCut
- 有过网页制作经验的朋友一定知道:一般来讲,把表格的边框定义为1px时,即border=1,而实际上是2
- 数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……方法一以下为引用的内容:declare
- 在我的前一篇教程《九宫格基本布局》中,我介绍了用相对定位加绝对定位的方法来制作九宫格的基本布局。这是一种比较符合人们惯性思维的方法,好像制作
- 呵呵,这几天沉溺于灌水,发现转贴的时候真的是很不方便,文字、图形、颜色、连接,如果都转过来真的是满费劲的,于是就写了一个小东西,简陋的很,不
- 循环语句是一种常用的控制结构,在 Go 语言中,除了 for 关键字以外,还有一个 range 关键
- 之前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 CSS 中要垂直居中,多数是在有高度的情况下,或者容器高度不定的情况下才用,看
- 这篇文章主要介绍了Python input函数使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一、写在前面作为一名测试,有时候经常会遇到需要录屏记录自己操作,方便后续开发同学定位。以前都是用ScreenToGif来录屏制作成动态图,偶
- 1. 前言熟悉 Django 的朋友应该知道,我们可以通过「 inspectdb 」命令将数据库表反向生成 Model 并写入到文件中去比如
- 有这样一个要求,它要创建一个SQL Server查询,其中包括基于事件时刻的累计值。典型的例子就是一个银行账户,因为你每一次都是在不同的时间
- 这不是什么原创,是我跟据OReilly.JavaScript.The.Definitive.Guide.5th.Edition.Aug.20
- 通过phpmyadmin连接mysql数据库时提示:“2003 无法登录 MySQL服务器”。。。很明显这是没有启动mysql服务,右击我的
- 如下所示:url = u'http://tieba.baidu.com/f?kw=权利的游戏&ie=utf-8&pn
- 前言随着人工智能的日益火热,计算机视觉领域发展迅速,尤其在人脸识别或物体检测方向更为广泛,今天就为大家带来最基础的人脸识别基础,从一个个函数