问题 多项选择题

在考生文件夹下有一个工程文件sjt5.vhp。程序运行时,如图8所示,单击“显示数据”按钮,则将考生文件夹下in5.dat文件的内容读入到5行40列的二维数组a中,并按5行显示在Text1文本框内;单击“统计”按钮,则计算每行中小于50的数之和,及这些数的平均值(平均值保留2位小数,是否四舍五入不限),并将它们(共10个值)分别显示在Label1数组及Text2数组中。单击“保存”按钮,则保存计算结果。“显示数据”和“保存”按钮的Click事件过程已经给出,请编写“统计”按钮的Click事件过程实现上述功能。


注意:考生不得修改窗体文件中已经存在的控件和程序。在结束程序运行之前,必须进行“统计”,且必须单击“保存”按钮保存结果,否则无成绩。最后程序按原文件名存盘。
[题目提供的源程序]
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
Private Sub Command3_Click()
Open App.Path & "\out5.dat" For Output As #1
For k=0 To 4
Print #1, Label1(k)
Next k
For k=0 To 4
Print #1, Text2(k)
Next k
Close #1
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开始,编写代码时要注意它们之间的对应关系。

选择题
多项选择题