第 1 頁:選擇題 |
第 3 頁:基本操作題 |
第 4 頁:簡單應(yīng)用題 |
第 5 頁:綜合應(yīng)用題 |
四、綜合應(yīng)用題(18分)
43請使用VC6或使用【答題】菜單打開考生文件夾prosS下的工程pr093,其中包含了類TaxCaleulator(“個(gè)稅計(jì)算器”)和主函數(shù)main的定義。創(chuàng)建“個(gè)稅計(jì)算器”需要接收稅率表信息和起征額信息。在main函數(shù)中,通過兩個(gè)數(shù)組創(chuàng)建了如下的稅率表:
利用這個(gè)稅率表創(chuàng)建“個(gè)稅計(jì)算器”時(shí),假定起征額為2 000元(即不超過2 000元的所得不征收個(gè)人所得稅)。請補(bǔ)充完成計(jì)算應(yīng)納個(gè)人所得稅額的成員函數(shù)getTaxPayable,其中的參數(shù)income為月收入。此程序的正確輸出結(jié)果應(yīng)為:
月收入為800元時(shí)應(yīng)繳納個(gè)人所得稅0元
月收入為l 800元時(shí)應(yīng)繳納個(gè)人所得稅0元月收入為2 800元時(shí)應(yīng)繳納個(gè)人所得稅 55元 月收入為3 800元時(shí)應(yīng)繳納個(gè)人所得稅l55元
月收入為4 800元時(shí)應(yīng)繳納個(gè)人所得稅295元月收入為5 800元時(shí)應(yīng)繳納個(gè)人所得稅455元
注意:只能在函數(shù)9etTaxPayable中的“//**********333**********”和“//**********666**********”之間
填人若干語句,不要改動(dòng)程序中的其他內(nèi)容。 //Tax Calculator.h #include #include
using flamespace std; class TaxCalculator{ public:
TaxCalculator(double the—limits[],double the_rates[],int the—length,double the_threshold) :lower_limits(new double[the_length]),rates(new double[the—length]),
list_len(the_length),threshold(the—threshold){ for(int i=0;i
lower_limits[i]=the_limits[i]; rates[i]=the_rates[i];
} f
—TaxCalculator(){delete[]lower_limits;delete[]rates;}
double getTaxPayable(double income)eonst;//返回指定月收入的應(yīng)納個(gè)人所得稅額 void showTaxPayable(double income)const;//顯示指定月收入的應(yīng)納個(gè)人所得稅額 private:
double$lower—limits;//適用收入段下限 double *rates; //適用稅率
int list—len;//稅率表項(xiàng)數(shù)
double threshold; //起征額 };
void writeToFile(consl char * path); //TaxCalcnlator.cpp
‘#include”TaxCalculator.h”
double TaxCalculator::getTaxPayable(double income)const{ double taxable=income—threshold;
//應(yīng)納稅工資額
double tax_payable=0.0; //應(yīng)納個(gè)人所得稅額
int i=list_len-1;
//從稅率表的最高適用段開始計(jì)算 while(i>=0){
//**********333**********
//**********666**********
--i; }
return tax_payable;
} void TaxCalculator::showTaxPayable(double income)const{
cout<<”月收入為”<
}
//main.cpp
#include”TaxCalculator.h” int main(){
double limits[]={0.0,500.0,2000.0,5000.0,20000.0,40000.0,60000.0,80000。0,100000.0}; double rates[]={0.05,0.1,0.15,0.2,0.25,0.3,O.35,0.4,0.45};
TaxCaleulator calc(1imits,rates,9,2000.0); calc.showTaxPayable(800.0);
calc.showTaLPayable(1800.0); cale.showTaxPayable(2800.0); calc.showTaxPayable(3800.0); calc.showTaxPayable(4800.0); eaie.showTaxPayable(5800.0); writeToFile(””);
return 0;
}
參考解析:
if f income<=2000)//如果收入小于2000
return tax—payable;
//直接tex—payable(初始代為零)
i“taxable>lower_limits[i]){
//如果taxable(收入超出起征額的部分)大于lower—limits
[i]階段最低限額
tax_payable+=(taxable-lower-limits[i])*
rates[i]:
//把起過階段最低限額的部分乘以該階段的稅率后,加到tax_payable(個(gè)人所得稅)
taxable=lower_limits[i];
//把fower_limits[i]賦值于taxable
}
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |