从键盘输入职工的编号,在第3题所建立的通讯录文件中查找该职工资料。查找成功后,显示职工的姓名、电话号码、邮政编码和住址。 c++
时间: 2023-06-27 10:07:38 浏览: 93
假设通讯录文件中每个职工的信息都存储在一个结构体中,结构体的定义如下:
```c++
struct Employee {
int id; // 职工编号
string name; // 职工姓名
string phone; // 职工电话号码
string postcode; // 职工邮政编码
string address; // 职工住址
};
```
那么,根据职工编号查找职工资料的代码如下:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct Employee {
int id; // 职工编号
string name; // 职工姓名
string phone; // 职工电话号码
string postcode; // 职工邮政编码
string address; // 职工住址
};
int main() {
int empId;
cout << "请输入职工编号:";
cin >> empId;
ifstream infile("employee.txt"); // 打开文件
if (!infile) {
cerr << "无法打开文件!" << endl;
return -1;
}
Employee emp;
bool found = false;
while (infile >> emp.id >> emp.name >> emp.phone >> emp.postcode >> emp.address) {
if (emp.id == empId) {
found = true;
break;
}
}
infile.close(); // 关闭文件
if (found) {
cout << "姓名:" << emp.name << endl;
cout << "电话号码:" << emp.phone << endl;
cout << "邮政编码:" << emp.postcode << endl;
cout << "住址:" << emp.address << endl;
} else {
cout << "未找到职工信息!" << endl;
}
return 0;
}
```
以上代码中,首先从键盘输入要查找的职工编号。然后,打开通讯录文件,逐行读取文件中的信息,将读取到的信息存储到结构体变量 emp 中。如果读取到的职工编号与要查找的职工编号相同,则说明查找成功,将 found 标志置为 true,同时跳出循环。最后,关闭文件,根据 found 标志判断是否查找成功,并输出相应的信息。
阅读全文