1. 定义学生成绩数据结构,然后录入学生成绩并写入文件。 2.按照上面定义的学生成绩数据结构,检索指定学生的成绩信息并显示出来。
时间: 2024-05-16 20:14:29 浏览: 27
1. 学生成绩数据结构定义如下,包含学生姓名、学号、各科成绩和平均分:
```python
class Student:
def __init__(self, name, student_id, math, english, science):
self.name = name
self.student_id = student_id
self.math = math
self.english = english
self.science = science
def average(self):
return (self.math + self.english + self.science) / 3
```
录入学生成绩并写入文件的代码如下:
```python
students = []
while True:
name = input("请输入学生姓名:")
if not name:
break
student_id = input("请输入学号:")
math = int(input("请输入数学成绩:"))
english = int(input("请输入英语成绩:"))
science = int(input("请输入科学成绩:"))
student = Student(name, student_id, math, english, science)
students.append(student)
with open("students.txt", "w") as f:
for student in students:
f.write("{},{},{},{},{}\n".format(student.name, student.student_id, student.math, student.english, student.science))
```
这段代码会循环输入每个学生的姓名、学号和各科成绩,然后将每个学生的信息写入文件 "students.txt" 中。
2. 检索指定学生的成绩信息并显示出来的代码如下:
```python
def search_student(student_id):
with open("students.txt", "r") as f:
for line in f:
name, id, math, english, science = line.strip().split(",")
if id == student_id:
student = Student(name, id, int(math), int(english), int(science))
return student
return None
student_id = input("请输入要查询的学生学号:")
student = search_student(student_id)
if student:
print("学生姓名:", student.name)
print("学生学号:", student.student_id)
print("数学成绩:", student.math)
print("英语成绩:", student.english)
print("科学成绩:", student.science)
print("平均分:", student.average())
else:
print("未找到该学生!")
```
这段代码会读取文件 "students.txt" 中的每行数据,如果找到目标学生,则创建一个 Student 对象并返回。如果没有找到目标学生,则返回 None。接着将查询到的学生信息展示出来。