题库 高中信息

题干

(加试题)小明想用VB编程制作一个名次计算器,首先将同学的成绩录入到计算机中,同时存放在数组a中,显示在左边列表框中。点击“排序”按钮后,程序会将成绩从高到低依次排序显示在右边的列表框中。运行界面如图所示,请在两个划线处填入代码。

Dim a(1 To 100) As Single
Dim shu As Integer
Private Sub Command1_Click()
Dim i, j, k As Integer
Dim t As Single
For i =" 1" To shu - 1
k = i
For j =" i" + 1 To shu
If___________Then
t =" a(j):" a(j) =" a(k):" a(k) = t
End If
Next j
Next i
For i =" 1" To shu
List2.AddItem "第" & Str(i) & "名:" & Str(a(i))
Next i
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim cj As Single
If KeyAscii =" 13" Then
cj = Val(Text1.Text)
If cj > 0 Then
________
List1.AddItem Str(shu) & ":" & Str(cj)
a(shu) = cj
End If
Text1.Text = ""
End If
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2016-03-16 09:37:24

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

同类题3

小李编写一个统计学生选考科目的 VB 程序,算法的基本思想是:检查每位学生选课组合的编码是否有效,对有效选择结果进行科目统计,根据各科占有效人数的百分率求出各科排名。程序运行时,单击“显示”按钮 Command1,学生选课数据显示在列表框 List1 中,各科编号及对应科目名称显示在列表框 List2 中,单击“统计”按钮 Command2,选课结果按各科百分率由高到低显示在列表框 List3 中,程序运行结果如图所示。

现上述功能的 VB 程序如下,请回答下列问题:
(1)学生选课的编码数据存储在数据表中,其字段名为__________________。
(2)请在划线处填入合适的代码。
Dim ach(1 To 500) As String  '存储各学生选课编码
Dim bno(1 To 10) As Integer '存储各科目编号
Dim bname(1 To 10) As String '存储各科目名称
Dim bnum(1 To 10) As Integer  '存储各科目被选次数
Dim bmc(1 To 10) As Integer '存储各科目被选的名次
Dim n As Integer, num As Integer
Private Sub Command1_Click()
Dim i As Integer, km As String
km = "物理化学生物政治历史地理技术"
Dim cn As New ADODB. Connection, rs As New
ADODB. Recordset, sql As String
cn. Open "provider=Microsoft. Jet. oledb. 4. 0;Data Source =" + App. Path + " \students. mdb"
rs. Open "select ∗ from choose", cn
Do While Not rs. EOF
n = n + 1 : ach(n) = rs. Fields("subject") : rs. MoveNext
Loop
rs. Close: cn. Close
Set rs = Nothing
Set cn = Nothing
For i = 1 To 7
bno(i) = i: bname(i) = Mid(km, (i - 1) ∗2 + 1, 2)
List2. AddItem Str (bno (i)) + " - - -" +bname(i)
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer
Dim c As String, per As Integer
For i = 1 To n
If check(ach(i)) =True Then
For j = 1 To 3
c = Mid(ach(i), j, 1)
bnum(Val(c)) = _________
Next j
num = num + 1
End If
Next i
i = 1
Do While i <= 7  '该循环得到各学科被选人数的名次
bmc(i) = 1
For j = 1 To 7
If bnum(j) > bnum(i) Then __________
Next j
i = i + 1
Loop
For i = 1 To 7
For j = 1 To 7
If _________Then
per = Int(bnum(j) ∗ 100 / num ∗ 100)/ 100
List3. AddItem Str(bno(j)) + "---" +bname(j) + "---" + Str(per) + "%"
End If
Next j
Next i
End Sub
Function check(s As String) As Boolean
'代码略,若学生选科代码有效,函数返回 True,否则返回 False
End Function

同类题5

   小杰为学校教务处编写了一个排考场座位的VB程序,考场采用“6排5列”共30人的模式,程序执行后,考生的考号与姓名显示在列表框List1中,单击“考场座位”按钮,考场号与座位显示在Text1中,程序运行界面如图所示,数据表如图

 
实现上述功能的VB程序如下,请回答下列问题:
(1)程序中读取的数据库文件是____________
(2)当“Form_load() 事件处理过程运行结束后,变量x的值为___________
(3)请在划线处填入合适的代码
Dim sName(100) As String
Dim kh(100) as string
Private Sub Command1_Click()
Dim y As Integer
Dim start As Integer    '考场第1位数据元素的下标
Dim pa As Integer '数据库导入VB时学生数据下标
Dim pb As Integer '考场座位数据下标
Dim i As Integer,j As Integer,k As Integer,m As Integer
Dim kcsName(100) As String
start = 1
pa = start
recCount = x-1
If recCount Mod 30 <> 0 Then
_______________
For i = 1 To y    '将当前考生人数添加到30的整数倍    
recCount = recCount +1
sName(recCount) = " "
Next i
End If
For j = 1 To recCount / 30   
pa = start   
pb = start   
For i = 1 To 30
kcsName(pb) = sName(pa)
pb = pb +1
If  i Mod 5 = 0 Then
pa = start +i \5
Else  
________________
End If   
Next i   
start = start +30
Next j
Text1.Text = " "
start = 1
For k = 1 To recCount /30   
m = start   
Text1.Text = Text1.Text + "第" + Str(k) + "考场" + vbCrLf   
'vbCrLf为换行标志符,实现Text1中内容换行显示  
For i = 1 To 6
For j = 1 To 5
Text1.Text = Text1.Text +"  " +kcsName(m)
m = m +1
Next j
Text1.Text = Text1.Text +vbCrLf   
Next i   
Text1.Text = Text1.Text +vbCrLf +vbCrLf
______________________
Next k
End Sub
Private Sub form_load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source=" & App.Path & "/kaochang.accdb"
conn.Open
Set rs.ActiveConnection = conn
rs.Open "select * from banji"
x = 1
List1.AddItem " 考号  姓名"
Do While Not rs.EOF    '
kh(x) = rs.fields("kh")
sName(x) = rs.fields("xm")
List1.AddItem kh(x) + "  " + sName(x)
x = x + 1
rs.MoveNext
Loop
rs.Close
End Sub