题解 | #个人所得税计算程序#
个人所得税计算程序
https://www.nowcoder.com/practice/afd6c29943c54453b2b5e893653c627e
#include <iomanip> #include <iostream> #include<algorithm> // write your code here...... #include<vector> using namespace std; class Employee { private: string name; double salary; // write your code here...... public: Employee(string n,double s){ name=n; salary=s; } string getName(){ return name; } double getSalary() { return salary; } double caculate(){ int m=getSalary()-3500; double tax; if(m<=0){ tax=0; }else if(m<=1500)tax=m*0.03; else if(m<4500)tax=m*0.1-105; else if(m<9000)tax=m*0.2-555; else if(m<35000)tax=m*0.25-1005; else if(m<55000)tax=m*0.3-2755; else if(m<80000)tax=m*0.35-5505; else tax=m*0.45-13505; return tax; } }; bool cmp(Employee &a,Employee &b){ return a.getSalary()>b.getSalary(); } int main() { vector<Employee>v; // write your code here...... Employee wangwu("王五",100000); Employee lisi("李四",8000); Employee zhangsan("张三",6500); v.push_back(wangwu); v.push_back(lisi); v.push_back(zhangsan); sort(v.begin(),v.end(),cmp); cout<<wangwu.getName()<<"应该缴纳的个人所得税是:"<<fixed<<setprecision(1)<<wangwu.caculate()<<endl; cout<<lisi.getName()<<"应该缴纳的个人所得税是:"<<fixed<<setprecision(1)<<lisi.caculate()<<endl; cout<<zhangsan.getName()<<"应该缴纳的个人所得税是:"<<fixed<<setprecision(1)<<zhangsan.caculate()<<endl; return 0; }
要熟练使用sort函数,自定义排名很好用,记得cmp函数怎么用就好了。