Python实现:学生成绩管理系统设计与代码分享
132 浏览量
更新于2024-08-31
14
收藏 108KB PDF 举报
本文介绍如何使用Python编程语言实现一个简单的学生成绩管理系统,该系统具有输入存储学生信息、打印所有信息、修改信息、删除信息、按成绩排序以及查找学生信息等基本功能。系统通过读取和写入文本文件(如'students.txt')来存储数据,采用列表作为数据缓冲区。
### 1. 输入存储学生信息
系统允许用户输入学生的学号、姓名和分数,将这些信息存储到一个自定义的数据结构(如`Student`类的对象)中,并保存到名为'student'的文件中。每个学生的信息以特定格式(如:学号 姓名 成绩)保存,方便后续读取和处理。
### 2. 打印学生所有信息
设计一个打印函数,遍历存储学生信息的列表,将每个学生的学号、姓名和成绩显示在屏幕上。这可以通过循环遍历列表并调用对象的属性来实现。
### 3. 修改学生信息
首先通过查询功能查找指定学号的学生。如果找到,更新该学生的姓名或成绩;若未找到,返回提示告知用户学生不存在。查询通常涉及线性搜索,比较学号并返回对应的学生对象。
### 4. 删除学生信息
根据学号删除学生信息,首先需要找到对应的学生,然后从列表中移除。同样,这需要查询学生,找到后从列表中删除对应的`Student`对象。
### 5. 按学生成绩排序
使用插入排序算法对学生成绩进行升序排序。首先,遍历学生列表,提取每个学生的成绩,将成绩和学生对象的引用一起存入新的列表。然后,根据成绩对这个新列表进行排序,调整学生对象在原列表中的顺序。
```python
def sort_by_score(stu_list):
score_list = [(stu.score, stu) for stu in stu_list]
score_list.sort()
for i, (score, stu) in enumerate(score_list):
stu_list[i] = stu
```
### 6. 查找学生信息
通过输入学号,系统查找并显示匹配的学生信息。如果找到,输出学生的完整信息;否则,提示学号不存在。这同样涉及线性搜索。
### 7. 初始化功能
在程序启动时,系统检查'students.txt'文件是否存在学生信息。如果存在,读取文件内容,创建并初始化学生列表。如果文件为空,创建一个新的空列表用于存储用户输入的数据。
```python
def init(stu_list):
try:
with open('students.txt', 'r') as file:
for line in file:
# 解析并添加学生信息到stu_list
except FileNotFoundError:
print("文件不存在,初始化空列表")
stu_list = []
print("初始化成功!")
```
### 数据结构与文件操作
系统使用自定义`Student`类来封装学生信息,包含学号(ID)、姓名和分数等属性。文件操作使用Python内置的`open()`函数,读取时采用逐行读取和字符串分割方法,将文件内容转换为`Student`对象列表。
### 总结
这个学生成绩管理系统展示了Python基础编程技能,如文件操作、数据结构(列表和自定义类)、字符串处理以及排序算法。它提供了一个简单但实用的管理学生成绩的平台,适合初学者理解和实践Python编程。
2020-09-16 上传
2019-03-24 上传
2023-12-21 上传
2023-06-09 上传
2024-06-13 上传
2024-06-21 上传
2024-02-15 上传
2024-01-11 上传
weixin_38691055
- 粉丝: 10
- 资源: 930
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库