题解 | #个人所得税计算程序#

个人所得税计算程序

http://www.nowcoder.com/practice/afd6c29943c54453b2b5e893653c627e

解题思路:
理解应缴税额(工资中多少金额要交税,不是所有工资都要拿来交税的)=工资-基本交税工资(这里是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;
}


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务