在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有2个标题分别是"读数据"和"统计"的命令按钮,1个名称为Text1的文本框,2个标签控件,如图所示。程序功能如下:1)单击"读数据"按钮,则将考...
程序功能如下:1)单击"读数据"按钮,则将考生文件夹下in5.dat文件的内容(该文件中含有不超过800个英文单词,单词之间用1个空格隔开)显示在Text1文本框中;2)单击"统计"按钮,则自动统计Text1中所有5字母单词的个数,并显示在右下角的Label1标签中。"读数据"按钮的Click事件过程已经给出,"统计"按钮的Click事件过程不完整,函数GetWords的功能是从字符串s中分离出每个单词,依次放入数组words的数组元素中,返回值为单词的总数目。
要求:1)请将程序中的注释符去掉,把 ?改为正确的内容;2)补全"统计"按钮Click事件过程中的代码,以实现上述程序功能。
注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行之前,必须进行"统计",且必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后,程序按原文件名存盘。
参考解析: 【解题思路】从文件中读取一串文本到文本框中,将文本框中的内容划分到数组中,遍历数组中的内容,如果字符串长度等于5,长度为5的单词个数增加1.
【操作步骤】
步骤1:打开本题工程文件。
步骤2:打开代码编辑窗口,去掉程序中的注释符"'",将问号改为正确的内容,并在指定位置编写代码。
参考答案(阴影部分是需考生填入的内容)
Private Function GetWords(s As String, words() As String) As Integer
Dim m%, ch$
ch = ""
For k = 1 To Len(s)
c = Mid(s, k, 1)
If c <> " " Then
ch = ch + c
Else
m = m + 1
words(m) = ch
ch = ""
End If
Next k
GetWords = m
End Function
Private Sub Command2_Click()
Dim ch(800) As String, n As Integer
If Len(s) = 0 Then
MsgBox "请先使用"读数据"功能!"
Else
m = GetWords(Text1.Text, ch)
n = 0
Dim value
For k = 1 To m
If Len(ch(k)) = 5 Then
n = n + 1
End If
Next k
Label1.Caption = n
End If
End Sub '统计Text1中所有5字母单词的个数,并显示在Label1标签中
步骤3:调试并运行程序,关闭程序后按题目要求存盘。