某校进行模拟考,现有25名学生的语数英三门课的成绩(按百分制)存储在数据库student.accdb中的数据表cj中,现取出各学生成绩存储在cj( )数组中,成绩存放如下:
运行程序,点击“数据导入”按钮后,在列表框list1中显示所有数据。点击“排序"按钮,按总分从高到低计算名次(成绩相同的名次相同),并按排名先后在列表框list2中显示,数据要求对齐。程序运行界面如图16-1所示:
(1)
观察程序及界面,可知“排序”按钮的对象名为。
(2)
实现上述程序功能的VB程序段如下,请在划线出填入合适的代码。
Dim cj(1 To 100) As Integer
Dim b(1 To 301) As Integer '分数为i的人数存入b(i)
Private Sub Cmdl_ Click( )
Dim conn
As New ADODB.Connection
Dim rs As
New ADODB.Recordset
conn.ConnectionString
= "Provider =Microsoft.ACE.OLEDB.12.0;Data Source= " &App.Path& "\studentaccdb"
conn.Open
Set rs.ActiveConnection
= conn
rs.Open
"SELECT*FROM cj"
n =1
Do While
Not rs.EOF
cj(n)= rs.Fields("语文"):cj(n+1) = rs.Fields("数学")
cj(n+2) = rs.Fields("英语"):cj(n+3) = cj(n)+cj(n+1)+cj(n+3)
rs.MoveNext
Loop
rs.Close:conn.Close
'此处代码略,用来实现将数据在list1中输出
End Sub
Private Sub paixu_ Click( )
Dim mc As
Integer
'预处理求b数组的值
For j=4 To
100 Step 4
Next j
'以下程序用于计算名次并按要求对齐输出
mc=1:b(301)=0
List2.AddItem"语文"+"数学"+"英语"+"总分"+"名次
List2.AddItem
"------------------------------------------------"
For i=300
To 1 Step -1
If b(i)
<> 0 Then
For
c=4 To 100 Step 4
If cj(c) = i Then
List2.AddItem
End If
Next
c
End If
Next i
End Sub
'以下函数输出时数据s时,不足7位末尾补空格
Function gs(s As Integer) As String
Dim cd As
String
ed = CStr(s)
For i=1 To
7 -Len(cd)
cd=
cd+" "
Next i
gs = cd
End Function
答案: 【1】paixu
【1】n=n+4【2】b(cj(i)) = b(cj(i)) + 1【3】mc=mc+b(i+1)【4】gs(cj(c-3)) + gs(cj(c- 2)) + gs(cj(c- 1)) + gs(cij(c)) + gs(mc)