您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“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如何實現信息管理系統”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。