实验五 数组应用程序设计(3个学时)
一 、实验目的
1. 掌握数组的声明、数组元素的引用。 2. 掌握静态数组和动态数组的使用差别。 3. 应用数组解决与数组有关的常用算法问题。 4. 学会使用控件数组设计程序。
二 、实验内容
1. 输入10个学生的成绩,并将成绩输出到窗体上,每行5个。计算并显示平均分数,然后将高于平均分的分数输出到窗体上。
1)代码设计如下 Option Explicit Option Base 1
Private Sub Form_Click()
Dim score(10) As Single, sum As Single Dim i As Integer For i = 1 To 10
score(i) = Val(InputBox(\请输入第\个学生的数学成绩\ sum = sum + score(i) Next i
Print \学生的数学成绩是:\For i = 1 To 10 Print score(i),
If i Mod 5 = 0 Then Print Next i Print
Print \数学平均分是:\Print \高于平均分的分数:\For i = 1 To 10
If score(i) > sum / 10 Then Print score(i) Next i End Sub
2)将运行结果的界面截下来粘贴在下面:
3)调试过程记录(错误情况及改正方法)
2. 设有一个6×6的方阵,其中的元素是随机产生的10 - 99 之间的两位整数。 分别求出主对角线和次对角线上元素之和,以及方阵中最小的元素的值和位置。 要求:
程序运行后,单击“产生”按钮时,输出方阵。单击“计算”按钮时,输出对角线元素之和,以及最小元素的值与位置。
1)代码设计如下 Option Explicit Option Base 1
Dim a(6, 6), i%, j%, s%, sum% Private Sub Command1_Click() Cls
Randomize For i = 1 To 6 For j = 1 To 6
s = Int(Rnd * (99 - 10 + 1) + 10) a(i, j) = s Print a(i, j); Next j Print Next i End Sub
Private Sub Command2_Click() Dim min, p%, q% For i = 1 To 6
For j = 1 To 6 If i = j Then
sum = sum + a(i, j) End If Next j Next i
Print \主对角线的元素之和:\For i = 1 To 6 For j = 1 To 6
If i + j = 7 Then sum = sum + a(i, j) End If Next j Next i
Print \次对角线的元素之和:\min = a(1, 1): p = 1: q = 1
For i = 1 To 6 For j = 1 To 6
If a(i, j) < min Then min = a(i, j): p = i: q = j Next j Next i
Print \最小元素的值与位置:\位置为:\(\,\)\
End Sub
Private Sub Form_Load() Command1.Caption = \产生\Command2.Caption = \计算\
End Sub
2)将运行结果的界面截下来粘贴在下面:
3)调试过程记录(错误情况及改正方法)
3.随机输入N个数据存放在一个数组中,N由用户指定。当单击“输出” 按钮时,将输入的数据输出到一个标签中,当单击“排序”按钮时,将按由大到小的顺序排序后显示在另一个标签中。
1)代码设计如下 Option Explicit
Dim arr() As Integer, n As Integer
Private Sub Command1_Click() Dim i As Integer, j As Integer
n = Val(InputBox(\请输入数组元素个数\元素个数输入\ReDim arr(n) As Integer
Label1.Caption = \待排序数组元素为:\For i = 1 To n
arr(i) = Val(InputBox(\请输入第\个数组元素的值\输入数组元素\Label2.Caption = Label2.Caption & \n
Private Sub Command2_Click()
Dim i As Integer, j As Integer, p As Integer, t As Integer, k As Integer For i = 1 To n p = i
For j = i + 1 To n
If arr(j) > arr(p) Then p = j Next j
If p <> i Then
t = arr(i): arr(i) = arr(p): arr(p) = t End If Next i Print
Label3.Caption = \数组排序后顺序为:\For i = 1 To n
Label4.Caption = Label4.Caption & \Next i End Sub
Private Sub Form_Load() Command1.Caption = \输出\Command2.Caption = \排序\Label1.Caption = \Label2.Caption = \Label3.Caption = \Label4.Caption = \End Sub
2)将运行结果的界面截下来粘贴在下面
3)调试过程记录(错误情况及改正方法)
4. 使用控件数组设计如图所示简易计算器,能够实现基本的四则运算。设计的初始界面如
图一所示,运行结果如图二所示。(选作实验)
图一 图二