python写管理信息系统,python 信息系统
本文主要详细介绍了Python实现的信息管理系统。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
本文分享用Python实现信息管理系统的具体代码,供大家参考。具体内容如下
项目名称=python
文件名=学生信息管理系统
作者=向日葵
导入时间
#管理员登录
gly_zm=(admin ,[1234])
#学员登录
st_dict=dict()
#课程数据
kc_dict=dict()
#选课数据
xk_dict=dict()
#记录当前登录的用户
jl_yh=无
#登录菜单页面选项
Cd_ym={1:gly(),#管理员登录
2 3360 xs(),#学生登录
3 3360 ZC XS(),#学生注册
4 3360 TC ()} #退出
#管理员主页选择
Gly_ym={1:gly_zjkc(),#添加课程
2 3360 Gly _ CKKC(),#查看课程
3 3360 Gly _ CKSY(),#查看学生
4 3360 DL _ CDJM(),#返回登录页面
5 3360 TC ()} #退出
#管理员选修选项
Gly_xk={1:gly_zjkc(),#添加课程
2 3360 Gly _ SCKC(),#删除课程
3 3360 Gly _ XGKC(),#修改课程
4 3360 Gly _ SY ()} #返回管理员主页
#管理员查看学员
Gly _ ckxy={1 : Gly _ zjxy(),#查看指定的学生
2 3360 Gly _ SY ()} #返回管理员主页
#学生主页选择
Xs_ym={1:xs_grzl(),# profile
2 3360 XS _ XGMM(),#修改密码
3 3360 XS _ CKKC(),#查看所有课程
4 3360 XS _ YXKC(),#查看所选课程
5:dl_cdjm(),#返回登录页面
6 3360 TC ()} #退出
#改进数据选择
Xs _ ws _ ZL={1 : xs _ wszl(),#完美数据
2 3360 XS _ SY ()} #学生主页
#学生选择课程
Xs_xk={1:ks_xk(),#开始选课
2 3360 XS _ SY ()} #学生主页
#登录菜单
#####################################################################################
#登录菜单页面
def dl_cdjm():
打印(“学生管理系统”)
打印( *****************************)
打印(“1,管理员登录”)
打印(“2,学生登录”)
打印( 3,学生注册)
打印(“4,安全退出”)
打印( *****************************)
选择=输入(“输入您的选项”)
options=cd_ym.get(choice, dl_cdjm())
返回评估(选项)
#管理员登录
def gly():
用户名=输入(“请输入您的账号”)
密码=输入(“请输入您的密码”)
#判断账户密码
如果用户名==gly_zm[0]和密码==gly_zm[1][0]:
#登录成功
r
eturn 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("请输入要修改的课程数据(scorecounttimesdesc)")
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("请输入你要修改的项目(phonereg_noemailaddress)")
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()
效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。