解题思路:
理解应缴税额(工资中多少金额要交税,不是所有工资都要拿来交税的)=工资-基本交税工资(这里是3500)
Employee构造函数,带两个参数,分别是名字和工资
提供获取名字和工资的方法,是可以公开调用的方法
提供一个计算税率的方法
double coudsui(double salary)
{
int suilv;//税率
int su_suan;//速算扣除数
int chao_=salary-3500; //超过最低标准金额
if(chao_<=1500)
{
suilv=3;su_suan=0;
}else if(chao_>1500 && chao_<=4500)
{
suilv=10;su_suan=105;
}else if(chao_>4500 && chao_<=9000)
{
suilv=20;su_suan=555;
}else if(chao_>9000 && chao_<=35000)
{
suilv=25;su_suan=1005;
}else if(chao_>35000 && chao_<=55000)
{
suilv=30;su_suan=2755;
}else if(chao_>55000 && chao_<=80000)
{
suilv=35;su_suan=5505;
}else
{
suilv=45;su_suan=13505;
}
double sui=chao_*suilv*0.01-su_suan;
return sui;
}
完整代码:
#include <iostream>
#include<vector>
#include<math.h>
#include<algorithm>
#include<iomanip>
using namespace std;
class Employee {
private:
string name;
double salary;
// write your code here......
public:
Employee(string name,double salary)
{
this->name=name;
this->salary=salary;
}
string getname()
{
return this->name;
}
double getsalary()
{
return this->salary;
}
double coudsui(double salary)
{
int suilv;//税率
int su_suan;//速算扣除数
int chao_=salary-3500; //超过最低标准金额
if(chao_<=1500)
{
suilv=3;su_suan=0;
}else if(chao_>1500 && chao_<=4500)
{
suilv=10;su_suan=105;
}else if(chao_>4500 && chao_<=9000)
{
suilv=20;su_suan=555;
}else if(chao_>9000 && chao_<=35000)
{
suilv=25;su_suan=1005;
}else if(chao_>35000 && chao_<=55000)
{
suilv=30;su_suan=2755;
}else if(chao_>55000 && chao_<=80000)
{
suilv=35;su_suan=5505;
}else
{
suilv=45;su_suan=13505;
}
double sui=chao_*suilv*0.01-su_suan;
return sui;
}
};
//比较方法
double cmp(Employee&e1,Employee&e2)
{
return e1.getsalary()>e2.getsalary();
}
int main() {
// write your code here......
Employee e1("张三",6500);
Employee e2("李四",8000);
Employee e3("王五",100000);
vector<Employee>vec;
vec.push_back(e1);
vec.push_back(e2);
vec.push_back(e3);
sort(vec.begin(),vec.end(),cmp);
cout<<fixed<<setprecision(1);
for(auto it=vec.begin();it!=vec.end();it++)
{
cout<<it->getname()<<"应该缴纳的个人所得税是:"<< it->coudsui(it->getsalary())<<endl;
}
return 0;
}

京公网安备 11010502036488号