设计一个学生类,包括学号、姓名、Python、C语言、总分 构造函数、信息显示函数、获取总分的函数。 (2) 输入至少三个学生信息,同时写入文件Studebt.dat (3)从文件中读取所有学生信息。 (4)统计输出总分120分以上的同学。
时间: 2024-03-09 13:51:20 浏览: 19
好的,我来回答你的问题。以下是对应的代码实现:
```python
import pickle
class Student:
def __init__(self, num, name, py_score, c_score):
self.num = num
self.name = name
self.py_score = py_score
self.c_score = c_score
self.total_score = py_score + c_score
def display_info(self):
print("学号:%s,姓名:%s,Python成绩:%d,C语言成绩:%d,总分:%d" % (self.num, self.name, self.py_score, self.c_score, self.total_score))
def get_total_score(self):
return self.total_score
students = []
students.append(Student("001", "张三", 90, 85))
students.append(Student("002", "李四", 80, 95))
students.append(Student("003", "王五", 95, 75))
with open("Student.dat", "wb") as f:
pickle.dump(students, f)
with open("Student.dat", "rb") as f:
students = pickle.load(f)
for student in students:
student.display_info()
print("总分120分以上的同学:")
for student in students:
if student.get_total_score() >= 120:
student.display_info()
```
这个程序首先定义了一个学生类,包括学号、姓名、Python、C语言、总分等属性,以及构造函数、信息显示函数、获取总分的函数等方法。接着创建了三个学生实例,并将它们存储到了一个列表中。然后,使用 pickle 模块将这个列表写入到了文件 Student.dat 中。
接下来,程序从文件中读取所有学生信息,并显示出来。最后,统计输出总分120分以上的同学。
注意,这个程序中使用了 pickle 模块来实现对象的序列化和反序列化,以便将对象写入文件和从文件中读取对象。这个模块可以将 Python 对象转换为字节流,以便存储到文件或网络中,也可以将字节流转换为 Python 对象,以便在程序中使用。