定义职工工资结构体类型定义某车间职工工资结构体数组。用输入输出流编写四个函数分别用于: ①输入全车间职工的工号、姓名、基本工资、岗位工资、医疗住房基金与税金。 ②计算每一个职工实发工资,计算公式:实发工资=基本工资+岗位工资-医疗住房基金-税金。 ③按实发工资降序排序。 ④输出全车间职工的工号、姓名、基本工资、岗位工资、医疗住房基金、税金与实发工资。 在主函数中定义职工工资数组,调用四个函数完成输入、计算实发工资、排序、输出工作。
时间: 2023-05-12 20:06:52 浏览: 68
好的,让我来回答你的问题。
以下是我编写的代码:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
struct Employee {
int id;
string name;
double baseSalary;
double positionSalary;
double medicalFund;
double housingFund;
double tax;
double actualSalary;
};
void input(Employee* employees, int n) {
for (int i = 0; i < n; i++) {
cout << "请输入第" << i + 1 << "个职工的信息:" << endl;
cout << "工号:";
cin >> employees[i].id;
cout << "姓名:";
cin >> employees[i].name;
cout << "基本工资:";
cin >> employees[i].baseSalary;
cout << "岗位工资:";
cin >> employees[i].positionSalary;
cout << "医疗基金:";
cin >> employees[i].medicalFund;
cout << "住房基金:";
cin >> employees[i].housingFund;
cout << "税金:";
cin >> employees[i].tax;
}
}
void calculate(Employee* employees, int n) {
for (int i = 0; i < n; i++) {
employees[i].actualSalary = employees[i].baseSalary + employees[i].positionSalary - employees[i].medicalFund - employees[i].housingFund - employees[i].tax;
}
}
bool cmp(Employee a, Employee b) {
return a.actualSalary > b.actualSalary;
}
void sort(Employee* employees, int n) {
std::sort(employees, employees + n, cmp);
}
void output(Employee* employees, int n) {
cout << "工号\t姓名\t基本工资\t岗位工资\t医疗基金\t住房基金\t税金\t实发工资" << endl;
for (int i = 0; i < n; i++) {
cout << employees[i].id << "\t" << employees[i].name << "\t" << employees[i].baseSalary << "\t\t" << employees[i].positionSalary << "\t\t" << employees[i].medicalFund << "\t\t" << employees[i].housingFund << "\t\t" << employees[i].tax << "\t" << employees[i].actualSalary << endl;
}
}
int main() {
const int n = 3;
Employee employees[n];
input(employees, n);
calculate(employees, n);
sort(employees, n);
output(employees, n);
return 0;
}
```
这个程序定义了一个职工工资结构体类型,包括工号、姓名、基本工资、岗位工资、医疗基金、住房基金、税金和实发工资。然后,程序实现了四个函数,分别用于输入全车间职工的信息、计算每一个职工的实发工资、按实发工资降序排序和输出全车间职工的信息。在主函数中,定义了一个职工工资数组,调用了四个函数完成输入、计算实发工资、排序和输出工作。
希望这个程序能够帮助你!