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

admin2010-09-02  24

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

选项

答案 【操作步骤】 步骤1:打开考生文件夹下的本题工程文件sjt5.vbp,如表2-128在窗体Forml中画出控件,并分别设置它们的相关属性。 [*] 步骤2:在代码编辑窗口的指定位置,编写“统计”按钮的单击事件过程。 参考代码: Private Sub Command2_Click() ’考生编写 Dim a(26)As Integer n=Len(s) For i=1 To n c=UCase(Mid(s,i,1)) If c>="A" And c<="Z"Then j=Asc(c)-Asc("A")+1 a(j) =a(j) +1 End If Next i Max=a(1) t=Chr(Asc("A")) For i=2 To 26 If a(i)>Max Then Max=a(i) t=Chr(Asc("A")+i-1) End If Next i Textl.Text=t Text2.Text=Max End Sub 步骤3:按要求将文件保存至考生文件夹中。 步骤4:按键运行程序,先单击“读数据”按钮,接着单击“统计”按钮,然后单击窗体右上角的关闭按钮结束程序。

解析   ①Input函数用于读取以Input或Binary方式打开的文件中的字符。其语法格式为:
  Inpuc(number,[#]filenumber)
  其中,number表示指定要返回的字符个数。filenumber为打开文件的文件号。与Input#语句不同。Input函数返回它所读出的所有字符,包括逗号、回车符、空白列、换行符、引号和前导空格等。②LOF函数可返回一个用Open语句打开的文件的大小,该大小以字节为单位,返回值为Long数据类型。⑨,Asc()函数返回字符的ASCII码值,该值可以进行数学运算。④Len()是求字符串长度函数。⑤Chr()返回ASCII码对应的字符,可以说Asc()函数与Chr()函数是一对相反的函数。⑥Mid(字符串,起始位置[,个数】)函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串。
   程序设计思路:通过For循环用Mid函数逐一取出字符串s中的每个字符,并将其转换成大写后赋值给字符变量(如c),若该字符介于A~Z之间,则该字母的记录次数增l(用数组元素Asc(c).Asc(”A”)+1)记录该字母出现次数,表达式Asc(c)-Asc(“A”)+l为该字母在字母表中的序号)。
    通过For循环,用字母表中第一个字母的出现次数(Max=aq[1))依次与字母表中其他字母(序号为2~26)的出现次数比较,将其中的较大值存入一个变量(如Max,初值为a(1)),并用另一个变量(如t,初值为“A”)记录下该字母。比较结束,在文本框Textl中显示变量t的值,在文本框Text2中变量max的值。
转载请注明原文地址:https://jikaoti.com/ti/mmg0FFFM
0

最新回复(0)