C语言程序设计纳税工资系统.docx
《C语言程序设计纳税工资系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计纳税工资系统.docx(26页珍藏版)》请在冰豆网上搜索。
![C语言程序设计纳税工资系统.docx](https://file1.bdocx.com/fileroot1/2023-1/7/c74985ca-6eca-4d03-89be-d21a2aa65fbb/c74985ca-6eca-4d03-89be-d21a2aa65fbb1.gif)
C语言程序设计纳税工资系统
第一章课程设计目的和要求
1.1课程设计的目的
C语言一直是程序设计语言的主流之一数据类型丰富、齐全。
C语言供了整数、实数、字符、字符串等基本数据类型,还提供数组、指针、结构体等构造数据类型,运算符丰富、齐全,运算能力强。
C语言提供的运算符为常规运算:
常规运算符——算术运算符、逻辑运算符、关系运算符等,这类运算符各种语言一般都具备;
进一步巩固《C程序设计》所学的知识,加强语句类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养化程序设计的思想,加深对基本语言要素和结构的理解,锻炼程序设计的能力,以及用C语言解决实际问题的能力。
此课程设计着眼于知识的运用,把平常学的知识运用到实践中来,本身就是考察我们知识运用能力。
要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。
1。
2课程设计实现的要求
如今公民纳税意识的增强,需要有方便、简单、快速的工具帮助大家解决工资,个人所得收入的纳税问题。
所以我们可以用程序来实现这个功能,在程序设计中,既可以用传统的程序设计方法,也可以用先进的面向对象程序设计方法。
对应用程序的要求:
1、该系统软件可以根据输入的工资数额,得出所需缴纳的税额。
2、得出税后工资;
工资g;税:
t;税后工资m;
3、显示税率
第二章程序设计任务内容
用C语言实现一个工资纳税系统,该系统主要应用在个人工资纳税操作中,其中要求能够准确计算出个人工资或收入的所得税,能够查询到一个人的工资所得税,该系统涉及到的加,减,乘等简单运算,课程设计主要是使用if语句及switch语句实现.
按照国家规定,工资低于1600元时,不用缴纳所得税。
当工资高于1600时,需按以下规定缴纳所得税:
(税前工资-1600)×税率=个人所得税税额
级数 含税级距 税率% 速算扣除数
1 不超过500元的 5 0
2 超过500元至2000元的部分 10 25
3 超过2000元至5000元的部分 15 175
4 超过5000元至20000元的部分 20 625
5 超过20000元至40000元的部分 25 3625
超过40000元至60000元的部分 30 9625
7 超过60000元至80000元的部分 35 16625
8 超过80000元至100000元的部分 40 24625
9 超过100000元的部分 45 31625
表中的应纳税所得额是指以每月收入额减1600元按公式计算后的余额。
例如:
计算为:
2500-1600=900
应纳个人所得税额=500×5%+400×10%=65
再比如:
我们用一个大额工资计算,25000元
应纳税所得额=25000—1600=23400
应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475
要求:
输入工资计算出纳税金额.
第三章详细设计说明
3.1模块
3.1。
1模块描述
声明函数,定义两个变量g和t,m;创建一个工资纳税系统计算函数,实现个人工资所得税的计算、查询.在程序中输入的内容包括:
(1)输入个人工资
实现过程:
根据提示输入个人工资数据
(2)个人所得税的计算
实现过程
(3)显示税率
3.1。
2功能模块图
此系统的函数功能模块图如图1所示。
图1函数功能模块图
3.2性能
该模块性能要求
(1)灵活性要求
输出的数据能准确的按照操作代码输出。
(2)时间特性要求
输入的各项操作代码能及时反应其运行结果。
3.3算法说明
该程序采用一系列if语句及switch语句来达到计算目的
3。
4函数说明
工资纳税计算函数
(1)原型:
intmain()
(2)功能:
该函数用来计算输入工资的所得税
(3)流程图:
如图2所示
图2
(4)对应代码
#include〈stdio.h〉
intmain()
{
intg,c,j=1600;
floatd1=0。
05,d2=0。
1,d3=0。
15,d4=0.2,d5=0。
25,d6=0。
3,d7=0.35,d8=0.4,d9=0.45,m,t;
printf(”欢迎进入工资纳税系统\n”);
printf(”税率表\n”);
printf("级数含税级距税率(%%)\n");
printf("1不超过500元的5\n");
printf("2超过500元至2000元的部分10\n");
printf("3超过2000元至5000元的部分15\n");
printf(”4超过5000元至20000元的部分20\n”);
printf(”5超过20000元至40000元的部分25\n");
printf("6超过40000元至60000元的部分30\n”);
printf(”7超过60000元至80000元的部分35\n");
printf("8超过80000元至100000元的部分40\n”);
printf(”9超过100000元的部分45\n”);
printf(”\n请输入工资:
\n”);
scanf(”%d",&g);
if(g<=j)
t=0;//g不超过1600元时t的值
elseif(g>j)
c=(g—j)/500;
elseif(c〉200)
t=(g-j—100000)*d9+31625;//(g—j)超过100000元时t计算方法
switch(c)
{
case0:
t=(g-j)*d1;//(g-j)不超过500元时t计算方法
case1:
case2:
case3:
case4:
t=(g—j-500)*d2+25;break;//1~4;(g—j)超过500元但不超过2000元时t计算方法
case5:
case6:
case7:
case8:
case9:
case10:
t=(g—j—2000)*d3+175;break;//5~10;(g-j)超过2000元但不超过5000元时t计算方法
case11:
case12:
case13:
case14:
case15:
case16:
case17:
case18:
case19:
case20:
case21:
case22:
case23:
case24:
case25:
case26:
case27:
case28:
case29:
case30:
case31:
case32:
case33:
case34:
case35:
case36:
case37:
case38:
case39:
case40:
t=(g—j—5000)*d4+625;break;//11~40;(g-j)超过5000元但不超过20000元时t计算方法
case41:
case42:
case43:
case44:
case45:
case46:
case47:
case48:
case49:
case50:
case51:
case52:
case53:
case54:
case55:
case56:
case57:
case58:
case59:
case60:
case61:
case62:
case63:
case64:
case65:
case66:
case67:
case68:
case69:
case70:
case71:
case72:
case73:
case74:
case75:
case76:
case77:
case78:
case79:
case80:
t=(g—j-20000)*d5+3625;break;//41~80;(g—j)超过20000元但不超过40000元时t计算方法
case81:
case82:
case83:
case84:
case85:
case86:
case87:
case88:
case89:
case90:
case91:
case92:
case93:
case94:
case95:
case96:
case97:
case98:
case99:
case100:
case101:
case102:
case103:
case104:
case105:
case106:
case107:
case108:
case109:
case110:
case111:
case112:
case113:
case114:
case115:
case116:
case117:
case118:
case119:
case120:
t=(g—j—40000)*d6+9625;break;//81~120;(g-j)超过40000元但不超过60000元时t计算方法
case121:
case122:
case123:
case124:
case125:
case126:
case127:
case128:
case129:
case130:
case131:
case132:
case133:
case134:
case135:
case136:
case137:
case138:
case139:
case140:
case141:
case142:
case143:
case144:
case145:
case146:
case147:
case148:
case149:
case150:
case151:
case152:
case153:
case154:
case155:
case156:
case157:
case158:
case159:
case160:
t=(g—j—40000)*d7+16625;break;//121~160;(g—j)超过60000元但不超过80000元时t计算方法
case161:
case162:
case163:
case164:
case165:
case166:
case167:
case168:
case169:
case170:
case171:
case172:
case173:
case174:
case175:
case176:
case177:
case179:
case180:
case181:
case182:
case183:
case184:
case185:
case186:
case187:
case188:
case189:
case190:
case191:
case192:
case193:
case194:
case195:
case196:
case197:
case198:
case199:
case200:
t=(g-j-80000)*d8+24625;break;//161~200;(g-j)超过80000元但不超过100000元时t计算方法
}
printf("个人所得税:
t=%10。
2f\n",—t);
m=g-t;
printf(”税后工资:
m=%10.2f\n",m);
}
3.5限制条件
在输入值时必须按照程序所规定的输入,否则将运行错误或无法运行。
3。
6测试计划
本次测试主要为验证工资纳税函数的功能,该函数可以根据输入的工资数额,得出所需缴纳的税额。
对该函数进行功能测试、正确性测试等.
第四章程序使用说明
4。
1使用操作
该程序可以实现对个人工资所得税的计算。
安装VisualC++6。
0,在工具栏“文件”中单击“新建”选项,开始输入程序,程序输入完成,保存,单击工具栏中“”选项,选择“txt.c”待程序无误后,开始构建并执行程序。
4。
2运行结果
4.2.1初始运行界面
最初的运行界面,要求输入工资数据如图4-1所示
图4-1
4。
2.2最终运行界面
进入初始界面后,输入个人工资,计算某人的工资所得税.
第一种情况所出现的最终运行界面如图4—2最终运行界面
(一)
图4-2最终运行界面
(一)
第二种情况所出现的最终运行界面如图4—2最终运行界面
(二)
图4—2最终运行界面
(二)
第三种情况所出现的最终运行界面如图4—2最终运行界面(三)
图4—2最终运行界面(三)
第四种情况所出现的最终运行界面如图4-2最终运行界面(四)
图4—2最终运行界面(四)
第五种情况所出现的最终运行界面如图4—2最终运行界面(五)
图4—2最终运行界面(五)
第六种情况所出现的最终运行界面如图4-2最终运行界面(六)
图4-2最终运行界面(六)
第七种情况所出现的最终运行界面如图4—2最终运行界面(七)
如图4-2最终运行界面(七)
第八种情况所出现的最终运行界面如图4—2最终运行界面(八)
图4—2最终运行界面(八)
第九种情况所出现的最终运行界面如图4-2最终运行界面(九)
图4-2最终运行界面(九)
第五章课程设计心得与体会
通知要进行课程设计时,有点懵,感觉学的东西没有系统认识,不知该怎么练到一起。
只能利用自己所理解的零星点滴来尽量完成,通过查找资料(《从程序设计》p109,例题4。
10)及老师的指导整个程序终于完成.虽然有很多不完善的地方,但是经过这次课程设计,让我对C语言有进一步的了解和认识,能更好的认识和运用这门语言,并且它在我们的生活,工作,学习中有很多用途。
在反复的修改中也让我们认识到要做好一件事,一定要认真对待,一丝不苟,注意细节,最重要的是在平时的学习知识时打好一个坚实的基础。
这次的课程设计收获了知识、提高了能力,学会了如何运用所学知识去解决实际问题,懂得怎么样去制定计划,怎么样去实现这个计划.希望自己以后办事的时候要认真,仔细,考虑周全.在此,感谢老师的辛勤教导!
附录一:
参考文献
[1]谭浩强,C程序设计(第四版),北京清华大学出版社,2013年11月重印
附录二:
程序
#include〈stdio.h〉
intmain()
{
intg,c,j=1600;
floatd1=0.05,d2=0。
1,d3=0。
15,d4=0。
2,d5=0.25,d6=0.3,d7=0.35,d8=0。
4,d9=0.45,m,t;
printf("欢迎进入工资纳税系统\n\n”);
printf(”税率表\n”);
printf("级数含税级距税率(%%)\n”);
printf("1不超过500元的5\n”);
printf("2超过500元至2000元的部分10\n”);
printf(”3超过2000元至5000元的部分15\n");
printf(”4超过5000元至20000元的部分20\n");
printf(”5超过20000元至40000元的部分25\n”);
printf("6超过40000元至60000元的部分30\n”);
printf("7超过60000元至80000元的部分35\n");
printf(”8超过80000元至100000元的部分40\n");
printf("9超过100000元的部分45\n");
printf(”\n请输入工资:
\n");
scanf("%d”,&g);
if(g〈=j)
t=0;
elseif(g〉j)
c=(g—j)/500;
elseif(c〉200)
t=(g-j-100000)*d9+31625;
switch(c)
{
case0:
t=(g—j)*d1;
case1:
case2:
case3:
case4:
t=(g-j-500)*d2+25;break;
case5:
case6:
case7:
case8:
case9:
case10:
t=(g—j-2000)*d3+175;break;
case11:
case12:
case13:
case14:
case15:
case16:
case17:
case18:
case19:
case20:
case21:
case22:
case23:
case24:
case25:
case26:
case27:
case28:
case29:
case30:
case31:
case32:
case33:
case34:
case35:
case36:
case37:
case38:
case39:
case40:
t=(g—j-5000)*d4+625;break;
case41:
case42:
case43:
case44:
case45:
case46:
case47:
case48:
case49:
case50:
case51:
case52:
case53:
case54:
case55:
case56:
case57:
case58:
case59:
case60:
case61:
case62:
case63:
case64:
case65:
case66:
case67:
case68:
case69:
case70:
case71:
case72:
case73:
case74:
case75:
case76:
case77:
case78:
case79:
case80:
t=(g—j—20000)*d5+3625;break;
case81:
case82:
case83:
case84:
case85:
case86:
case87:
case88:
case89:
case90:
case91:
case92:
case93:
case94:
case95:
case96:
case97:
case98:
case99:
case100:
case101:
case102:
case103:
case104:
case105:
case106:
case107:
case108:
case109:
case110:
case111:
case112:
case113:
case114:
case115:
case116:
case117:
case118:
case119:
case120:
t=(g-j-40000)*d6+9625;break;
case121:
case122:
case123:
case124:
case125:
case126:
case127:
case128:
case129:
case130:
case131:
case132:
case133:
case134:
case135:
case136:
case137:
case138:
case139:
case140:
case141:
case142:
case143:
case144:
case145:
case146:
case147:
case148:
case149:
case150:
case151:
case152:
case153:
case154:
case155:
case156:
case157:
case158:
case159:
case160:
t=(g-j—40000)*d7+16625;break;
case161:
case162:
case163:
case164:
case165:
case166:
case167:
case168:
case169:
case170:
case171:
case172:
case173:
case174:
case175:
case176:
case177:
case179:
case180:
case181:
case182:
case183:
case184:
case185:
case186:
case187:
case188:
case189:
case190:
case191:
case192:
case193:
case194:
case195:
case196:
case197:
case198:
case199:
case200:
t=(g-j-80000)*d8+24625;break;}
printf("个人所得税:
t=%10。
2f\n",t);
m=g-t;
printf(”税后工资:
m=%10.2f\n",m);
}