【说明】
本应用程序的运行窗口如图2所示。
窗口中的3个文本框和两个按钮名称分别为Txt_salary、Txt_base、Txt_tax、Cmd_compute和Cmd_quit。运行时,文本框Txt_base存放的是免税金额基数(应扣除的基本费用co)当用户在文本框Txt_salary中输入月收入(工资或薪金)并单击“计算”按钮Cmd_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。
个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为800元,税率如表1所示。
级数 | 月应纳税所得额 | 适用税率(%) |
1 2 3 4 5 6 7 8 9 | 不超过500元的部分 501元~2000元的部分 2001元~5000元的部分 5001元~20000元的部分 20001元~40000元的部分 40001元~60000元的部分 60001元~80000元的部分 80001元~100000元的部分 超过100000元的部分 | 5 10 15 20 25 30 35 40 45 |
若0<K≤500,则S=K×5%;
若500<K≤2000,则S=500×5%+(K-500)×10%;
若2000<K≤5000,则S=500×5%+1500×10%+(K-2000)×15%;
若5000<K≤20000,则S=500×5%+1500×10%+3000×15%+(K-5000)×20%;
例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。
在开发过程中,需要编写的程序代码如下;
【程序】
Option Base 0
Private Sub Cmd_compute_Click( )
Dim paylevel,taxPrate
paylevel = Array(0,500,2000,5000,20000,40000,60000,80000,100000, _1000001)
taxPrate = Array (5,10,15,20,25,30,35,40,45)
K= (1)
S=0
If(K>0) Then
For j = 1 To 9
If (2) Then
S = S + (paylevel(j) - paylevel(j -1) ) * taxPrate(j - 1)/100
Else
S=S+ (3) *taxPrate(j-1)/100
Exit For
End If
Next j
Ent If
(4) =Str $(S)
End Sub
Private Sub Cmd_quit_Click( )
End
End Sub
Private Sub Form_Load()
Txt_tax. Text =" "
Txt_salaw. Text =" "
Txt_base. Text = 800
Txt_tax. Locked = True
Txt_base. Enabled = (5)
End Sub
参考答案:(1)Val(Txt_salary.Text)-Val(Txt_base.Text)
(2)K>paylevel(j) (3)K-paylevel(j-1)
(4)Txt_tax.Text (5)false
解析: (1)K表示该月应纳的所得税额,即文本框Txt_salary和 Txt_base的值之差,所以此处填入Val(Txt_salary.Text)-Val(Txt_ base.Text),其中函数Val将字符转换成数字型。(2)此处是判断当前职工的工资是否超过第j级,所以应填入K>paylevel(j)。(3)当前职工的工资不超过第j级,计算它与第j-1级的差额的所得税,所以应填入K-paylevel(j-1)。(4)此处输出计算的结果,所以应填入Txt_tax. Text。(5)由于免税金额不可修改,所以应该将它的Enabled属性设置为false。