在考生文件夹下有一个工程文件sjt5.vbp,窗体上有两个命令按钮,标题分别是“读数据”和“统计”,请添加两个标签,名称分别为Labell和Label2,标题分别为“出现次数最多的字母是”和“它出现的次数为”;再添加两个名称分别为Text1和Text2,初

admin2020-04-08  25

问题 在考生文件夹下有一个工程文件sjt5.vbp,窗体上有两个命令按钮,标题分别是“读数据”和“统计”,请添加两个标签,名称分别为Labell和Label2,标题分别为“出现次数最多的字母是”和“它出现的次数为”;再添加两个名称分别为Text1和Text2,初始内容为空的文本框,如图所示。
  程序功能如下:
  ①单击“读数据”按钮,则将考生文件夹下in5.dat文件的内容读到变量s中(此过程已给出)。
  ②单击“统计”按钮,自动统计in5.dat文件中所含各字母(不区分大小写)出现的次数,并统计次数最多的字母显示在Textl文本框内,它所出现的次数显示在Text2文本框内。
    “读数据”按钮的Click事件过程已经给出,请为“统计”按钮编写适当的事件过程实现上述功能。
    注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行之前,必须进行统计,且必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后,程序按原文件名存盘。

选项

答案【操作步骤】 步骤I:打开本题工程文件,添加两个标签控件,名称分别为Labell和LabeL2,标题分别为“出现次数最多的字母是”和“它出现的次数为”;再添加两个名称分别为TextI和Text2,初始值为空的文本框。 步骤2:打开代码编辑窗口,在指定位置编写如下代码。 参考答案 Dim a(1 To 26)As Integer′定义数组a用于存放字母出现个数 Dim max As Integer n=Len(s)′Len的功能是求字符串的长度 For i=1 To n k=Asc(Mid$(S,i,1))I依次获取字符 If(k>=65 And k<=90)Then a(k-64)=a(k-64)+1′当为大写字母时,满足条件则计数 End If If(k>=97 And k<=122)Then a(k-96)=a(k-96)+1′当为小写字母时,满足条件则计数 End If Next i max=0 For m=1 To 26′循环查找出现次数最多的值 If max<a(m)Then max=a(m) End If Next m Text2=max′显示出现次数 For m=1 To 26′找到出现次数最多的值的下标 If a(m)=max Then 1=m′将下标记下 End If Next m Textl=Chr(1+64)′通过下标找到对应的字母 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析 通过Mid()函数获取字符,并通过Ase()函数获得字符的ASCII码,并赋值给变量k。定义一个数组a(26)用于存储26个字母的出现次数,根据语句Option Base 1,判断数组的下标为1~26,通过判断ASCII码来计算字母出现的次数,例如k=65(A)或k=97(a),那么a(k-64)和a(k-96)也就是通过a(1)加1来进行计数。再通过对于数组a最大值的查找求出最多的次数,进而求出出现最多的字母并显示出来。
转载请注明原文地址:https://jikaoti.com/ti/Stx0FFFM
0

最新回复(0)