<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了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("tt1、錄入學生資訊") print("tt2、查詢學生資訊") print("tt3、刪除學生資訊") print("tt4、修改學生資訊") print("tt5、排序") print("tt6、統計學生人數") print("tt7、顯示所有學生資訊") print("tt0、退出系統") 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()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45