(3)有5个学生,每个学生有3门课的成绩,从键盘输入数据(包括学号、姓名、31门课成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放到文件student.dat中。
时间: 2024-01-04 22:02:20 浏览: 52
以下是Python代码实现:
```python
# 定义学生类
class Student:
def __init__(self, id, name, scores):
self.id = id
self.name = name
self.scores = scores
def get_average_score(self):
return sum(self.scores) / len(self.scores)
# 输入学生信息
students = []
for i in range(5):
id = input("请输入第{}个学生的学号:".format(i+1))
name = input("请输入第{}个学生的姓名:".format(i+1))
scores = []
for j in range(3):
score = float(input("请输入{}的第{}门课的成绩:".format(name, j+1)))
scores.append(score)
student = Student(id, name, scores)
students.append(student)
# 计算平均成绩并写入文件
with open("student.dat", "w") as f:
for student in students:
average_score = student.get_average_score()
line = "{}\t{}\t{}\t{}\t{}\t{}\n".format(student.id, student.name, student.scores[0], student.scores[1], student.scores[2], average_score)
f.write(line)
```
运行结果:
```
请输入第1个学生的学号:001
请输入第1个学生的姓名:张三
请输入张三的第1门课的成绩:85
请输入张三的第2门课的成绩:90
请输入张三的第3门课的成绩:95
请输入第2个学生的学号:002
请输入第2个学生的姓名:李四
请输入李四的第1门课的成绩:75
请输入李四的第2门课的成绩:80
请输入李四的第3门课的成绩:85
请输入第3个学生的学号:003
请输入第3个学生的姓名:王五
请输入王五的第1门课的成绩:90
请输入王五的第2门课的成绩:95
请输入王五的第3门课的成绩:100
请输入第4个学生的学号:004
请输入第4个学生的姓名:赵六
请输入赵六的第1门课的成绩:80
请输入赵六的第2门课的成绩:85
请输入赵六的第3门课的成绩:90
请输入第5个学生的学号:005
请输入第5个学生的姓名:钱七
请输入钱七的第1门课的成绩:70
请输入钱七的第2门课的成绩:75
请输入钱七的第3门课的成绩:80
```
student.dat 文件内容:
```
001 张三 85.0 90.0 95.0 90.0
002 李四 75.0 80.0 85.0 80.0
003 王五 90.0 95.0 100.0 95.0
004 赵六 80.0 85.0 90.0 85.0
005 钱七 70.0 75.0 80.0 75.0
```