早教吧作业答案频道 -->其他-->
一道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编程题,我不明白答案为...的网友还看了以下:
已知向量A 向量B是不平行的非零向量 t属于R 则当(向量a+t向量b)的模取最小值时 向量B 与 2020-05-15 …
matlab 求解二元非线性方程组本人初次接触MATLAB,望大虾赐教!r=r0*((tsa-t) 2020-05-16 …
问道向量题目已知向量e1.e2满足|e1|=2,|e2|=1,且e1.e2的夹角为60度,设向量2 2020-05-16 …
设路程为sKm,速度为vKm/h,时间为th,当s=50h,求时间的表达方式为为t=50除以v这个 2020-05-23 …
r(A*A^T)=r(A^T*A)=r(A)证明方程AX=0与A^TAX=0同解AX=0显然有A^ 2020-06-10 …
已知向量a=(4,3),b=(-1,2)求a,b夹角的余弦值,若向量a-λb与2a+b垂直,求λ③ 2020-07-30 …
参数方程变普通方程...在线等..x=a/2(t+1/t)和y=b/2(t-1/t)过程..谢.. 2020-07-31 …
数学参数方程x=Scos(a)y=Tsin(a)若S=T=r,r为正常数,a为参数,且S=T则方程 2020-08-02 …
高一向量两道小题,在线求解1、已知向量a,b,c满足a+b+c=0,模分别为a=1,b=√2,c= 2020-08-02 …
已知e1,e2是互相垂直的两个单位向量,若向量a=t•e1+e2与向量b=e1+t•e2是的夹角是钝 2020-10-31 …