#include #include using namespace std;

//员工类 class Employee { protected: string name; //姓名 int number; //编号 int level; //级别 double salary; //当月薪水 public: Employee(string n, int num, int l, double s) : name(n), number(num), level(l), salary(s) {} virtual void calcSalary() = 0; //计算月薪 virtual void displayInfo() = 0; //显示全部信息 void upgrade() { //升级 level++; } };

//经理类 class Manager : public Employee { public: Manager(string n, int num, int l, double s) : Employee(n, num, l, s) {} void calcSalary() { //计算月薪 salary = 8000; } void displayInfo() { //显示全部信息 cout << '姓名:' << name << ' ' << '编号:' << number << ' ' << '级别:' << level << ' ' << '当月薪水:' << salary << endl; } };

//技术人员类 class Technician : public Employee { protected: int hours; //工作小时数 public: Technician(string n, int num, int l, double s, int h) : Employee(n, num, l, s), hours(h) {} void calcSalary() { //计算月薪 salary = hours * 100; } void displayInfo() { //显示全部信息 cout << '姓名:' << name << ' ' << '编号:' << number << ' ' << '级别:' << level << ' ' << '当月薪水:' << salary << endl; } };

//销售员类 class Salesman : public Employee { protected: double sales; //当月销售额 public: Salesman(string n, int num, int l, double s, double sal) : Employee(n, num, l, s), sales(sal) {} void calcSalary() { //计算月薪 salary = sales * 0.04; } void displayInfo() { //显示全部信息 cout << '姓名:' << name << ' ' << '编号:' << number << ' ' << '级别:' << level << ' ' << '当月薪水:' << salary << endl; } };

//销售经理类 class SalesManager : public Employee { protected: double sales; //当月销售额 public: SalesManager(string n, int num, int l, double s, double sal) : Employee(n, num, l, s), sales(sal) {} void calcSalary() { //计算月薪 salary = 5000 + sales * 0.005; } void displayInfo() { //显示全部信息 cout << '姓名:' << name << ' ' << '编号:' << number << ' ' << '级别:' << level << ' ' << '当月薪水:' << salary << endl; } };

int main() { Employee* emp[4]; //创建员工对象数组 emp[0] = new Manager('张三', 1001, 1, 0); emp[1] = new Technician('李四', 1002, 1, 0, 160); emp[2] = new Salesman('王五', 1003, 1, 0, 20000); emp[3] = new SalesManager('赵六', 1004, 1, 0, 50000);

//显示初始信息
cout << '初始信息:' << endl;
for (int i = 0; i < 4; i++) {
    emp[i]->calcSalary();   //计算月薪
    emp[i]->displayInfo();  //显示全部信息
}

//升级
emp[0]->upgrade();
emp[1]->upgrade();
emp[3]->upgrade();

//显示升级后的信息
cout << '升级后的信息:' << endl;
for (int i = 0; i < 4; i++) {
    emp[i]->calcSalary();   //计算月薪
    emp[i]->displayInfo();  //显示全部信息
}

//释放内存
for (int i = 0; i < 4; i++) {
    delete emp[i];
}
return 0;

}

C++ 小型公司人员信息管理系统:实现员工信息存储、薪资计算和升级功能

原文地址: https://www.cveoy.top/t/topic/nd23 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录