【说明】
本应用程序是一个小写数字转换成大写格式的转换器,其运行窗口如图5所示。
窗口中有两个标签(lblNumber和lblChinese)、两个文本框(txtNnmber和txtChinese)和一个命令按钮(cmdChange)。当单击按钮cmdChange时,将文本框txtNumber中数字转换成中文大写,并显示在文本框txtChinese中。例如,在文本框txtNumber输入0076845,单击cmdChange按钮,将在文本框txtChinese中显示“柒万陆仟捌佰肆拾伍”。
程序中调用的函数CChinse(Strdigit As String)的功能是先删除字符串的所有前导0,再调用函数Change(Strdigit As String),将数字字符串Strdigit转换成中文大写格式。
为了防止用户在文本框txtNumber输入非数字形式的字符,程序将以空字符代替所输入的非数字有形字符。
【程序】
Private Function Transfer(Strdigit As String)As String
′完成小写向大写的转换,这段代码省略
End Function
Private Function CChinese(Strdigit As String)As String
Dim intLen,intCounter As Integer
intLen = Len (Strdigit)
If intLen>0 Then
intcounter = 0
Do ’过滤数字串Strdigit的前导0
intcounter = intcounter + 1
Loop Until Mid(Strdigit, (1) )
intLen = (2)
Strdigit = (3) (Strdigit,intLen)
CChinese = Transfer(Strdigit)
End If
End Function
Private Sub cmdChange_Click( )
txtChinese.Text=CChinese( (4) ) ’调用Cchinese函数
End Sub
Private Sub txtNumber_KeyPress(KeyAscii As Integer)
Select Case KeyAscii ’根据输入字符的ASCII码的值进行判断
Case KeyAscii<32 ’保留输入的控制字符
Case 48 To 57’保留输入的数字字符
Case Else ’其他情况以空字符代替
(5) =0
End Select
End Sub
参考答案:intcounter, A
(B)intLen-intCounter+A或Len(Strdigit)-intCounter+A
(C)Right或Right $ (D) txtNumber.Text (E) KeyAscii
解析: (1)~(3)空所在语句块的功能是删除过滤数字串Strdigit的前导0。(1)空所在Do……Loop循环是找到第一个非0的位置,循环变量为intcounter,即要判断第intcounter个字符是不是0,因此(1)空处应填写“intcounter,1”。从(3)空所在语句可以判断(2)空所在语句是求出过滤数字串Strdigit的前导0后的数字长度,因此(2)空处应当填写“intLen-intCounter+1”或“Len(Strdigit)-intCounter+1”。(3)空所在语句是取出过滤数字串Strdigit的前导。后的数字,需要填写这一操作的函数,因此(3)空处应当填写“Right”或“Right $”。
(4)空处需要填写调用Cchinese函数的参数,程序要对小写数字进行转换,其内容存放在文本框txtNumber中,因此(4)空处应当填写“txtNumber.Text”。
(5)空所在语句是处理当前输入若不是数字或控制字符时,则将具ASCII码值设置为0。因此(5)空处应当填写“KeyAscII”。