期末代碼Python

以下是 學生信息管理系統 的簡化版代碼示例(控制臺版本,使用文件存儲數據),包含核心功能:

?

1. 定義學生類

?

class Student:

? ? def __init__(self, sid, name, score):

? ? ? ? self.sid = sid # 學號

? ? ? ? self.name = name # 姓名

? ? ? ? self.score = score# 成績

?

? ? def to_dict(self):

? ? ? ? """轉為字典格式,方便存儲"""

? ? ? ? return {"sid": self.sid, "name": self.name, "score": self.score}

?

?

2. 數據存儲模塊(文件操作)

?

import json

?

DATA_FILE = "students.txt"

?

def save_students(students):

? ? """將學生列表保存到文件"""

? ? with open(DATA_FILE, "w", encoding="utf-8") as f:

? ? ? ? json.dump([s.to_dict() for s in students], f)

?

def load_students():

? ? """從文件加載學生列表"""

? ? try:

? ? ? ? with open(DATA_FILE, "r", encoding="utf-8") as f:

? ? ? ? ? ? data = json.load(f)

? ? ? ? ? ? return [Student(**item) for item in data]

? ? except FileNotFoundError:

? ? ? ? return []

?

?

3. 核心功能函數

?

# 初始化學生列表(從文件加載)

students = load_students()

?

def add_student():

? ? """添加學生"""

? ? sid = input("請輸入學號:")

? ? name = input("請輸入姓名:")

? ? score = float(input("請輸入成績:"))

? ? students.append(Student(sid, name, score))

? ? save_students(students)

? ? print("添加成功!")

?

def query_student():

? ? """查詢學生(按學號)"""

? ? sid = input("請輸入要查詢的學號:")

? ? for s in students:

? ? ? ? if s.sid == sid:

? ? ? ? ? ? print(f"學號:{s.sid},姓名:{s.name},成績:{s.score}")

? ? ? ? ? ? return

? ? print("未找到該學生!")

?

def update_student():

? ? """修改學生成績"""

? ? sid = input("請輸入要修改的學號:")

? ? for s in students:

? ? ? ? if s.sid == sid:

? ? ? ? ? ? new_score = float(input("請輸入新成績:"))

? ? ? ? ? ? s.score = new_score

? ? ? ? ? ? save_students(students)

? ? ? ? ? ? print("修改成功!")

? ? ? ? ? ? return

? ? print("未找到該學生!")

?

def delete_student():

? ? """刪除學生"""

? ? sid = input("請輸入要刪除的學號:")

? ? global students

? ? students = [s for s in students if s.sid != sid]

? ? save_students(students)

? ? print("刪除成功!")

?

def show_all_students():

? ? """顯示所有學生"""

? ? if not students:

? ? ? ? print("暫無學生信息!")

? ? ? ? return

? ? print("學號\t姓名\t成績")

? ? for s in students:

? ? ? ? print(f"{s.sid}\t{s.name}\t{s.score}")

?

?

4. 菜單交互

?

def main_menu():

? ? print("\n===== 學生信息管理系統 =====")

? ? print("1. 添加學生")

? ? print("2. 查詢學生")

? ? print("3. 修改成績")

? ? print("4. 刪除學生")

? ? print("5. 顯示所有學生")

? ? print("0. 退出系統")

? ? choice = input("請選擇操作(0-5):")

? ? return choice

?

if __name__ == "__main__":

? ? while True:

? ? ? ? choice = main_menu()

? ? ? ? if choice == "1":

? ? ? ? ? ? add_student()

? ? ? ? elif choice == "2":

? ? ? ? ? ? query_student()

? ? ? ? elif choice == "3":

? ? ? ? ? ? update_student()

? ? ? ? elif choice == "4":

? ? ? ? ? ? delete_student()

? ? ? ? elif choice == "5":

? ? ? ? ? ? show_all_students()

? ? ? ? elif choice == "0":

? ? ? ? ? ? print("退出系統,感謝使用!")

? ? ? ? ? ? break

? ? ? ? else:

? ? ? ? ? ? print("輸入有誤,請重新選擇!")

?

?

使用說明:

?

1.?運行代碼后,根據菜單提示輸入數字選擇功能。

2.?數據會自動保存到同目錄的 ?students.txt? 文件中,下次運行時自動加載。

3.?可擴展功能:

- 添加成績統計(平均分、最高分)

- 支持多條件查詢(如按姓名模糊查詢)

- 改用 SQLite 數據庫存儲(需引入 ?sqlite3? 模塊)

?

需要其他案例的代碼或功能擴展,可隨時告訴我!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79862.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79862.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79862.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

zotero pdf中英翻譯插件使用

最近發現一個pdf中英翻譯的神器zotero-pdf2zh,按照官方安裝教程走一遍的時候,發現一些流程不清楚的問題, 此文就是整理一些安裝需要的文件以及遇到的問題: 相關文件下載地址 Zotero 是一款免費的、開源的文獻管理工具&#xff0…

本地MySQL連接hive

1、首先需要修改MySQL的配置,允許遠程連接: # 在本地MySQL服務器上執行 sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf找到 bind-address 行,將其修改為: bind-address 0.0.0.02、在本地MySQL中創建用戶并授權(注意…

Nginx核心功能2

一:正向代理 正向代理(Forward Proxy)是一種位于客戶端和原始服務器之間的代理服務器,其主要作用是將客戶端的請求轉發給目標服務器,并將響應返回給客戶端Nginx的正向代理充當客戶端的“中間人”,代表用戶訪問外部資源…

高定電視,一場關于生活方式的覺醒

需要有自己的工作室,雇用3個以上專職模特,至少15名全職員工和20名技術工匠?; 每年都要參加巴黎高級時裝周,展示至少50款原創設計; 使用的面料必須高質量、昂貴且不同尋常,設計上注重細節和個性&#x…

用PyTorch搭建卷積神經網絡實現MNIST手寫數字識別

用PyTorch搭建卷積神經網絡實現MNIST手寫數字識別 在深度學習領域,卷積神經網絡(Convolutional Neural Network,簡稱CNN)是處理圖像數據的強大工具。它通過卷積層、池化層和全連接層等組件,自動提取圖像特征&#xff…

Tensorrt 基礎入門

什么是tensorrt? 其他廠商: Qualcomm, Hailo, google TPU tensorrt的優劣勢 使用tensorrt的pipeline tensorrt使用中存在的問題以及解決方案 tensorrt的應用場景 自動駕駛模型部署需要關注的問題: 邊端硬件資源有限 散熱(不能水冷) 實時性&…

Qt 顯示QRegExp 和 QtXml 不存在問題

QRegExp 和 QtXml 問題 在Qt6 中 已被棄用; 1)QRegExp 已被棄用,改用 QRegularExpression Qt5 → Qt6 重大變更:QRegExp 被移到了 Qt5Compat 模塊,默認不在 Qt6 核心模塊中。 錯誤類型解決方法QRegExp 找不到改用 Q…

玩玩OCR

一、Tesseract: 1.下載windows版: tesseract 2. 安裝并記下路徑,等會要填 3.保存.py文件 import pytesseract from PIL import Image def ocr_local_image(image_path):try:pytesseract.pytesseract.tesseract_cmd rD:\Programs\Tesseract-OCR\tesse…

Dify 完全指南(一):從零搭建開源大模型應用平臺(Ollama/VLLM本地模型接入實戰)》

文章目錄 1. 相關資源2. 核心特性3. 安裝與使用(Docker Compose 部署)3.1 部署Dify3.2 更新Dify3.3 重啟Dify3.4 訪問Dify 4. 接入本地模型4.1 接入 Ollama 本地模型4.1.1 步驟4.1.2 常見問題 4.2 接入 Vllm 本地模型 5. 進階應用場景6. 總結 1. 相關資源…

C++ Windows 打包exe運行方案(cmake)

文章目錄 背景動態庫梳理打包方案一、使用 Vcpkg 安裝靜態庫(關鍵基礎配置)1. 初始化 Vcpkg2. 安裝靜態庫(注意 x64-windows-static 后綴) 二、CMakeLists.txt 關鍵配置三、編譯四、驗證 不同平臺代碼兼容\_\_attribute\_\_((pack…

Java學習手冊:Hibernate/JPA 使用指南

一、Hibernate 和 JPA 的核心概念 實體(Entity) :實體是 JPA 中用于表示數據庫表的 Java 對象。通過在實體類上添加 Entity 注解,JPA 可以將實體類映射到數據庫表。例如,定義一個 User 實體類: import ja…

字符串匹配 之 拓展 KMP算法(Z算法)

文章目錄 習題2223.構造字符串的總得分和3031.將單詞恢復初始狀態所需的最短時間 II 靈神代碼模版 區別與KMP算法 KMP算法可用于求解在線性時間復雜度0(n)內求解模式串p在主串s中匹配的未知當然,由于在KMP算法中,預處理求解出了next數組,也就…

安全為上,在系統威脅建模中使用量化分析

*注:Open FAIR? 知識體系是一種開放和獨立的信息風險分析方法。它為理解、分析和度量信息風險提供了分類和方法。Open FAIR作為領先的風險分析方法論,已得到越來越多的大型組織認可。 在數字化風險與日俱增的今天,企業安全決策正面臨雙重挑戰…

游戲引擎學習第259天:OpenGL和軟件渲染器清理

回顧并為今天的內容做好鋪墊 今天,我們將對游戲的分析器進行升級。在之前的修復中,我們解決了分析器的一些敏感問題,例如它無法跨代碼重新加載進行分析,以及一些復雜的小問題。現在,我們的分析器看起來已經很穩定了。…

訊睿CMS模版常用標簽參數匯總

一、模板調用標簽 1、首頁 網站名稱:{SITE_NAME} 標題:{$meta_title}(列表頁通用) Keywords:{$meta_keywords} Description:{$meta_description}2、列表頁 迅睿cms調用本欄目基礎信息標簽代碼 當前欄目…

【C#】Buffer.BlockCopy的使用

Buffer.BlockCopy 是 C# 中的一個方法,用于在數組之間高效地復制字節塊。它主要用于操作字節數組(byte[]),但也可以用于其他類型的數組,因為它直接基于內存操作。 以下是關于 Buffer.BlockCopy 的詳細說明和使用示例&…

記一次pdf轉Word的技術經歷

一、發現問題 前幾天在打開一個pdf文件時,遇到了一些問題,在Win10下使用WPS PDF、萬興PDF、Adobe Acrobat、Chrome瀏覽器打開都是正常顯示的;但是在macOS 10.13中使用系統自帶的預覽程序和Chrome瀏覽器(由于macOS版本比較老了&am…

在Laravel 12中實現4A日志審計

以下是在Laravel 12中實現4A(認證、授權、賬戶管理、審計)日志審計并將日志存儲到MongoDB的完整方案(包含性能優化和安全增強措施): 一、環境配置 安裝MongoDB擴展包 composer require jenssegers/mongodb配置.env …

鏈表高級操作與算法

鏈表是數據結構中的基礎,但也是面試和實際開發中的重點考察對象。今天我們將深入探討鏈表的高級操作和常見算法,讓你能夠輕松應對各種鏈表問題。 1. 鏈表翻轉 - 最經典的鏈表問題 鏈表翻轉是面試中的常見題目,也是理解鏈表指針操作的絕佳練…

架構思維:構建高并發讀服務_使用懶加載架構實現高性能讀服務

文章目錄 一、引言二、讀服務的功能性需求三、兩大基本設計原則1. 架構盡量不要分層2. 代碼盡可能簡單 四、實戰方案:懶加載架構及其四大挑戰五、改進思路六、總結與思考題 一、引言 在任何后臺系統設計中,「讀多寫少」的業務場景占據主流:瀏…