定义一个员工结构(包含员工号、姓名、性别),输入4个员工的数据,将这些员工数据保存到文件employer.dat中,最后按照员工号从大到小排序在屏幕上输出。
时间: 2024-03-16 20:41:28 浏览: 73
员工管理系统 数据结构
好的,以下是 Python 的实现代码:
```python
import struct
# 定义员工结构体
class Employee:
def __init__(self, empno, name, gender):
self.empno = empno
self.name = name
self.gender = gender
# 输入员工数据
employees = []
for i in range(4):
empno = int(input("请输入员工号:"))
name = input("请输入姓名:")
gender = input("请输入性别:")
employees.append(Employee(empno, name, gender))
# 保存员工数据到文件
with open("employer.dat", "wb") as f:
for emp in employees:
emp_data = struct.pack("3s10s1s", str(emp.empno).encode(), emp.name.encode(), emp.gender.encode())
f.write(emp_data)
# 从文件读取员工数据并排序输出
with open("employer.dat", "rb") as f:
employees = []
while True:
emp_data = f.read(15)
if not emp_data:
break
empno, name, gender = struct.unpack("3s10s1s", emp_data)
employees.append(Employee(int(empno), name.decode().strip(), gender.decode().strip()))
employees.sort(key=lambda x: x.empno, reverse=True)
for emp in employees:
print("员工号:{},姓名:{},性别:{}".format(emp.empno, emp.name, emp.gender))
```
该代码中,我们定义了一个 `Employee` 类来表示员工,然后通过循环输入 4 个员工的信息,并将这些员工数据保存到文件 `employer.dat` 中。在保存数据时,我们使用了 `struct.pack()` 函数将每个员工的雇员号、姓名和性别拼接成一个二进制字节串,然后将这个字节串写入文件中。
接着,我们打开文件 `employer.dat`,使用 `struct.unpack()` 函数读取每个员工的数据,并通过 `Employee` 类创建员工对象。最后,我们使用 `sort()` 方法按照员工号从大到小排序,并在屏幕上输出排序后的员工数据。
阅读全文