在考生文件央下有一个工程文件sjt5.vbp,窗体上有三个文本框,其名称分别为Textl、Text2和Text3,其中Textl、Text2可多行显示。请添加三个命令按钮,名称分别为Cmdl、Cmd2和Cmd3,标题分别为“产生数组”、“统计”和“退出”,

admin2020-04-08  33

问题 在考生文件央下有一个工程文件sjt5.vbp,窗体上有三个文本框,其名称分别为Textl、Text2和Text3,其中Textl、Text2可多行显示。请添加三个命令按钮,名称分别为Cmdl、Cmd2和Cmd3,标题分别为“产生数组”、“统计”和“退出”,如图所示。程序功能如下:
    ①单击“产生数组”按钮时,随机生成20个0~10之间(不含0和10)的数值,并将其保存到一维数组a中,同时也将这20个数值在Textl文本框内显示。
    ②单击“统计”按钮时,统计出数组a中出现频率最高的数值及其出现的次数,并将出现频率最高的数值在Text2文本框内显示、出现频率最高的次数在Text3文本框内显示。
    ③单击“退出”按钮时,结束程序运行。
    注意:不得修改窗体文件中已经存在的控件和程序,最后将修改后的文件按原文件名存盘。

选项

答案【操作步骤】 步骤l:打开本题工程文件,设置控件的属性。程序中用到的控件及属性见表4.55。 [*] 步骤2:打开代码编辑窗口,去掉程序中的注释符“′”,将问题改为正确的内容。 参考答案(阴影部分是需考生填入的内容) Option Base 1 Dim a(20)As Integer,b(20)As Inte- ger Private Sub Cmd] Click() Textl.Text="":Text2.Text="": Text3.Text="" For i=1 To 20 a(i)=Fix(Rnd*9+1)′生成0 ~10的数值并存入数组a中 b(i) =1 Textl.Text=Textl.Text+ str(a(i)) +Space(2)′将生成的数显示在Textl中 Next i End Sub Private Sub Cmd2_Click() fmax=0 For i=1 To 20 Forj=1 Toi-1数组共有20个数字 If a(i)=a(j)Then b(i)=b(i)+1′依次存入对应数出现的频率 End If Next j If b(i)>fmaxThen fmax=b (i)′谈次得到的数出现频率与目前出现频率最多的数比较,若大于目前的数,则将最大的数改为该次得到的数 Next 1 For i=1 To 20 If b(i)=fmaxThen′从数组中找到 与fmax相同的值 Text2.Text=Text2.Text +Str(a(i))+Space(2) End If Next i Text3.Text=fmax End Sub PriVate Sub Cmd3_Click() End′当单击"结束"按钮时,则退出程序 End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。 【易错提示】生成20个0~10(不含0和lO)的数要注意上、下限,Fix()函数是截尾取值,因此Fix(Rnd*?+1)的问号处应该填入的数值为9,如果是10,就会包含有10这个数值。

解析 单击“产生数组”按钮时,通过Rnd函数随机生成20个0~10(不含0和10)的数值,并将其保存到一维数组a中,同时运用Space()函数和str()函数将这20个数值显示在Textl文本框内。单击“统计”按钮时,统计出数组a中出现频率最高的数值及其出现的次数。并把出现的次数赋值给数组b,通过对数组b中数值的排序,找出最高次数,并通过判断最高次数的值,找出出现频率最高的数值,并将其数值显示在Text2文本框内,将出现次数显示在Text3文本框内。单击“退出”按钮,运用End语句结束程序运行。str函数将数值转化为字符串,Val()函数是将字符转换为数值。Space(n)函数用于输入空格,n为空格的个数。Fix()函数用于截尾取整,生成整数。
转载请注明原文地址:https://kaotiyun.com/show/WNTp777K
0

最新回复(0)