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

Python 学生管理系统实战:从基础功能到数据持久化(附完整源码)

学生管理系统基础功能实现

学生管理系统的核心功能包括添加、删除、修改和查询学生信息。使用Python内置数据结构如字典和列表可以快速实现这些基础功能。

students = [] def add_student(): name = input("输入学生姓名: ") age = int(input("输入学生年龄: ")) student_id = input("输入学号: ") students.append({"name": name, "age": age, "id": student_id}) def show_students(): for student in students: print(f"姓名: {student['name']}, 年龄: {student['age']}, 学号: {student['id']}") def delete_student(): student_id = input("输入要删除学生的学号: ") global students students = [s for s in students if s['id'] != student_id]

数据持久化存储方案

使用JSON文件格式可以实现数据的持久化存储,确保程序关闭后数据不会丢失。Python的json模块提供了简单易用的接口。

import json def save_data(): with open('students.json', 'w') as f: json.dump(students, f) def load_data(): global students try: with open('students.json', 'r') as f: students = json.load(f) except FileNotFoundError: students = []

用户界面与交互设计

构建简单的命令行交互界面,通过while循环和条件判断实现功能选择。清晰的菜单提示能提升用户体验。

def main_menu(): print("\n学生管理系统") print("1. 添加学生") print("2. 显示所有学生") print("3. 删除学生") print("4. 退出系统") def run_system(): load_data() while True: main_menu() choice = input("请选择操作(1-4): ") if choice == '1': add_student() elif choice == '2': show_students() elif choice == '3': delete_student() elif choice == '4': save_data() break

系统功能扩展建议

考虑添加成绩管理模块,为每个学生增加科目和分数记录。可以实现成绩统计和分析功能,如计算平均分和排名。

def add_score(): student_id = input("输入学生学号: ") subject = input("输入科目名称: ") score = float(input("输入分数: ")) for student in students: if student['id'] == student_id: if 'scores' not in student: student['scores'] = {} student['scores'][subject] = score break

异常处理与输入验证

增强系统的健壮性需要添加输入验证和异常处理机制,防止无效输入导致程序崩溃。

def get_int_input(prompt): while True: try: return int(input(prompt)) except ValueError: print("请输入有效的数字!")

https://www.zhihu.com/zvideo/1994901640575214623/
https://www.zhihu.com/zvideo/1994901639455332312/
https://www.zhihu.com/zvideo/1994901639463732153/
https://www.zhihu.com/zvideo/1994901638213817222/
https://www.zhihu.com/zvideo/1994901636422866760/
https://www.zhihu.com/zvideo/1994901635860803870/
https://www.zhihu.com/zvideo/1994901635223279332/
https://www.zhihu.com/zvideo/1994901635093247206/
https://www.zhihu.com/zvideo/1994901634782892976/
https://www.zhihu.com/zvideo/1994901633855922370/
https://www.zhihu.com/zvideo/1994901633839146142/
https://www.zhihu.com/zvideo/1994901633147086093/
https://www.zhihu.com/zvideo/1994901632165622682/
https://www.zhihu.com/zvideo/1994901632312435743/
https://www.zhihu.com/zvideo/1994901631456790443/
https://www.zhihu.com/zvideo/1994901628684353568/
https://www.zhihu.com/zvideo/1994901628046815323/
https://www.zhihu.com/zvideo/1994901628222972059/
https://www.zhihu.com/zvideo/1994901625840616672/
https://www.zhihu.com/zvideo/1994901625089839369/
https://www.zhihu.com/zvideo/1994901624246789427/
https://www.zhihu.com/zvideo/1994901623433086823/
https://www.zhihu.com/zvideo/1994901622032205640/
https://www.zhihu.com/zvideo/1994901619217806544/
https://www.zhihu.com/zvideo/1994901617984700436/
https://www.zhihu.com/zvideo/1994901617535901863/
https://www.zhihu.com/zvideo/1994901614365017076/
https://www.zhihu.com/zvideo/1994901615635877935/
https://www.zhihu.com/zvideo/1994901613178003651/
https://www.zhihu.com/zvideo/1994901611789710962/
https://www.zhihu.com/zvideo/1994901611139572034/
https://www.zhihu.com/zvideo/1994901607482151535/
https://www.zhihu.com/zvideo/1994901608488788992/
https://www.zhihu.com/zvideo/1994901608060970783/
https://www.zhihu.com/zvideo/1994901606672660197/
https://www.zhihu.com/zvideo/1994901606966256910/
https://www.zhihu.com/zvideo/1994901605800236919/
https://www.zhihu.com/zvideo/1994901605355648384/
https://www.zhihu.com/zvideo/1994901604470649566/
https://www.zhihu.com/zvideo/1994901603011027800/
https://www.zhihu.com/zvideo/1994901602218308616/
https://www.zhihu.com/zvideo/1994901600947434847/
https://www.zhihu.com/zvideo/1994901599416497346/
https://www.zhihu.com/zvideo/1994901599039025393/
https://www.zhihu.com/zvideo/1994901597323539244/
https://www.zhihu.com/zvideo/1994901598573445203/
https://www.zhihu.com/zvideo/1994901598397288520/
https://www.zhihu.com/zvideo/1994901596547613356/
https://www.zhihu.com/zvideo/1994901596467905733/
https://www.zhihu.com/zvideo/1994901596677640694/

完整系统源码结构

一个完整的学生管理系统应该包含以下模块:

  • main.py: 程序入口和主循环
  • student.py: 学生数据模型和操作
  • storage.py: 数据持久化处理
  • ui.py: 用户界面和交互逻辑
# main.py示例 from storage import load_data, save_data from ui import run_system if __name__ == "__main__": load_data() run_system() save_data()
http://www.jsqmd.com/news/245392/

相关文章:

  • 【Python库和代码案例:第一课】Python 标准库与第三方库实战指南:从日期处理到 Excel 操作
  • 数独优化求解C库tdoku-lib的使用
  • AI原生应用云端推理的故障排查与恢复
  • dlx求解数独duckdb插件的编写和使用
  • 我用 XinServer 做了个文件系统,比想象简单
  • 大数据领域数据产品的安全保障策略
  • 避坑指南:通义千问2.5-7B-Instruct本地部署常见问题解决
  • 【RuoYi-SpringBoot3-Pro】:使用 Dify + AI 快速生成多数据库建表语句
  • AnimeGANv2版本回滚机制:模型更新失败应急部署教程
  • 【RuoYi-SpringBoot3-Pro】:多租户功能上手指南
  • 这份无线联网智能门锁系统清单非常专业,清晰地勾勒出了一套适用于多业态、高流动性、强管理场景的现代化出入口解决方案。这不仅是设备清单,更是一套“去中心化部署、云端化管理”的智慧运营蓝图。
  • 对象库未注册-VB6企业版控件加载不了MSCOMCTL.ocx
  • 提示工程架构师经验:如何用Prompt解决客服复杂问题?
  • 动漫生成服务SLA保障:AnimeGANv2高可用部署架构
  • go语言对phone脱敏显示
  • 通义千问2.5-7B-Instruct优化技巧:RTX 3060流畅运行指南
  • AnimeGANv2如何提高边缘清晰度?后处理滤波技术实战
  • 农业机械收割机拖拉机数据集6340张VOC+YOLO格式
  • 开源模型新选择:AnimeGANv2宫崎骏风格迁移实战指南
  • keil5安装包下载通俗解释:新手也能轻松掌握
  • AnimeGANv2优化指南:处理高分辨率图片的配置建议
  • 车辆及人数据集(汽车公交车收割机拖拉机卡车人)12819张
  • AnimeGANv2从零开始:构建二次元转换器完整流程
  • Qt 线程管理:从 QThread 到 QThreadPool
  • 物理约束机器学习赋能科学计算
  • 彻底解析Java访问修饰符:public、private、protected及默认的区别
  • AnimeGANv2代码实例:Python调用模型避坑指南
  • 一键部署通义千问2.5-7B-Instruct,AI应用开发从未如此简单
  • 手把手教程:用通义千问2.5-7B和vLLM实现代码补全功能
  • Windows 10/11 优化大师 Windows Manager