網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)_python
作者:張登輝的奇妙旅程 ? 更新時(shí)間: 2022-04-28 編程語(yǔ)言本文實(shí)例為大家分享了python實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
需求:
代碼:
import os filename = 'student.txt' def main(): ? ? while True: ? ? ? ? menu() ? ? ? ? choice = int(input("請(qǐng)選擇:")) ? ? ? ? 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("====================學(xué)生成績(jī)管理系統(tǒng)=========================") ? ? print("======================功能菜單==============================") ? ? print("\t\t1、錄入學(xué)生信息") ? ? print("\t\t2、查找學(xué)生信息") ? ? print("\t\t3、刪除學(xué)生信息") ? ? print("\t\t4、修改學(xué)生信息") ? ? print("\t\t5、排序") ? ? print("\t\t6、統(tǒng)計(jì)學(xué)生人數(shù)") ? ? print("\t\t7、顯示所有學(xué)生信息") ? ? print("\t\t0、退出系統(tǒng)") ? ? print("--------------------------------------------------------------") # 插入 def insert(): ? ? student_list=[] ? ? while True: ? ? ? ? id = input('請(qǐng)輸入ID(如1001):') ? ? ? ? if not id: ? ? ? ? ? ? break ? ? ? ? name = input('請(qǐng)輸入姓名:') ? ? ? ? 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("輸入成績(jī)無(wú)效!重新輸入!") ? ? ? ? ? ? continue ? ? ? ? student = {'id':id,'name':name,'english':english,'python':python,'java':java} ? ? ? ? student_list.append(student) ? ? ? ? answer = input("是否繼續(xù)添加信息!?:'y/n'") ? ? ? ? if answer == 'y': ? ? ? ? ? ? continue ? ? ? ? else: ? ? ? ? ? ? break ? ? # 調(diào)用save函數(shù)將其保存在文本當(dāng)中 ? ? save(student_list) ? ? print("學(xué)生信息錄入成功!") # 保存 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("請(qǐng)輸入你要查找的學(xué)生姓名:") ? ? ? ? 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("無(wú)學(xué)生信息,請(qǐng)?zhí)砑樱?) ? ? ? ? ? ? if flag: ? ? ? ? ? ? ? ? print("查詢成功") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print("查詢失敗") ? ? ? ? else: ? ? ? ? ? ? print("沒(méi)有輸入學(xué)生姓名!") ? ? ? ?? ? ? ? ? answer = input("請(qǐng)問(wèn)是否繼續(xù)查詢:y/n") ? ? ? ? if answer == "y": ? ? ? ? ? ? continue ? ? ? ? else: ? ? ? ? ? ? break # 展示個(gè)人信息 def student_show(dic): ? ? format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? print(format_title.format('ID','姓名','英語(yǔ)成績(jī)','python成績(jī)','java成績(jī)','總成績(jī)')) ? ? 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("請(qǐng)輸入要?jiǎng)h除的學(xué)生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}已經(jīng)被刪除!") ? ? ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? ? ? print(f"{student_id}沒(méi)有找到!") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print("無(wú)學(xué)生信息!") ? ? ? ? ? ? ? ? break ? ? ? ? ? ? show() ? ? ? ? ? ? answer = input("是否繼續(xù)刪除?y/n") ? ? ? ? ? ? if answer == 'y': ? ? ? ? ? ? ? ? continue ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? break ? ? ? ? else: ? ? ? ? ? ? print("請(qǐng)輸入要?jiǎng)h除的ID:") ? ? ? ? ? ? continue # 修改 ? ? ? def modify(): ? ? while True: ? ? ? ? student_id = input("請(qǐng)輸入要修改的學(xué)生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('已經(jīng)找到該學(xué)生信息,是否修改: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("無(wú)學(xué)生信息,請(qǐng)?zhí)砑?) ? ? ? ? ? ? answer = input("請(qǐng)問(wèn)是否繼續(xù)修改?y/n") ? ? ? ? ? ? if answer == "y": ? ? ? ? ? ? ? ? continue ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? break ? ? ? ? else: ? ? ? ? ? ? print("輸入錯(cuò)誤!") # 排序 ? ? ? ? ?? 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 總成績(jī):")) ? ? ? ? ? ? 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("無(wú)學(xué)生信息") ? ? ? ? format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? ? ? print(format_title.format('ID','姓名','英語(yǔ)成績(jī)','python成績(jī)','java成績(jī)','總成績(jī)')) ? ? ? ? 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("請(qǐng)問(wèn)是否繼續(xù)排序?y/n") ? ? ? ? if answer == "y": ? ? ? ? ? ? continue ? ? ? ? else: ? ? ? ? ? ? break # 總?cè)藬?shù) def total(): ? ? if os.path.exists(filename): ? ? ? ? with open(filename,'r',encoding='utf-8') as file: ? ? ? ? ? ? student_old = file.readlines() ? ? ? ? print('一共有',len(student_old),'名學(xué)生!') ? ? else: ? ? ? ? print("無(wú)人員資料") ? ? 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("沒(méi)有信息!") ? ? if len(students): ? ? ? ? format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' ? ? ? ? print(format_title.format('ID','姓名','英語(yǔ)成績(jī)','python成績(jī)','java成績(jī)','總成績(jī)')) ? ? ? ? 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("無(wú)人員信息!") ? ? import msvcrt ? ? msvcrt.getch() if __name__ == '__main__': ? ? main()
原文鏈接:https://blog.csdn.net/A444477/article/details/115464375
相關(guān)推薦
- 2023-03-01 shell耗時(shí)計(jì)算的實(shí)現(xiàn)_linux shell
- 2023-02-05 C語(yǔ)言模擬實(shí)現(xiàn)memmove的示例代碼_C 語(yǔ)言
- 2022-02-07 SecureCRT連Linux服務(wù)器,提示The remote system refused the
- 2023-04-19 清楚詳解Android?進(jìn)程間圖傳遞圖形buffer原理_Android
- 2023-01-03 利用Rust實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Ping應(yīng)用_Rust語(yǔ)言
- 2022-11-23 Python?hashlib模塊與subprocess模塊使用詳細(xì)介紹_python
- 2022-05-29 一起來(lái)看看C語(yǔ)言的預(yù)處理注意點(diǎn)_C 語(yǔ)言
- 2022-04-12 yarn:info There appears to be trouble with your ne
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支