编写程序实现以下功能: (1)将5个员工的数据(包括职工号、姓名、年龄、工资)输出到磁盘文件中保存。 (15分) (2)从键盘输入两个员工数据(职工号不要与之前的重复),增加到文件的末尾。(15分) (3)输出文件中全部职工的数据到显示器上显示。(15分) (4)从键盘输入一个职工号,在文件中查找,若有对应职工,则输出该职工的所有信息,若没有,则提示查无此人。
时间: 2024-01-08 09:02:02 浏览: 81
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
//定义员工结构体
struct Employee {
string id; //职工号
string name; //姓名
int age; //年龄
double salary; //工资
};
//将5个员工的数据输出到磁盘文件中保存
void saveToFile() {
ofstream file("employee.txt", ios::out); //打开文件
if (!file) {
cerr << "文件打开失败!" << endl;
exit(1);
}
Employee employees[5] = {{"001", "张三", 20, 3000},
{"002", "李四", 25, 3500},
{"003", "王五", 30, 4000},
{"004", "赵六", 35, 4500},
{"005", "钱七", 40, 5000}}; //定义5个员工信息
for (int i = 0; i < 5; ++i) {
file << employees[i].id << '\t' << employees[i].name << '\t' << employees[i].age << '\t' << employees[i].salary << endl;
}
file.close(); //关闭文件
}
//从键盘输入两个员工数据并增加到文件的末尾
void addEmployee() {
ofstream file("employee.txt", ios::app); //打开文件并追加数据
if (!file) {
cerr << "文件打开失败!" << endl;
exit(1);
}
Employee employee[2];
for (int i = 0; i < 2; ++i) {
cout << "请输入职工号:";
cin >> employee[i].id;
cout << "请输入姓名:";
cin >> employee[i].name;
cout << "请输入年龄:";
cin >> employee[i].age;
cout << "请输入工资:";
cin >> employee[i].salary;
file << employee[i].id << '\t' << employee[i].name << '\t' << employee[i].age << '\t' << employee[i].salary << endl;
}
file.close(); //关闭文件
}
//输出文件中全部职工的数据到显示器上显示
void printAllEmployees() {
ifstream file("employee.txt", ios::in); //打开文件
if (!file) {
cerr << "文件打开失败!" << endl;
exit(1);
}
Employee employee;
while (file >> employee.id >> employee.name >> employee.age >> employee.salary) {
cout << employee.id << '\t' << employee.name << '\t' << employee.age << '\t' << employee.salary << endl;
}
file.close(); //关闭文件
}
//从键盘输入一个职工号,在文件中查找,若有对应职工,则输出该职工的所有信息,若没有,则提示查无此人
void searchEmployee() {
ifstream file("employee.txt", ios::in); //打开文件
if (!file) {
cerr << "文件打开失败!" << endl;
exit(1);
}
string id;
cout << "请输入职工号:";
cin >> id;
Employee employee;
bool found = false;
while (file >> employee.id >> employee.name >> employee.age >> employee.salary) {
if (employee.id == id) {
found = true;
cout << employee.id << '\t' << employee.name << '\t' << employee.age << '\t' << employee.salary << endl;
break;
}
}
if (!found) {
cout << "查无此人!" << endl;
}
file.close(); //关闭文件
}
int main() {
saveToFile(); //将5个员工的数据输出到磁盘文件中保存
addEmployee(); //从键盘输入两个员工数据并增加到文件的末尾
printAllEmployees(); //输出文件中全部职工的数据到显示器上显示
searchEmployee(); //从键盘输入一个职工号,在文件中查找,若有对应职工,则输出该职工的所有信息,若没有,则提示查无此人
return 0;
}
```
阅读全文