1、目 录一、课程设计问题描述 11、课程设计题目 12、设计任务要求 1二、总体设计 11、设计中应注意的问题 12、程序设计流程图 1三、详细设计 31、设计思想 32、函数说明 33、程序代码 3四、程序运行结果测试与分析 51、程序调试运行后 52、输入工资 1500 的运行结果 63、输入工资 1600 的运行结果 64、输入工资 2500 的运行结果 7五、结论与心得 8六、参考文献 8一、课程设计问题描述1、课程设计题目工资纳税系统:个人所得税每月交一次,底线是 1600 元/月,也就是超过了1600 元的月薪才开始计收个人所得税。个人所得税税率表一(工资、薪金所得适用)级数-全月应
2、纳税所得额-税率()1-不超过 500 元的-52-超过 500 元至 2000 元的部分-103-超过 2000 元至 5000 元的部分-154-超过 5000 元至 20000 元的部分-205-超过 20000 元至 40000 元的部分-256-超过 40000 元至 60000 元的部分-307-超过 60000 元至 80000 元的部分-358-超过 80000 元至 100000 元的部分-409-超过 100000 元的部分-45表中的应纳税所得额是指以每月收入额减除 1600 元后的余额。例如:计算为:2500-1600=900应纳个人所得税额=5005%+40010%
3、=65再比如:我们用一个大额工资计算,25000 元应纳税所得额=25000-1600=23400应纳个人所得税税额=5005%+150010%+300015%+1500020%+340025%=44752、设计任务要求输入工资计算出纳税金额二、总体设计1、设计中应注意的问题此问题最大的难题在于计算应纳税金额,因为纳税金额的计算是在超出1600 元之后进行的。因此,在计算应纳税金额时应先减去 1600 元。同时,还有一个困难就是在减去 1600 元之后,在对超出的金额计算纳税金额时需要进行分类计算,而分类计算就是本题的关键所在。2、程序设计流程图开始输入工资 s应纳税工资 x=s-1600If
4、 x100000If x.80000If x60000If x.40000If x20000If x5000If x2000If x500是否否否否否否pay=tax9pay=tax8pay=tax7pay=tax3pay=tax4pay=tax5pay=tax2pay=tax6pay=tax1是是是是是是是输出应纳税金额 pay否结束三、详细设计1、设计思想对输入的工资 s 先减去 1600 元,如果小于等于 0 都不用纳税,但如果大于0 就要对其进行分类。如果大于 100000,进行第一类计算;如果大于 80000,进行第二类计算;如果大于 60000,进行第三类计算;如果大于 40000
5、,进行第四类计算,如果大于 20000,进行第五类计算,如果大于 5000,进行第六类计算;如果大于 2000,进行第七类计算,如果大于 500,进行第八类计算;如果大于 0,进行第九类计算。最后根据不同的计算输出不同的应纳税金额。2、函数说明s=工资,x=应纳税工资,pay= 应缴税费3、程序代码# include float tax1(float a)float pay1;pay1=a*0.05;return(pay1);float tax2(float b)float pay2;pay2=500*0.05+(b-500)*0.1;return (pay2);float tax3(floa
6、t c)float pay3;pay3=500*0.05+1500*0.1+(c-2000)*0.15;return (pay3);float tax4(float d)float pay4;pay4=500*0.05+1500*0.1+3000*0.15+(d-5000)*0.2;return (pay4);float tax5(float e)float pay5;pay5=500*0.05+1500*0.1+3000*0.15+15000*0.2+(e-20000)*0.25;return (pay5);float tax6(float f)float pay6;pay6=500*0.0
7、5+1500*0.1+3000*0.15+15000*0.2+20000*0.25+(f-40000)*0.3;return (pay6);float tax7(float g)float pay7;pay7=500*0.05+1500*0.1+3000*0.15+15000*0.2+20000*0.25+20000*0.3+(g-60000)*0.35;return (pay7);float tax8(float h)float pay8;pay8=500*0.05+1500*0.1+3000*0.15+15000*0.2+20000*0.25+20000*0.3+20000*0.35+(h
8、-80000)*0.4;return (pay8);float tax9(float i)float pay9;pay9=500*0.05+1500*0.1+3000*0.15+15000*0.2+20000*0.25+20000.3+20000*0.35+20000*0.4+(i-100000)*0.45;return (pay9);void main ()float x,s,pay;printf(“ 欢迎使用工资纳税系统!nnn“);printf(“请输入您要计算的工资:nn“);scanf(“%f“,x=s-1600;if(x100000) pay=tax9(x);else if(x80
9、000) pay=tax8(x);else if(x60000) pay=tax7(x);else if(x40000) pay=tax6(x);else if(x20000) pay=tax5(x);else if(x5000) pay=tax4(x);else if(x2000) pay=tax3(x);else if(x500) pay=tax2(x);else pay=tax1(x);printf(“您需纳税的金额为:%fnn“, pay);四、程序运行结果测试与分析1、程序调试运行后2、输入工资 1500 的运行结果当输入 1500 元时,小于 1600 元,因此不用纳税。3、输入工
10、资 1600 的运行结果当输入 1600 元时,由于和 1600 元相等,因此也不用纳税。4、输入工资 2500 的运行结果当输入 2500 元时,由于超出 1600 元,因此需纳税,且金额为 65 元。五、结论与心得在写程序中我感觉最大的困难就是在对应纳税工资进行分类的程序设计上,因为它是本题的关键。其次,在对应纳税工资的计算与程序设计上我也是下了很大的功夫。通过此次的设计课程,我对 C/C+也有了更深的了解。同时,也学到一些程序设计的技巧。感觉要想设计出好的程序,就先要学好 C/C+的基础知识,其次要在大脑中有关于该程序的设计构思,最后再根据自己的构思,设计出程序。同时,如果要写好程序,也需要学好数学以及英语,只有这样才能写好程序。六、参考文献1 百度文库:工资纳税系统的 C/C+程序设计代码2 贾宗璞 许合利; C 语言程序设计;人民邮电出版社;2011.8