用C++编写一个程序实现小型公司的人员信息管理系统。该公司雇员(employee)包括经理(manager),技术人员(technician)、销售员(salesman)和销售部经理(salesmanager)。要求存储这些人员的姓名、编号、级别、当月薪水,计算月薪并显示全部信息。 程序要对所有人员有提升级别的功能。为简单起见,所有人员的初始级别均为1,然后进行升级,经理升为4级,技术人员和销售部经理升为3级,销售员仍为1级。 月薪计算办法是:经理拿固定月薪8000元,技术人员按每小时100元领取月薪,销
时间: 2023-06-09 22:07:40 浏览: 121
用C++语言设计的一个小型公司工资管理系统
5星 · 资源好评率100%
售员按照当月销售额的5%领取月薪(销售额通过用户输入获取),销售部经理拿固定月薪6000元加上销售额的3%作为月薪。下面是一个简单的C程序实现:
#include <stdio.h>
struct Employee {
char name[20]; // 姓名
int id; // 编号
int level; // 级别
double salary; // 当月薪水
};
void calculate_salary(struct Employee* emp) {
if (emp->level == 4) {
emp->salary = 8000.0;
} else if (emp->level == 3) {
if (strcmp(emp->name, "salesmanager") == 0) {
emp->salary = 6000.0 + emp->salary * 0.03;
} else {
emp->salary = emp->salary * 100.0;
}
} else { // level == 1
emp->salary = emp->salary * 0.05;
}
}
void promotion(struct Employee* emp) {
emp->level++;
calculate_salary(emp);
}
int main() {
struct Employee employees[4] = {
{"manager", 1, 1, 0.0},
{"technician", 2, 1, 160.0},
{"salesman", 3, 1, 0.0},
{"salesmanager", 4, 1, 10000.0},
};
int i;
double sales;
for (i = 0; i < 4; i++) {
calculate_salary(&employees[i]);
}
printf("%-12s %-6s %-6s %-8s\n", "Name", "ID", "Level", "Salary");
for (i = 0; i < 4; i++) {
printf("%-12s %d %d %8.2f\n", employees[i].name,
employees[i].id, employees[i].level, employees[i].salary);
}
printf("\nInput sales of salesman: ");
scanf("%lf", &sales);
employees[2].salary = sales;
promotion(&employees[0]);
promotion(&employees[1]);
promotion(&employees[2]);
promotion(&employees[3]);
printf("\n%-12s %-6s %-6s %-8s\n", "Name", "ID", "Level", "Salary");
for (i = 0; i < 4; i++) {
printf("%-12s %d %d %8.2f\n", employees[i].name,
employees[i].id, employees[i].level, employees[i].salary);
}
return 0;
}
注意,此代码供参考,可能不是最佳实践,实际场景下需要更加完善的输入检查等边界处理。
阅读全文