早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一道vb编程题,我不明白答案为什么这么写,SubCommand2Click()事件过程在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有两个标题分别是"读数据"(名称为command1)和"统计"(名称为command2)的命

题目详情
一道vb编程题,我不明白答案为什么这么写,Sub Command2_Click()事件过程
在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有两个标题分别是"读数据"(名称为command1)和"统计"(名称为command2)的命令按钮.请添加两个标签,其名称分别是Label1和Label2,标题分别为"最长单词的长度为"和"以该长度最后一次出现的单词是";再添加两个名称分别为Text1和Text2,初始内容为空的文本框.程序功能如下:
①如果单击"读数据"按钮,则将考生文件夹下in5.dat文件的内容读到变量s中(此过程已给出);
②如果单击"统计"按钮,则程序自动统计in5.dat文件(该文件中仅含有字母和空格,而空格是用来分隔不同单词的)中最长单词的长度,以及in5.dat中最后一个以该长度出现的单词,并将该单词的长度显示在Text1文本框内,其单词显示在Text2文本框内.
"读数据"命令按钮的Click事件过程已经给出,请为"统计"命令按钮编写适当的事件过程,实现上述功能.
【操作步骤】
打开本题工程文件,添加两个名称分别是Label1和Label2,标题分别为"单词的平均长度为"和"最长单词的长度为"的标签,以及标题分别为Text1和Text2,初始内容都为空的文本框.
分析并编写程序代码.
程序提供代码
Option Base 1
Dim s As String
Private Sub Command1_Click()
Open App.Path & "\in5.dat" For Input As #1
s = Input(LOF(1),#1)
Close #1
End Sub
Private Sub Command2_Click()
For i = 1 To Len(s)
J = Asc(Mid(s,i,1))
Select Case J
Case 48 To 57,65 To 90,97 To 122
Case Else
Mid(s,i,1) = "-"
End Select
Next i
J = Len(s) - 1
For i = 1 To J
If Mid(s,i,1) = "-" And Mid(s,i + 1,1) = "-" Then
s = Left(s,i) + Right(s,J - i)
J = J - 1
i = i - 1
End If
Next i
s = Left(s,Len(s) - 1)
R = Split(s,"-")
B = R(0)
For i = 1 To UBound(R)
If Len(B) < Len(R(i)) Then B = R(i)
Next i
Text2.Text = Len(B)
Text1.Text = Int((Len(s) - UBound(R)) / (UBound(R) + 1) + 0.5)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Open App.Path & "\out5.dat" For Output As #1
Print #1,Text1.Text,Text2.Text
Close #1
End Sub
▼优质解答
答案和解析
Private Sub Command2_Click()    For i = 1 To Len(s)  '这个For循环是把所有非字母和数字的字符都替换为-号        J = Asc(Mid(s, i, 1))        Se...