问答题

【说明】
在Visual Basic程序中,设计一个“个人所得税计算器”,其应用程序的运行窗口如图6-16所示。


窗口中的3个文本框和两个按钮的名称分别为Txt_salary、Txt_base、TxL_tax、Cmd_compute和 Cmd_quit。“个人所得税计算器”程序运行时,文本框Txt_base中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框Txt_salary中输入月收入(工资或薪金)并单击【计算】按钮(Cmd_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。
个人工资(或薪金)所得税是按照超额累进的税率来征收的,其计算方法如下:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为1 600元,税率如表6-15所示。
表6-15 个人所得税税率表(工资、薪金所得适用)
级 数 全月应纳税所得额 税率(%)
 1  不超过500元的  5
 2  超过500元至2000元的部分  10
 3  超过2000元至5000元的部分  15
 4  超过5000元至20000元的部分  20
 5  超过20000元至40000元的部分  25
 6  超过40000元至60000元的部分  30
 7  超过60000元至80000元的部分  35
 8  超过80000元至100000元的部分  40
 9  超过100000元的部分  45
(注:本表所称全月应纳税所得额是指依照本法第六条的规定,以每月收入额减除费用1600元后的余额或者减除附加减除费用后的余额)
设某个人的全月应纳税所得额为M(元),用下面的公式计算其应缴纳的个人所得税额S(元):
若0<M≤500,则S=M×5%;
若500<M≤2000,则S=500×5%+(M-500)×10%;
若2000<M≤5000,则S=500×5%+1500×10%+(M-2000)×15%;
若5000<M≤20000,则S=500×5%+1500×10%+3000×15%+(M-5000)×20%;
假设某程序员2008年5月份工资总额为4700元,减去1600元后,应纳税所得额为3100元,其应缴纳的个人所得税额为500×5%+1500×10%+1100×15%=340元。
在开发过程中,需要编写的程序代码如下。
【Visual Bask程序】
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)
M= (1)
S = 0
If (M>0) Then
For j =1 To 9
If (2) Then
s=s+(paylevel(j)-paylevel(j-1))*taxPrate(j-1)/100
Else
(3)
Exit For
End if
Next j
End if
(4) =Str$(S)
End Sub
Private Sub Cmd_quit_Click()
End
End Sub
Private Sub Form_Load()
Txt_tax.Text = " "
Txt_salary.Text = " "
Txt_base.Text = 1600
Txt_tax.Locked = True
Txt_base.Enabled = (5)
End Sub
【问题1】
请根据【说明】信息和如图6-16的显示效果,将【Visual Basic程序】中(1)~(5)空缺处的程序语句填写完整。

【参考答案】

(1)Val(Txt_salary.Text)-Val(Txt_base.Text)
(2)M>payleve......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
【说明】 著名的四色定理指出任何平面区域图均可用4种颜色着色,使相邻区域着不同的颜色。以下C程序对给定的区域图找出所有可能的不超过4种颜色的着色方案。该程序中用1~4分别表示4种颜色。要着色的N个区域用0~-1编号,区域相邻关系用adj[][]矩阵表示,矩阵的i行j列的元素为1,表示区域i与区域了相邻;矩阵的i行j列的元素为0,表示区域i与区域j不相邻。数组color[]用来存储着色结果,color[i]的值为区域i,所着颜色。 【C程序】 #include <stdio.h> #define N 10 void output(int color[]) *输出一种着色方案* int i ; for ( i = 0 ; i < N ; i++ ) printf( %4d , color[i] ) ; printf ( n ) ; int back(int *ip ,int color[] ) *回溯* intc = 4 ; while ( c == 4 ) if ( *ip <= 0 ) return 0 ; -- (*ip) ; c = (1) ; color[*ip] =-1 ; return c ; *检查区域i,对c种颜色的可用性* int colorOk(int i , intc , int [] [N] ,int color[ ] ) int j ; for (j = 0 ; j < i ; j++ ) if ( (2) ) return 0 ; return 1 ; *为区域i选一种可着色的颜色* int select (int i ,int c ,int adj [] [N] ,int color[ ] ) int k ; for(k = c ; k <= 4 ; k++ ) if( colorOK( (3) )) return k ; return 0 ; int coloring(int adj [] [N]) *寻找各种着色方案* int color[N] , i , c , cnt ; for(i = 0 ; i < N ; i++) color[i] =-1 ; i = c = 0 ; cnt = 0 ; while(1) if((c = (4) ) == 0 c = back( &i , color); if( c == 0 ) return cnt; else (5) ; i++ ; if i == N) output(color); ++cnt ; c = back( &i , color ) ; else c = 0 ; void main()( int adj[N] [N] = 0,1,0,1,1,1,1,1,1,1, 1,0,1,1,0,1,1,1,1,0, 0,1,0,1,0,1,1,0,1,1, 1,1,1,0,1,1,0,0,1,1, 1,0,0,1,0,1,0,0,0,0, 1,1,1,1,1,0,1,0,0,1, 1,1,1,0,0,1,0,0,1,0, 1,1,0,0,0,0,0,0,1,1, 1,1,1,1,0,0,1,1,0,1, 1,0,1,1,0,1,0,1,1,0, ; printf( 共有%d组解. n ,coloring(adj));