本文小编为大家详细介绍“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如何实现信息管理系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。