内容:设有一个职工文件emp.dat,每个职工记录包含职工编号(no)、姓名(name)、部门号(depno)和工资数(salary)信息。设计一个程序exp2-11.cpp完成以下功能:\n\n(1
时间: 2024-10-07 19:04:46 浏览: 72
内容:你需要编写一个名为`exp2-11.cpp`的程序,该程序用于处理一个名为`emp.dat`的职工数据文件。这个文件包含了每个职工的基本信息,包括职工编号(no)、姓名(name)、部门号(depno)以及工资数额(salary)。该程序的主要功能有:
(1) 读取文件内容并存储到结构体或类中,可以使用`ifstream`来打开和读取文本文件。
```cpp
#include <fstream>
struct Worker {
int no;
std::string name;
int depno;
double salary;
};
```
(2) 定义一个函数,如`readEmployeesFromFile()`,来从文件中读取数据并填充Worker对象的实例。
```cpp
void readEmployeesFromFile(const std::string& filename, std::vector<Worker>& employees) {
std::ifstream file(filename);
if (file.is_open()) {
// 逐行读取并解析数据
while (file >> employees.back().no >> employees.back().name >> employees.back().depno >> employees.back().salary) {
++employees.size(); // 添加新员工记录
}
file.close();
} else {
std::cerr << "Error opening the file." << std::endl;
}
}
```
(3) 另外可能需要提供一个函数来显示或管理这些职工信息,比如打印所有职工的信息列表。
```cpp
void displayEmployees(const std::vector<Worker>& employees) {
for (const auto& worker : employees) {
std::cout << "职工编号: " << worker.no << ", 姓名: " << worker.name << ", 部门号: " << worker.depno << ", 工资: " << worker.salary << std::endl;
}
}
```
(4) 最后,在主函数`int main()`中,调用上述函数来实现整个流程。
```cpp
int main() {
std::vector<Worker> employees;
readEmployeesFromFile("emp.dat", employees);
displayEmployees(employees);
return 0;
}
```
阅读全文