题库 高中信息

题干

(加试题)小李与小王合作编写一个成绩统计的VB程序:小王编写一个过程,该过程从数据库读取某一指定科目的相关数据,存储在数组a中;小李编写一个过程,该过程依据数组a中的相关数据进行排序。小李与小王约定的数组a各元素含义如图所示。
数组元素
数组元素的含义
a(1)
存储班级数n
a(2)
从a(2)到a(n+1) 依次存储第1、2、…第n个班级人数

a(n+1)
a(n+2)
从a(n+2) 依次存储第1班每个学生的单科成绩、第2班每个学生的单科成绩、…第n班每个学生的单科成绩


 
程序功能如下:在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1,程序从数据库读取数据,数据存放与a()中,呈现方式如表所示;在文本框text2中输入第几班级,单击“开始排序”按钮Command2,程序对输入班级的学生成绩进行排序,结果输出在列表框List1中。程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)表示的是_____________ 
(2)分析程序,可知数据库的文件名为____________________
(3)请在划线处填入合适的代码。
Dim a(1 To 600) As Integer    '数组大小满足处理要求
Private Sub Command1_Click()  '本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中
Dim conn As New ADODB.Conncction
Dim rs As New ADODB.Recordset
conn ConncctionString = "provider=Microsoft.AC
A.OLEDB.12.0;data source=" + "Score.accdb"
conn.Open
Set rs.ActiveConnection = conn '本过程的其他语句略
End Sub
Private Sub Command2_Click() '依据数组a中的相关数据对第k个班级的学生平均分进行升序排序
Dim i As Integer, j As Integer, n As Integer  ‘i,j为循环变量,n为班级个数
Dim k as integer,t as integer
Dim p As Integer  ‘p为前几个班级的总人数
k=val(text2.text)
For i=2 to k  ‘求得前几个班级的总人数
p=p+a(i)
Next i
t=___________‘t为第k-1个班级最后一个学生所在的位置
For i=t+1 to t+a(k+1)-1    ‘t+1为第k个班级第一位学生所在的位置,t+a(k+1)为第k个班级最后一个学生所在的位置
For j= __________ to i+1 step -1
If a(j)<a(j-1) then
k= a(j - 1): a(j - 1) = a(j): a(j) = k
Endif
Next j
Next i
For i=1 to a(k+1)
List1.additem str(i)+”    ”+str(a(t+i))
Next i
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-05-06 06:17:18

答案(点此获取答案解析)

同类题2

酒店房间管理:酒店房间(房间数小于10000)编号按1、2、3…连续编号,老板对于没有出租的房子使用如下的方法来登记管理。连续的空房间,登记第一间的编号和连续的空房间数,比如空房间1,2, 6,7,8,10,则登记3条记录,分别为(1  2),(6  3),(10  1),某旅客退房了,需要把这房子也登记上去,有四种情况需要处理:
1)上靠,例如退的房间号为3,则原来登记的3条记录变成(1  3,(6  3),(10  1);
2)下靠,例如退的房间号为5,则原来登记的3条记录变成(1  2),(5  4,(10  1);
3)上下不靠,例如退的房间号为4,则登记的记录数变成4条(1  2) ,(4  1,(6  3),(10  1);
4)上下靠,例如退的房间号为9,则登记的记录数变成2条(1,2),65
小王依据上述描述设计了如下VB程序。请回答下列问题:
(1)当登记的记录有3条,分别为(1,4),(6,2),(10,3),现在某旅客退掉5号房间,则登记的记录变成_______________________________
(2)请在划线处填入合适的代码。
Const n = 5000
Dim a(0 To n) As Integer  'a(i)保存第i条记录的开始房间号
Dim b(0 To n) As Integer  ' b(i)保存第i条记录的房间数
Dim c As Integer, k As Integer, sp As Integer  'k为原始记录数
'读取原始k条记录的数据,依次存入a(1),b(1),a(2),b(2)…a(k),b(k),代码略
'为了程序处理方便,虚设了下面2条记录
a(0) = 0 : b(0) = 0 : sp = k + 1 :a(sp) = 10000 : b(sp) = 0
Private Sub Command1_Click()
Dim i As Integer
c = Val(Text1.Text)  'c为退掉的房间号
i = 1
Do While a(i) < c   '查找房间c,应该登记在某位置
i = i + 1
Loop
i = i - 1
'下面为处理退房登记问题
If a(i) + b(i) = c Then
If __________ Then   '第4种情况,上下靠
b(i) = b(i) + 1 + b(i + 1)
For j = i + 1 To sp - 1
a(j) = a(j + 1) : b(j) = b(j + 1)
Next  j
sp = sp - 1
Else     '第1种情况,上靠
b(i) = b(i) + 1
End If
ElseIf  c + 1 = a(i + 1) Then  '第2种情况,下靠
a(i + 1) = c : b(i + 1) = b(i + 1) + 1
Else '第3种情况,上下不靠
For j =_____________________
a(j) = a(j - 1) : b(j) = b(j - 1)
Next j
a(i + 1) = c : b(i + 1) = 1 : sp = sp + 1
End If
‘下面为输出登记的记录,不包括虚设的两条记录
For i =1 to _______
List3.AddItem "第" & Str(i) & "记录(" & Str(a(i)) & "," & Str(b(i)) & ")"
Next i
End Sub

同类题5

甲乙双方进行一场球类比赛,一局计分的规则是:赢1球得1分,用“1”表示;输1球失1分,用“0”表示。当任一方得分大于等于6分,且领先对方2分及以上,领先方赢一局。如甲选手一局比赛数据为“101110101”,表示甲选手得6分失3分,局比分
小王用一个字符串记录了甲选手多局比赛数据,其中有一处错误,位于连续多个“0”的最后一个。为了找出错误,小王的处理方法如图a所示,对示例中疑似错误位置6和20分别修改数据,并统计每局比分。他编写了VB程序,功能如下:在窗体Form l的文本框Text l中输入记录数据,单击“分析”按钮Command 1,在列表框List 1中输出修改位置以及修改后每局的比分。程序运行界面如图b所示。
(1)下列对象中有Text属性的是________(单选,填字母:
A.Command 1/B.Form 1/C.Text 1)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
   
图a 图b
Private Sub Command 1_Click()
Dim sp As String,s As String s    s存储甲选手多局比赛的记录数据,长度小于50
Dim a(1 To 50)As Integer,e(1 To 20)As Integer
Dim I As Integer,j As Integer,k As Integer,n As Integer,m As Integer
Dim fl As Integer,f2 As Integer



  
Next i



    找出疑似错误位置

Loop
If     Then

End If

Loop
    对每个疑似错误位置分别修改数据,并统计每局比分






If  Then


End If
Next j

List 1.AddItem sp
   
Next i
End Sub