问答题 【说明】
在Visual Basic程序中,设计一个“个人所得税计算器”,其应用程序的运行窗口如图6-16所示。
问答题 【问题1】
请根据【说明】信息和如图6-16的显示效果,将【Visual Basic程序】中(1)~(5)空缺处的程序语句填写完整。
【正确答案】(1)Val(Txt_salary.Text)-Val(Txt_base.Text)
(2)M>paylevel[j]
(3)s=s+(M-paylevel(j-i))*taxPrate(j-1)/100
(4)Txt_tax.Text
(5)False
【答案解析】[要点解析]
由题干关键信息“个人所得税计算器程序运行时,文本框Txt_base中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框Txt_salary中输入月收入(工资或薪金)……”、“以每月收入总额(即 Val(Txt_salary.Text))减去免税金额基数(即Val(Txt_base.Text))后的余额作为该月的月应纳税所得额”和“设某个人的全月应纳税所得额为M(元)”可知,M表示月应纳税所得额,因此(1)空缺处应填入“Val(Txt_salary.Text)-Val(Txt_base.Text)”。
由题干【说明】所给出的计算公式可以看出,税金的计算是采用逐级累计的方式。而在【Visual Basic程序】中,数组paylevel存放的是各级别全月应纳税所得额基础数。如果一个职工的月应纳税所得额大于第j级,则其第j-1级收入的全额部分应按适用税率计算税额:(payleve(j)-paylevel(j-1))*taxPrate(j-1)/100。可见,(2)空缺处应判断月应纳税所得额是否超过了第i级,因此(2)空缺处所填写的判断条件是“M> paylevel(j)”。
如果一个职工的月应纳税所得额不大于第i级(没有到达第i级),则其第i-1级收入的实际超出部分采用适用税率计算税额:S=S+(M-paylevel(j-1))*taxPrate(j-1)/100,即(3)空缺处所填写的内容是“S=S+(M-paylevel(j-1))*taxPrate(j-1)/100”。然后执行“Exit For”语句,结束个人所得税额S的计算过程。
由题干关键信息“……单击【计算】按钮(Cmd_compute)后,Txt_tax文本框中就显示计算所得的应纳税额”可知,计算的结果应该显示在对应的文本框(Txt_tax)中,因此(4)空缺处所填写的显示语句是“Txt_tax.Text”。
由题干关键信息“文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示”可知,语句“Txt_tax.Locked=True”实现了程序运行时文本框Txt_tax不接受用户输入的功能,而文本框 Txt_base的Enabled属性应设置为“false”,以实现“Txt_base的内容以灰色显示”的功能,即(5)空缺处所填写的属性是“false”。
问答题 【问题2】
若要求在图6-16窗口中,用户输入月工资(或薪金收入)后,直接按回车键或向下方向箭就能使焦点(当前光标)跳到应扣除的基本费用的输入文本框,而不用【Tab】键进行切换。请将以下文本框ht_salary的KeyDown(按键)事件过程中空缺的程序代码填写完整。
If KeyCode = 13 Or KeyCode = 40 Then
(6)
End If
【正确答案】(6)Txt_base.SetFocus
【答案解析】[要点解析]
如果一个对象具有焦点,则在事件中按下键(KeyDown)或松开键(KeyUp)时可能发生焦点的转移。KeyDown和KeyUp的处理过程如下。
Private Sub对象名_KeyDown([index As Integer,] Keycode As Integer, Shift As Integer)
Private Sub对象名_KeyUp([index As Integer,] Keycode As Integer, shift As Integer)
其中,Index参数用于指明控件数组的索引;Keycode是一个键代码,指示键盘上按下的物理键,它包含了键盘上所有键的代码:Shift是在该事件发生时响应【Shift】、【Ctrl】和【Alt】键的状态的一个整数。Shift参数的有效值分别为3、6、7,分别代表【Shift】键和【Ctrl】键、【Ctrl】键和【Atl】键及这3个键都被按下。
在控件的KeyDown事件中,KeyCode=13是用来判断是否敲入回车,即回车键的键值为13,向下方向箭的键值为40。
若要求在图6-16窗口中,用户在文本框ht_salary输入月工资(或薪金收入)后,直接按回车键或向下方向箭就能使焦点(当前光标)跳到应扣除的基本费用的输入文本框Txt_base,而不用【Tab】键进行切换。文本框ht_salary的KeyDown(按键)事件过程中相关的程序代码如下。
If KeyCode=13 Or KeyCode = 40 Then
Txt_base.SetFocus
End If
其中,使用SetFocus方法使得文本框Txt_base获得输入焦点。
问答题 【问题3】
为使应用程序启动时所载入的窗口(图6-16)中具有背景图像(取自用户自定义的某个图像文件“C:/user/background.bmp”),并且在程序运行时,当被遮的该窗口又重现时,其背景图像会自动重画。在开发如图6-16所示窗体时,应对窗体属性对话框(图6-17)中哪些关键属性进行什么样的设置?
【正确答案】属性Picture设置为“C:/user/background.bmp”
属性AutoReDraw应设置为“True”
【答案解析】[要点解析]
为使应用程序启动时所打开的窗口(图6-16)中具有背景图像(图像文件路径为“C:/userXImage.bmp”),应将图6-17窗体属性对话框中,属性Picture设置为“C:/user/background.bmp”。
在程序运行时,当被遮的该窗口又重现时,其背景图像会自动重画,应将图6-17中属性AutoReDraw应设置为True。