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

admin2010-09-02  28

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

选项

答案 【操作步骤】 步骤l:打开考生文件夹下的本题工程文件sjt5.vbp,如表2-7所列在窗体上画出控件并设置它们的相关属性。 [*] 步骤2:打开代码编辑窗口,在指定位置编写“统计”按钮的单击事件过程。 参考代码: Private Sub Command2_Click() 需考生编写 n=Len(s):t="" Dim word max As Integer,word_num As Integer,word_len As Integer For i=1 To n o=Mid(s,i,1) If o<>""Then t=t+c E1se word len=word len+Len(t) word num=word num+1 If Len(t)>word max Then word max=Len(t) End If t="" End If Next i Textl.Text=CInt((word len+Len《t)) /(word num+1)) If Len(t)>word max Then word max=Len(t) End If Text2.Text=word_max End Sub 步骤3:按要求将文件保存至考生文件夹中。 步骤4:按键运行程序,先单击“读数据”按钮,再单击“统计”按钮,最后单击窗体右上角的关闭按钮结束程序。

解析 以空格为单词的分隔标志,在For循环中用Mid函数逐一取出变量s中的每个字符,并检查其是否为空格,若不是空格则将该字母作为当前单词的一部分,否则将当前单词的长度累加入一个记录所有单词总长度的变量中(如Word_len),用另一个变量(如word_hum)记录已有单词个数,并将当前单词的长度与记录单词最长值的变量(如woM max)比较,将两者中的较大值存入该变量中。循环结束后,将表达式CInt(word_len+Len(t))/(word_num+1))的值显示在Text!中,word_max值显示在Text2中。
    注意:为防止数据文件的最后一个字符不是空格而导致最后一个单词不在统计之列的情况,在开始找单词前在变量s的最后连上一个空格。
转载请注明原文地址:https://jikaoti.com/ti/0yg0FFFM
0

最新回复(0)