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()
效果圖
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。