突发其想,在网上找到个人所得税的计算公式,书写了一个Dialog的计算程序。
在VC++6.0和Windows XP SP2环境下编译调试通过。
对话框界面上,有2个输入文本框,m_dIncome表示月收入,m_dStartpoint表示个税起征点,一般是1600(元),又有2个输出文本框,m_dTax表示个人所得税额,m_dAfterTax表示税后月收入。还有1个文本框m_strOutput表示历史记录,将每次计算的数值都逐行输出,便于查询。最后,是一个按钮Btncaculate,按下这个按钮后计算所得税和税后收入。按钮代码如下:
void CIncometaxDlg::OnBtncaculate()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_dIncome <= 0 || m_dStartpoint <= 0)
{
return;
}
else
{
double dBasic = m_dIncome - m_dStartpoint;
if(dBasic <= 0)
{
m_dTax = 0;
}
if(dBasic > 0 && dBasic <= 500)
{
m_dTax = dBasic * 0.05;
}
if(dBasic > 500 && dBasic <=2000)
{
m_dTax = dBasic * 0.1 - 25;
}
if(dBasic > 2000 && dBasic <=5000)
{
m_dTax = dBasic * 0.15 - 125;
}
if(dBasic > 5000 && dBasic <= 20000)
{
m_dTax = dBasic * 0.2 - 375;
}
if(dBasic > 20000 && dBasic <= 40000)
{
m_dTax = dBasic * 0.25 - 1375;
}
if(dBasic > 40000 && dBasic <= 60000)
{
m_dTax = dBasic * 0.3 - 3375;
}
if(dBasic > 60000 && dBasic <= 80000)
{
m_dTax = dBasic * 0.35 - 6375;
}
if(dBasic > 80000 && dBasic <= 100000)
{
m_dTax = dBasic * 0.4 - 10375;
}
if(dBasic > 100000)
{
m_dTax = dBasic * 0.45 - 15375;
}
m_dAftertax = m_dIncome - m_dTax;
CString strIncome;
strIncome.Format("月收入:%g,", m_dIncome);
CString strStartpoint;
strStartpoint.Format("起征点:%g,", m_dStartpoint);
CString strTax;
strTax.Format("所得税:%g,", m_dTax);
CString strAftertax;
strAftertax.Format("税后收入:%g。\r\n", m_dAftertax);
m_strOutput += strIncome;
m_strOutput += strStartpoint;
m_strOutput += strTax;
m_strOutput += strAftertax;
UpdateData(FALSE);
}
}








