题目

小王编写一个VB程序模拟数据筛选,功能如下:程序运行时从数据库中读取成绩数据,按升序排序后在列表框List1中显示,在文本框Text1中输入成绩1,在文本框Text2中输入成绩2,单击“筛选”按钮Command1,筛选出大于等于成绩1且小于等于成绩2的记录,并显示在列表框List2中,程序运行界面如图所示。 (1) 运行上述程序,若在文本框Text1中输入75,Text2中输入85,单击“筛选”按钮,则筛选到的记录有条(填数字)。 (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。 Const n = 20 Dim score(1 To n) As Single Function adj(s As String, n As Integer) ‘此函数功能:在字符串 s 前添加若干个空格,使其长度变为 n。代码略 End Function Function search_left(key As Integer) ‘此函数功能:返回大于等于 key 的数组元素的起始位置。代码略。 End Function Function search_right(key As Integer)     Dim i As Integer, j As Integer, m As Integer     i = 1: j = n     Do While i <= j                  If key >= score(m) Then i = m + 1 Else j = m - 1     Loop     End Function Private Sub Form_Load() ‘从数据库中读取成绩存数组 score,记录数存 n,并对此数组 score 升序排序,代码略 End Sub Private Sub Command1_Click()     Dim num1 As Integer, num2 As Integer, first As Integer, last As Integer     List2.Clear     num1 = Val(Text1.Text): num2 = Val(Text2.Text)     first = search_left(num1): last = search_right(num2)         If total <= 0 Then         List2.AddItem "无筛选到的记录!"     Else         List2.AddItem "筛选到" + Str(total) + "条记录!"         List2.AddItem "依次是:"         For i = first To last             List2.AddItem adj(Str(i), 3) + adj(Str(score(i)), 6)         Next i     End If End Sub 答案: 【1】8 【1】m = (i + j) \ 2【2】search_right = i – 1 或 search_right = j或search_right = i或search_right = j+1【3】total = last - first + 1或total = last – first或total = last – first
信息技术 试题推荐
最近更新