当前位置: 首页 > news >正文

期末代码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  模块)

 

需要其他案例的代码或功能扩展,可随时告诉我!

相关文章:

  • iptables的基本选项及概念
  • 串 Part 1
  • 数据链路层(MAC 地址)
  • Gemini 解释蓝图节点的提示词
  • STC单片机与淘晶驰串口屏通讯例程之04【密码登录与修改】
  • 有哪些场景不适合使用Java反射机制
  • 基于C++实现的深度学习(cnn/svm)分类器Demo
  • H3C无线控制器自动信道功率调整典型配置实验
  • 数据结构小扫尾——栈
  • JAVA:使用 Maven Assembly 创建自定义打包的技术指南
  • Kubernetes(k8s)学习笔记(七)--KubeSphere 最小化安装
  • 音频感知动画新纪元:Sonic让你的作品更生动
  • 矩阵置零(中等)
  • 五一假期集训【补题】
  • 研0大模型学习(第12天)
  • 【C++】智能指针RALL实现shared_ptr
  • android-ndk开发(1): 搭建环境
  • 基于SpringBoot的漫画网站设计与实现
  • flink rocksdb状态说明
  • 组合两个表 --- MySQL [Leetcode 题目详解]
  • 宋涛就许历农逝世向其家属致唁电
  • 中国驻旧金山总领馆:领区发生旅行交通事故,有中国公民伤亡
  • 用小型核反应堆给数据中心供电,国内企业正在开展项目论证
  • 体坛联播|曼联一只脚迈进欧联杯决赛,赵心童4比4奥沙利文
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 中国人保不再设监事会,国寿集团未再设置监事长职务