创建学生成绩管理系统,使用csv文件保存学生的成绩,格式内容如下: 要求系统具备以下功能:1,添加学生及成绩信息 将学生信息保存到文件中 修改和删除学生信息 查询学生信息 根据学生成绩进行排序 统计学生总人数
时间: 2024-03-24 20:37:40 浏览: 67
好的,我可以帮助你解决这个问题。这是一个比较复杂的要求,需要用到 Python 编程语言和一些常用的库。我会一步一步地为你讲解。
首先,我们需要导入 CSV 库来读写 CSV 文件。可以使用以下代码导入库:
```python
import csv
```
接下来,我们需要定义一个学生类,用于存储学生的信息,包括姓名、学号和成绩等。可以使用以下代码定义该类:
```python
class Student:
def __init__(self, name, id, score):
self.name = name
self.id = id
self.score = score
```
然后,我们需要实现以下功能:
1. 添加学生及成绩信息
可以使用以下代码将学生信息保存到 CSV 文件中:
```python
def add_student(name, id, score):
with open('students.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow([name, id, score])
```
2. 修改和删除学生信息
可以使用以下代码从 CSV 文件中读取学生信息,并对其进行修改或删除:
```python
def modify_student(id, name=None, score=None):
rows = []
with open('students.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
if row[1] == id:
if name is not None:
row[0] = name
if score is not None:
row[2] = score
rows.append(row)
with open('students.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
def delete_student(id):
rows = []
with open('students.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
if row[1] != id:
rows.append(row)
with open('students.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
```
3. 查询学生信息
可以使用以下代码从 CSV 文件中读取学生信息,并输出到控制台:
```python
def query_student(id=None, name=None, score=None):
with open('students.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
if (id is None or row[1] == id) and (name is None or row[0] == name) and (score is None or row[2] == score):
print(row)
```
4. 根据学生成绩进行排序
可以使用以下代码从 CSV 文件中读取学生信息,并按照成绩进行排序:
```python
def sort_student():
with open('students.csv', 'r') as file:
reader = csv.reader(file)
rows = [row for row in reader]
rows.sort(key=lambda x: x[2], reverse=True)
for row in rows:
print(row)
```
5. 统计学生总人数
可以使用以下代码从 CSV 文件中读取学生信息,并统计学生总人数:
```python
def count_student():
with open('students.csv', 'r') as file:
reader = csv.reader(file)
rows = [row for row in reader]
count = len(rows)
print(count)
```
以上就是一个简单的学生成绩管理系统的实现。你可以根据自己的需求修改相应的代码。
阅读全文