#include <iomanip>
#include <ios>
#include <iostream>
// write your code here......
#include <vector>
#include <algorithm>
using namespace std;
class Employee {
private:
string name;
double salary;
// write your code here......
public:
Employee(string n, double s): name{n}, salary(s) {}
double tax() {
double temp {salary - 3500};
if (temp > 80000) {
return (temp * 0.45) - 13505;
} else if (temp > 55000) {
return (temp * 0.35) - 5505;
} else if (temp > 35000) {
return (temp * 0.30) - 2755;
} else if (temp > 9000) {
return (temp * 0.25) - 1005;
} else if (temp > 4500) {
return (temp * 0.20) - 555;
} else if (temp > 1500) {
return (temp * 0.10) - 105;
} else if (temp >= 0 && temp <= 1500) {
return temp * 0.03;
} else {
return 0;
}
}
double get_salary() const {
return salary;
}
string get_name() const {
return name;
}
};
bool cmp(const Employee& a, const Employee&b) {
return a.get_salary() > b.get_salary();
}
int main() {
// write your code here......
Employee zs("张三", 6500);
Employee ls("李四", 8000);
Employee ww("王五", 100000);
vector<Employee> v {zs, ls, ww};
sort(v.begin(), v.end(), cmp);
for (auto& item: v) {
cout << item.get_name() << "应该缴纳的个人所得税是:" << fixed << setprecision(1) << item.tax() << endl;
}
return 0;
}