您好,欢迎访问三七文档
目录退出目录第1页共41页案例二十七个人所得税计算器本案例知识要点IF语句的设计和使用类的设计和使用类的构造函数的使用目录退出目录第2页共41页一、案例需求案例描述•从2006年1月1日起,个人所得税定为从1600元起征。对每月收入超过1600元的部分征税,适用5%~45%的9级超额累进税率。即:计税金额每月工资1600元,个人所得税计税金额税率速算扣除数。税率表如表所示。试开发个人所得税计算器。目录退出目录第3页共41页税率表目录退出目录第4页共41页案例效果图•个人所得税计算器案例效果如图所示。个人所得税计算器案例效果图目录退出目录第5页共41页功能说明•定义一个对话框,对输入的个人月收入计算所得税。目录退出目录第6页共41页二、案例分析根据案例需求,需要利用MFC环境定义一个菜单、一个输入对话框类,提供个人月收入的输入界面;另外需要定义一个PayTax类,在PayTax类中定义数据成员,包括个人月收入和个人所得税,定义成员函数,即税率计算函数。最后在对话框中输出相应的缴纳税额。目录退出目录第7页共41页三、案例设计1.类的设计基于上述分析,本案例需要设计一个类PayTax,其结构如图所示。目录退出目录第8页共41页PayTax类结构目录退出目录第9页共41页(1)数据成员doubleincome;工资月收入。doubleoutput;个人所得税。(2)函数成员PayTax(doublemoney);带参构造函数。doublecalculate();计算个人所得税。目录退出目录第10页共41页在类视图ClassView中右击Example2classes选项,在弹出的快捷菜单中选择NewClass命令,弹出“新建类”对话框,在“类的类型”下拉列表框中选择普通类GenericClass,在“类信息”选项区域的“名称”文本框中输入类名“PayTax”,单击【确定】按钮。完成后在类视图ClassView中出现新类PayTax。在文件视图的HeaderFiles目录下找到PayTax.h文件并双击打开,其中已经出现了该类的声明,添加成员函数calculate(),修改构造函数PayTax的声明,添加变量成员income、output的声明。在文件视图的SourceFiles目录下找到PayTax.cpp文件并双击打开,可以看到构造函数和析构函数的定义已经存在,在其下添加成员函数calculate()的定义和修改构造函数PayTax()的定义。目录退出目录第11页共41页2.对话框设计•在资源视图ResourceView中右击Dialog选项,选择InsertDialog命令,在打开的对话框内添加静态文本框StaticText和文本框EditBox控件并修改属性,上面的Edit控件的ID为IDC_EDIT1,下面的Edit控件的ID为IDC_EDIT2,而且因为IDC_EDIT2控件用于个人所得税的输出,所以设计其“边框”属性为“不选中”,“只读”属性为“选中”,对话框的设计结果如图所示。目录退出目录第12页共41页对话框设计结果目录退出目录第13页共41页•双击“个人所得税计算器”对话框,弹出AddingaClass对话框,添加一个新类Creatanewclass,单击【OK】按钮。在对话框中填写对话框类名Inputdlg,单击【OK】按钮。目录退出目录第14页共41页创建对话框类目录退出目录第15页共41页•在“查看”菜单下选择ClassWizard命令,在打开的对话框中切换到MemberVariables选项卡。修改成员变量的名称和类型。其中IDC_EDIT1的成员变量名为m_income,类型为double,代表个人收入;IDC_EDIT2的成员变量名为m_output,类型为double,代表个人所得税,单击【确定】按钮退出。设计结果如图所示。目录退出目录第16页共41页对话框类成员变量的设计结果目录退出目录第17页共41页•从“查看”菜单中打开类向导MFCClassWizard,在ObjectIDs列表框中选择IDOK选项,在Classname下拉列表框中选择Inputdlg选项,在Message列表框中选择相应的选项后,单击【AddFunction】按钮,弹出对话框,默认菜单成员函数的名称为OnOK(),单击【OK】按钮,则在Memberfunctions列表框中添加了成员函数,该函数是Inputdlg类的成员函数,单击【EditCode】按钮可以对函数进行编辑。目录退出目录第18页共41页3.菜单设计•在资源视图ResourceView中单击Menu目录,双击IDR_MAINFRAME选项,修改命令,设置菜单Tax的ID为ID_MENUTax。•从“查看”菜单中打开类向导MFCClassWizard,在ObjectIDs列表框中选择ID_MENUTax选项,在Classname下拉列表框中选择Cexample2View,在Message列表框中选择COMMAND选项后,单击【AddFunction】按钮,弹出对话框,默认菜单成员函数的名称为OnMENUTax(),单击【OK】按钮,则在Memberfunctions列表框中添加了成员函数,该函数是CExample2View类的成员函数,单击【EditCode】按钮可以对函数进行编辑。目录退出目录第19页共41页四、案例实现目录退出目录第20页共41页目录退出目录第21页共41页目录退出目录第22页共41页目录退出目录第23页共41页目录退出目录第24页共41页目录退出目录第25页共41页目录退出目录第26页共41页目录退出目录第27页共41页目录退出目录第28页共41页目录退出目录第29页共41页目录退出目录第30页共41页目录退出目录第31页共41页目录退出目录第32页共41页目录退出目录第33页共41页目录退出目录第34页共41页目录退出目录第35页共41页目录退出目录第36页共41页目录退出目录第37页共41页目录退出目录第38页共41页目录退出目录第39页共41页五、案例总结与提高案例总结•Example2View.cpp文件中定义的菜单成员函数OnMENUTax()的功能非常简单,只是进行对话框的调用。具体操作放在了Inputdlg.cpp文件中的对话框成员函数OnOK()中去实现。•在PayTax.cpp文件中定义的PayTax类的成员函数calculate()中使用if…elseif…else结构实现了5%~45%的9级超额累进税率的税率TaxRatio、速算扣除数Discount和计税收入ExtraTax的计算,请读者认真体会。目录退出目录第40页共41页案例提高•请修改本例的案例,以实现对不同地区个人所得税起征点(如800元、2000元)进行计算。要求设计完成后的界面如图所示。目录退出目录第41页共41页带有起征点的个人所得税计算器
本文标题:个人所得税计算器
链接地址:https://www.777doc.com/doc-1180433 .html