第一章课程设计目的和要求1.1课程设计的目的C语言一直是程序设计语言的主流之一数据类型丰富、齐全。C语言供了整数、实数、字符、字符串等基本数据类型,还提供数组、指针、结构体等构造数据类型,运算符丰富、齐全,运算能力强。C语言提供的运算符为常规运算:常规运算符——算术运算符、逻辑运算符、关系运算符等,这类运算符各种语言一般都具备;进一步巩固《C程序设计》所学的知识,加强语句类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养化程序设计的思想,加深对基本语言要素和结构的理解,锻炼程序设计的能力,以及用C语言解决实际问题的能力。此课程设计着眼于知识的运用,把平常学的知识运用到实践中来,本身就是考察我们知识运用能力。要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。1.2课程设计实现的要求如今公民纳税意识的增强,需要有方便、简单、快速的工具帮助大家解决工资,个人所得收入的纳税问题。所以我们可以用程序来实现这个功能,在程序设计中,既可以用传统的程序设计方法,也可以用先进的面向对象程序设计方法。对应用程序的要求:1、该系统软件可以根据输入的工资数额,得出所需缴纳的税额。2、得出税后工资;工资g;税:t;税后工资m;3、显示税率第二章程序设计任务内容用C语言实现一个工资纳税系统,该系统主要应用在个人工资纳税操作中,其中要求能够准确计算出个人工资或收入的所得税,能够查询到一个人的工资所得税,该系统涉及到的加,减,乘等简单运算,课程设计主要是使用if语句及switch语句实现。按照国家规定,工资低于1600元时,不用缴纳所得税。当工资高于1600时,需按以下规定缴纳所得税:(税前工资-1600)×税率=个人所得税税额级数含税级距税率%速算扣除数1不超过500元的502超过500元至2000元的部分10253超过2000元至5000元的部分151754超过5000元至20000元的部分206255超过20000元至40000元的部分253625超过40000元至60000元的部分3096257超过60000元至80000元的部分35166258超过80000元至100000元的部分40246259超过100000元的部分4531625表中的应纳税所得额是指以每月收入额减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开始输入工资gg1600t=0c200t=(g-j-100000)*d9+31625Casec=(g-j)/500t=(g-j)*d1t=(g-j-500)*d2+25t=(g-j-2000)*d3+175t=(g-j-5000)*d4+625t=(g-j-20000)*d5+3625t=(g-j-40000)*d6+9625t=(g-j-40000)*d7+16625t=(g-j-80000)*d8+24625输出tm=g-t输出m输出“工资纳税系统”输出税率值(4)对应代码#includestdio.hintmain(){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(gj)c=(g-j)/500;elseif(c200)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-14.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最终运行界面(八)