您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何用python實現簡單的學生成績管理系統的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇如何用python實現簡單的學生成績管理系統文章都會有所收獲,下面我們一起來看看吧。
需求:
代碼:
import os filename = 'student.txt' def main(): while True: menu() choice = int(input("請選擇:")) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer = input("你確定要退出嗎?y/n") if answer =='y' or answer =='Y': print("謝謝使用!") break else: continue elif choice ==1: insert() elif choice ==2: search() elif choice ==3: delete() elif choice ==4: modify() elif choice ==5: sort() elif choice ==6: total() else: show() # 菜單 def menu(): print("====================學生成績管理系統=========================") print("======================功能菜單==============================") print("\t\t1、錄入學生信息") print("\t\t2、查找學生信息") print("\t\t3、刪除學生信息") print("\t\t4、修改學生信息") print("\t\t5、排序") print("\t\t6、統計學生人數") print("\t\t7、顯示所有學生信息") print("\t\t0、退出系統") print("--------------------------------------------------------------") # 插入 def insert(): student_list=[] while True: id = input('請輸入ID(如1001):') if not id: break name = input('請輸入姓名:') if not name: break try: english=int(input("input english grade:")) python=int(input("input python grade:")) java=int(input("input java grade:")) except: print("輸入成績無效!重新輸入!") continue student = {'id':id,'name':name,'english':english,'python':python,'java':java} student_list.append(student) answer = input("是否繼續添加信息!?:'y/n'") if answer == 'y': continue else: break # 調用save函數將其保存在文本當中 save(student_list) print("學生信息錄入成功!") # 保存 def save(lst): try: stu_txt = open(filename,'a',encoding='utf-8') except: stu_txt = open(filename,'w',encoding='utf-8') for item in lst: stu_txt.write(str(item)+'\n') stu_txt.close() # 搜索 def search(): while True: student_name = input("請輸入你要查找的學生姓名:") if student_name: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: student_old = rfile.readlines() else: student_old = [] if student_old: d = {} flag = False for item in student_old: d = dict(eval(item)) if d['name'] == student_name: flag = True student_show(d) else: pass else: print("無學生信息,請添加!") if flag: print("查詢成功") else: print("查詢失敗") else: print("沒有輸入學生姓名!") answer = input("請問是否繼續查詢:y/n") if answer == "y": continue else: break # 展示個人信息 def student_show(dic): format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英語成績','python成績','java成績','總成績')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), )) # 刪除 def delete(): while True: student_id = input("請輸入要刪除的學生ID:") if student_id: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() else: student_old=[] flag = False if student_old: with open(filename,'w',encoding='utf-8') as wfile: d={} for item in student_old: d = dict(eval(item)) if d['id']!=student_id: wfile.write(str(d)+"\n") else: flag = True if flag: print(f"{student_id}已經被刪除!") else: print(f"{student_id}沒有找到!") else: print("無學生信息!") break show() answer = input("是否繼續刪除?y/n") if answer == 'y': continue else: break else: print("請輸入要刪除的ID:") continue # 修改 def modify(): while True: student_id = input("請輸入要修改的學生ID:") if student_id: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() else: student_old=[] if student_old: with open(filename,'w',encoding='utf-8') as wfile: d = {} for item in student_old: d = dict(eval(item)) if d['id'] == student_id: answer = input('已經找到該學生信息,是否修改:y/n?') flag = False if answer: d['name']=input("姓名:") d['english']=int(input("english:")) d['python']=int(input("python:")) d['java']=int(input("java:")) wfile.write(str(d)+"\n") flag = True else: wfile.write(str(d)+"\n") break else: wfile.write(str(d)+"\n") if flag: print("修改成功!") else: print("修改失敗!") else: print("無學生信息,請添加") answer = input("請問是否繼續修改?y/n") if answer == "y": continue else: break else: print("輸入錯誤!") # 排序 def sort(): while True: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() student_new = [] d={} for item in student_old: d=dict(eval(item)) student_new.append(d) asc_and_desc = int(input("怎么排序:0 升序 1 降序:")) choice = int(input("按照什么排序:1 english 2 python 3 java 0 總成績:")) if choice == 1: student_new.sort(key=lambda x:int(x['english']),reverse=asc_and_desc) elif choice == 2: student_new.sort(key=lambda x:int(x['python']),reverse=asc_and_desc) elif choice == 3: student_new.sort(key=lambda x:int(x['java']),reverse=asc_and_desc) elif choice == 0: student_new.sort(key=lambda x:int(x['english'])+int(x['python'])+int(x['java']),reverse=asc_and_desc) else: print("輸入有誤") sort() else: print("無學生信息") format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英語成績','python成績','java成績','總成績')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' for dic in student_new: print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), )) answer = input("請問是否繼續排序?y/n") if answer == "y": continue else: break # 總人數 def total(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() print('一共有',len(student_old),'名學生!') else: print("無人員資料") import msvcrt msvcrt.getch() # 展示 def show(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() d = {} students = [] for item in student_old: d = dict(eval(item)) students.append(d) else: print("沒有信息!") if len(students): format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英語成績','python成績','java成績','總成績')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' for dic in students: print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), )) else: print("無人員信息!") import msvcrt msvcrt.getch() if __name__ == '__main__': main()
關于“如何用python實現簡單的學生成績管理系統”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“如何用python實現簡單的學生成績管理系統”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。