请用c++写一个高校工资管理系统,实现输入员工数据,存入系统的TXT文件
时间: 2024-05-06 14:18:22 浏览: 99
为了方便操作和管理,本系统采用了面向对象的方式进行设计和实现。主要包括员工类、管理员类和系统类三个类,其中员工类存储员工的基本信息,管理员类负责管理员工信息,系统类负责整个程序的运行和操作。
以下是系统类的部分代码,包括员工数据的输入和存储:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
//员工类
class Employee {
private:
string name; //姓名
int age; //年龄
int salary; //工资
public:
Employee(string n, int a, int s) :name(n), age(a), salary(s) {}
string getName() { return name; }
int getAge() { return age; }
int getSalary() { return salary; }
};
//管理员类
class Manager {
private:
vector<Employee> employees; //员工数组
public:
void addEmployee(Employee e) { employees.push_back(e); } //添加员工
void displayEmployees() { //显示所有员工信息
for (int i = 0; i < employees.size(); i++) {
cout << "姓名:" << employees[i].getName() << " 年龄:" << employees[i].getAge() << " 工资:" << employees[i].getSalary() << endl;
}
}
void saveToFile(string fileName) { //将员工信息保存到文件
ofstream ofs(fileName.c_str());
if (ofs.is_open()) {
for (int i = 0; i < employees.size(); i++) {
ofs << employees[i].getName() << " " << employees[i].getAge() << " " << employees[i].getSalary() << endl;
}
ofs.close();
}
else {
cout << "文件打开失败!" << endl;
}
}
};
//系统类
class System {
private:
Manager manager; //管理员
public:
void run() { //运行程序
while (true) {
cout << "请输入员工姓名(输入0退出):";
string name;
cin >> name;
if (name == "0") {
break;
}
cout << "请输入员工年龄:";
int age;
cin >> age;
cout << "请输入员工工资:";
int salary;
cin >> salary;
Employee e(name, age, salary);
manager.addEmployee(e); //添加员工信息
}
manager.displayEmployees(); //显示所有员工信息
manager.saveToFile("employee.txt"); //将员工信息保存到文件
}
};
int main() {
System system;
system.run();
return 0;
}
```
注意,以上代码只是部分代码,完整的代码还需要包括管理员类和员工类的定义和实现。另外,文件名和路径可以根据具体情况进行修改。
阅读全文