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

期末代码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.xdnf.cn/news/4050.html

相关文章:

  • 【数据结构】第八章:排序
  • 【言语理解】片段阅读之标题拟定(5)
  • ABC 404
  • TCP协议(三次握手、流量控制、拥塞控制)
  • 苹果公司正在与亚马逊支持的初创公司Anthropic展开合作
  • 解决DNS劫持问题
  • 【四人抢答器的设置mulisim14.0】2022-11-10
  • Java常用类
  • 51单片机入门教程——蜂鸣器播放天空之城
  • centos8源码安装openssl
  • Ubuntu安装编译环境
  • 使用 NGINX 实现 HTTP Basic 认证ngx_http_auth_basic_module 模块
  • Dify - Embedding Rerank
  • React状态管理
  • Java面试场景分析:从音视频到安全与风控的技术探讨
  • 怎么才能找到自己的天赋?
  • 09-24计算机考研408真题及答案
  • uniapp开发05-image标签的一些使用注意事项
  • GPIO引脚的上拉下拉以及转换速度到底怎么选
  • 使用注意力机制的seq2seq
  • Docker —— 隔离的基本操作(2)
  • ABAP 导入Excel形成内表
  • spring中的@ConfigurationProperties注解详解
  • 网星安全AWS攻防方案,重磅发布!
  • 机器学习模型训练模块技术文档
  • AVHRR中国积雪物候数据集(1980-2020年)
  • yolo 用roboflow标注的数据集本地训练 kaggle训练 comet使用 训练笔记5
  • FISCO BCOS【初体验笔记】
  • Python 闭包:函数式编程中的魔法变量容器
  • ciscn_2019_c_1