好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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()

效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

查看更多关于Python实现信息管理系统的详细内容...

  阅读:71次