早教吧作业答案频道 -->其他-->
一道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编程题,我不明白答案为...的网友还看了以下:
据统计,2010年,江苏泰州市法律援助中心共为570名经济困难群众提供了无偿的法律援助服务,挽回经 2020-04-07 …
help翻译以下发到mtswz1023@163.com!签名是指享有某些权利或应尽有关义务的个人在 2020-04-26 …
在线等答案纠结于b和c中望知道的人给予解答3Q在windowsxp中,下列说法正确的是a.在一个文 2020-06-17 …
春秋晋国有一名叫李离的狱官,他在审理一件案子时,由于听从了下属的一面之辞,致使一个人冤死。真相大白 2020-06-19 …
WindowsXP关于文件或文件夹命名的描述中,错的是()。A.文件或文件夹的全名不得超过255个 2020-07-19 …
有关文件名的组成,()是错误的.A文件名上由名字和扩展名组成B文件中名字和扩展名之间用“.”号分开 2020-07-21 …
关于windows2000文件名的说法正确的是?(多选)A.长文件名中可以用空格B.如果需要短文件名 2020-11-07 …
P(A并B)=P(A)+P(B)=1,则事件A和事件B的关系是什么?答案互斥必对,但不是这个答案P( 2020-12-01 …
一、1.在WindowsXP文件名命名规则,哪种讲法是正确的()A、文件主名部分最多不超过8个字符B 2020-12-02 …
以下叙述中错误的是。选择一个答案a.在不同磁盘间可以采用鼠标拖动文件名的方法实现文件的移动b.不同文 2020-12-14 …