完成下列问题:
在考生文件夹下有一个工程文件sjt4.vbp,包含了所有控件和部分程序,如图4所示。程序功能如下:
①单击“渎数据”按钮,可将考生文件夹下in4.dat文件中的100个整数读到数组a中。
②单击“计算”按钮,则根据从名称为Combo1的组合框中选中的项目,对数组a中的数据计算平均值,并将计算结果四舍五入取整后显示在文本框Text1中。
“读数据”按钮的Click事件过程已经给出,请为“计算”按钮编写适当的事件过程,实现上述功能。
注意:不得修改已经存在的控件和程序,在结束程序运行之前,必须进行一次计算,且必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后程序按原文件名存盘。
[题目提供的源程序]
Dim a(100) As Integer
Private Sub Command1_Click()
Dim k As Integer
Open App.Path & "\in4.dat" For Input As #1
For k=1 To 100
Input #1, a(k)
Next k
Close #1
End Sub
Private Sub Command2_Click()
’考生应编写的程序
End Sub
参考答案:[操作步骤]
第A步:打开工程文件sjtD.vbp。
第B步:编写程序。参考程序如下:
Dim m As Long, n As Long
Dim x As Integer, y As Integer
For i=A to A00
if a(i) Mod B=0 Then
m=m+a(i)
y=y+A
Else
n=n+a(i)
y=y+A
End If
Next
Select Case ComboA.Text
Case "所有偶数"
TextA=Round(m/x)
Case "所有奇数"
TextA=Round(n/y)
Case "所有数"
TextA=Round((m+n)/(x+y))
End Select
第C步:调试、运行并保存程序。
解析: Command1_Click事件过程实现“读数据”,将数据读入到数组a中。Command2_Click事件过程负责数组a中数据平均值的计算和结果的显示。计算时可采用两种方法:一种方法是把数组a中所有的偶数、奇数及其个数分别累加到一个变量中,例如m为所有偶数的总和,x为偶数的个数,n为所有奇数的总和,y为奇数的个数,根据组合框当前选取的计算内容来决定将m/x、n/y或(m+n)/(x+y)四舍五入取整显示在Text1中;另一种方法是先取得组合框当前选择的内容,再决定对数组a中的哪些数求平均数。
用循环语句遍历数组a,用If语句和Mod运算符可判断奇偶数,用Int()或Round()函数可以实现数据的四舍五入。