学生(数据:姓名、学号、班级;操作:自定); 一个班级有n个学生,(1)用二进制文件方式将n个学生的数据写入文件"student.dat";(2)从二进制文件"student.dat"中,将学生信息一个一个地读出,并在显示器上显示。
时间: 2024-02-18 20:06:09 浏览: 50
学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息。
5星 · 资源好评率100%
好的,这也是一个编程问题,以下是Python语言的实现方式:
```python
import struct
# 学生类
class Student:
def __init__(self, name, id, class_no):
self.name = name
self.id = id
self.class_no = class_no
# 将n个学生的数据写入二进制文件"student.dat"
def write_students_to_file(students):
with open("student.dat", "wb") as f:
for student in students:
# 使用struct.pack()将学生对象转换为二进制数据,并写入文件
data = struct.pack("20s10s10s", student.name.encode(), student.id.encode(), student.class_no.encode())
f.write(data)
# 从二进制文件"student.dat"中,将学生信息一个一个地读出,并在显示器上显示
def read_students_from_file():
with open("student.dat", "rb") as f:
while True:
# 使用struct.unpack()将二进制数据转换为学生对象
data = f.read(40) # 一次读取40个字节
if not data:
break
name, id, class_no = struct.unpack("20s10s10s", data)
student = Student(name.decode().strip('\x00'), id.decode().strip('\x00'), class_no.decode().strip('\x00'))
print("姓名:{},学号:{},班级:{}".format(student.name, student.id, student.class_no))
# 测试
students = [Student("张三", "1001", "一班"), Student("李四", "1002", "一班"), Student("王五", "1003", "二班")]
write_students_to_file(students)
read_students_from_file()
```
您可以将上述代码复制到Python IDE中运行,然后查看"student.dat"文件中的学生信息,并在控制台上显示学生信息。
阅读全文