在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有两个标题分别为“读数据”和“统计”的命令按钮。请添加两个标签,其名称分别是Label11和Labe12,标题分别为“单词的平均长度为”和“最长单词的长度为”;再添加两个名称分别为Text1和Text2

admin2015-08-12  26

问题 在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有两个标题分别为“读数据”和“统计”的命令按钮。请添加两个标签,其名称分别是Label11和Labe12,标题分别为“单词的平均长度为”和“最长单词的长度为”;再添加两个名称分别为Text1和Text2,。Text属性为空的文本框,如图所示。程序功能如下:
    ①如果单击“读数据”命令按钮,则将考生文件夹下in5.dat文件的内容读到变量s中(此过程已给出);
    ②如果单击“统计”按钮,则自动统计变量s(s中仅含有字母和空格,而空格是用来分隔不同单词的)中每个单词的长度,并将所有单词的平均长度(四舍五入取整)在Text1文本框内显示,将最长单词的长度在Text2文本框内显示。
    “读数据”命令按钮的Click事件过程已经给出,请为“统计”命令按钮编写适当的事件过程,实现上述功能。
    注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序之前,必须进行统计,且必须通过单击窗体右上角的“关闭”按钮结束程序,否则无成绩。最后,程序按原文件名存盘。

选项

答案【操作步骤】 步骤1:打开本题工程文件,添加两个名称分别是Label1和Label2,标题分别为“单词的平均长度为”和“最长单词的长度为”的标签,以及标题分别为Text1和Text2,初始内容都为空的文本框。 步骤2:分析并编写程序代码。 程序提供代码如下: 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() 需考生编写 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) 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=kn(s)-1 Fori=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-l End If Next i s=kft(s,Len(s)-1) R=Split(8,"-") 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((kn(s)-UBound(R))/(UBound(R)+1)+0.5) End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析 单击“读数据”按钮,将考生文件夹下in5.dat文件的内容读到变量s中。
    单击“统计”按钮,通过Select Case语句判断是否为空格或是字母(文件中仅含有字母和空格,空格用来分隔不同单词),通过Len函数得出最长单词的长度,并通过比较把最长单词赋值给变量B,将该单词的长度显示在Text1文本框内,并将该单词的平均长度显示在Text2文本框内。
    Left(s,i)表示取字符串s左边的i个字符。
    Right(s,J-i)表示取字符串s右边的J-i个字符。
    R=Split(s,"-")表示将字符串s按"-"分割成字符数组。
转载请注明原文地址:https://jikaoti.com/ti/ZC60FFFM
0

最新回复(0)