有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的总、平均成绩,并计算出每人的平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stu.txt中。
时间: 2023-12-15 12:10:45 浏览: 34
学生信息管理系统,1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。
下面是一个Python的代码实现:
```python
# 定义一个学生类
class Student:
def __init__(self, id, name, score1, score2, score3):
self.id = id
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
def get_total_score(self):
return self.score1 + self.score2 + self.score3
def get_average_score(self):
return self.get_total_score() / 3
# 输入学生信息
students = []
for i in range(10):
id = input("请输入第%d个学生的学号:" % (i+1))
name = input("请输入第%d个学生的姓名:" % (i+1))
score1 = float(input("请输入第%d个学生的第1门课成绩:" % (i+1)))
score2 = float(input("请输入第%d个学生的第2门课成绩:" % (i+1)))
score3 = float(input("请输入第%d个学生的第3门课成绩:" % (i+1)))
student = Student(id, name, score1, score2, score3)
students.append(student)
# 计算总分和平均分
total_score1 = 0
total_score2 = 0
total_score3 = 0
for student in students:
total_score1 += student.score1
total_score2 += student.score2
total_score3 += student.score3
average_score1 = total_score1 / len(students)
average_score2 = total_score2 / len(students)
average_score3 = total_score3 / len(students)
# 计算每个学生的平均分
for student in students:
average_score = student.get_average_score()
print("学号:%s,姓名:%s,平均分:%0.2f" % (student.id, student.name, average_score))
# 将结果写入文件
with open("stu.txt", "w") as f:
f.write("学号\t姓名\t第1门课平均分\t第2门课平均分\t第3门课平均分\n")
for student in students:
average_score1 = student.score1 / 3
average_score2 = student.score2 / 3
average_score3 = student.score3 / 3
f.write("%s\t%s\t%0.2f\t%0.2f\t%0.2f\n" % (student.id, student.name, average_score1, average_score2, average_score3))
```
这个程序通过定义一个`Student`类来表示每个学生的信息,通过循环输入学生信息,计算总分和平均分,并计算每个学生的平均分。最后将结果写入一个名为`stu.txt`的文件中。
阅读全文