题目

学校需要统计学生的作业完成数,需要将学生的完成数按从高到低显示,下列程序模拟该信息处理过程,程序在数据库stud中找到的学生信息(编号和完成次数),并将所有学生按照完成数从高到低显示。先将所有学生的编号和完成次数从数据库stud的info表中ID和finshed两字段中取出分别保存在数组a和数组b中,第i个学生的编号保存在a(i)中,对应的作业完成次数保存在b(i)中。 数据库文件“stud. accdb”信息如图所示。 程序界面如图所示,左边列表框List1中显示所有学生信息(包括编号和完成次数),单击“排序”按钮(Command),所有编号按照作业完成次数从高到低显示在列表框List2中。 代码如下: Dim conn As New ADODB. Connection Dim rs As New ADODB. Recordset Dim n As Integer Dim a(500)As String Dim b(500)As Integer Private Sub Fom Load()     Dim i As Integer     conn. Connection String="Provider=Mi-crosoft. AC     A.OLEDB. 12.0;DATA Source="& App. Path &"\stud. accdb"     conn Open     Set rs. Active Connection=conn     rs. Open "Select*From info"     n=0     Do While not rs.EOF            '到记录集最后一条记录后退出循环         n=n+1         a(n)=rs. fields("id")         b(n)=rs. fields("finshed")         rs. MoveNext                 '移动到下一条记录     Loop     For i=1 To n         List1. AddItem a(i)+" "+Str(b(i))     Next i     rs. Close     conn. Close     Set rs= Nothing     Set conn= Nothing End sub Private Sub Command1_Click()     Dim i As Integer, j As Integer, t1 As Integer, t2 As String, k As Integer     For i=1 To n-1             'n表示学生总数         k=i           'k保存第i大的数,一开始假定是a(i)         For j=i+1 To n             If b(k)<b(j) Then k=j            '比较完成数                 ①                   If    ②      Then                 t1=b(i): b(i)=b(k): b(k)=t1           '交换完成次数                 t2=a(i): a(i)=a(k): a(k)=t2           '交换编号             End If         Next j     Next i     For i=1 To n          '在列表框List2中输出排序结果         Listt2. Addltem a(i)+" "+Str(b(i))     Next i End sub (1) 当“Form_Load()”事件处理过程运行结束时,变量n的值为。 (2) 加虚线框中的代码采用的排序算法为。 (3) 为实现上述功能,程序中划线处的代码为①;②。 答案: 【1】46 【1】选择排序 【1】Next j【2】k<>i
信息技术 试题推荐
最近更新