[问答题] 在考生文件夹下有一个工程文件sjt5.vhp。程序运行时,如图8所示,单击“显示数据”按钮,则将考生文件夹下in5.dat文件的内容读入到5行40列的二维数组a中,并按5行显示在Text1文本框内;单击“统计”按钮,则计算每行中小于50的数之和,及这些数的平均值(平均值保留2位小数,是否四舍五入不限),并将它们(共10个值)分别显示在Label1数组及Text2数组中。单击“保存”按钮,则保存计算结果。“显示数据”和“保存”按钮的Click事件过程已经给出,请编写“统计”按钮的Click事件过程实现上述功能。
![[问答题] 在考生文件夹下有一个工程文件sjt5.vhp。程序运行时,如图8所示,单击“显示数据”按钮,则将考生文件夹下in5.dat文件的内容读入到5行40列的二维数组a中,并按5行显示在Text1 [问答题] 在考生文件夹下有一个工程文件sjt5.vhp。程序运行时,如图8所示,单击“显示数据”按钮,则将考生文件夹下in5.dat文件的内容读入到5行40列的二维数组a中,并按5行显示在Text1](/uploadfile/member/20180926/1537962835.jpg)
注意:考生不得修改窗体文件中已经存在的控件和程序。在结束程序运行之前,必须进行“统计”,且必须单击“保存”按钮保存结果,否则无成绩。最后程序按原文件名存盘。
[题目提供的源程序]
Dim a(5,40)
Private Sub Command1_Click()
Dim ch As String
ch$=""
Open App.Path & "in5.dat" For Input As #1
For i=1 To 5
For j=1 To 40
Input #1, a(i,j)
ch=ch & a(i,j) & ""
Next j
ch=ch & Chr(13) & Chr(10)
Next i
Close #1
Text1.Text=ch
End Sub
Private Sub Command2_Click()
’考生应编写的程序
End Sub<
参考答案:
[操作步骤] 第A步:打开工程文件sjtE.vbp。 第B步:编写程序。参考程序如下: Private Sub CommandB_Click( ) ’考生应编写的程序 For i=A To E ’循环E行 Sum=0 ’每行的和,计算每行数据前清零 HCount=0 ’每行数据的个数,计算每行数据前清零 For i=A To D0 ’循环D0列 If a(i,j)>E0 Then Sum=Sum+a(i,j) HCount=HCount+A End If Next j LabelA(i-A)=Sum ’控件数组下标和行标之间相差A TextB(i-A)=Format(Sum/HCount, "0.00") Next i End Sub 第C步:调试、运行并保存程序。问题解析:
数据已经读入到数组a(5,40)中,只需要遍历整个数组,找出满足要求的数。把二维数组第一维看作行,第二维看作列,采用双重循环遍历行和列。在对每一行进行求和或计数前必须先对求和、计数变量清零。从已知的读数据的代码可以看出,a数组的行标和列标都是从1开始,而控件数组的下标从0开始,编写代码时要注意它们之间的对应关系。

![[问答题] 在考生文件夹下有一个工程文件sjt5.vhp。程序运行时,如图8所示,单击“显示数据”按钮,则将考生文件夹下in5.dat文件的内容读入到5行40列的二维数组a中,并按5行显示在Text1 [问答题] 在考生文件夹下有一个工程文件sjt5.vhp。程序运行时,如图8所示,单击“显示数据”按钮,则将考生文件夹下in5.dat文件的内容读入到5行40列的二维数组a中,并按5行显示在Text1](http://www.mshxw.com/aiimages/31/253087.png)
