早教吧作业答案频道 -->其他-->
一道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
在考生文件夹下有一个工程文件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...
看了一道vb编程题,我不明白答案为...的网友还看了以下:
找规律(数学)把一些英文字母按规律分成4组,现在还有4个字母D,M,Q,X请你按规律补上,其顺序依 2020-05-14 …
我会连一连,读一读。dāmùmǎyízuòlǘxiàjīmùyìtóuluóboxǐqíyìzhī 2020-05-14 …
读图,完成2~3题。2.上图所示天体系统属于()A.星系B.恒星系统C.行星系统D.总星系3.关于 2020-05-16 …
检验统计量一般包括( )A.统计量B.z统计量C.s统计量D.m统计量E.y统计量 2020-05-21 …
集合M={x|x=kπ/2+π/4,k∈Z},N={x|x=kπ/4+π/2,k∈Z},则a.M= 2020-08-01 …
下列说法正确的是()A.甲天气系统东侧盛行偏北风,形成暖锋B.乙天气系统中心气流旋转下沉,东侧为暖锋 2020-11-25 …
保险精算题.设m>1,按从大到小的次序排列i,i(m),d,d(m)1、设m>1,按从大到小的次序排 2020-12-05 …
如图所示为自然界存在的双星系统示意图,两颗星M、N绕相同圆心O做匀速圆周运动,据图可知()A.M的质 2020-12-16 …
选出下列各项中注音不合规范的一项:()A.棺椁guǒ估衣gù症结zhēng麈尾zhǔB.棠棣dì句读 2020-12-18 …
选出下列各项中注音不合规范的一项:()A.棺椁guǒ估衣gù症结zhēng麈尾zhǔB.棠棣dì句读 2020-12-18 …