题库 高中信息

题干

小李编写一个统计学生选考科目的 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
上一题 下一题 0.99难度 None 更新时间:2020-03-26 03:13:33

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

同类题3

小杨同学编写了一个VB程序用于学校里7选3选课情况统计。该程序主要功能有:1.点击“生成选课组合”按钮 Commandl,生成35种选课组合;2.点击“统计选课情况”按钮 Command2,统计出各种组合的选课人数;运行界面如下图。实现上述功能的VB程序如下,请回答下列问题:

(1)分析程序代码,如图里“选课组合”序号为30的组合名称为:___________________。
(2)请在划线处填入合适的代码。请回答下列问题:
Dim zh(1 To 16) As String, zrs As Integer
Dim xk(1 To1000) As String'存放同学的选课科目组合,已知学生人数少于1000人
Dim zh2(1 To 35) As String'存放35种选课科目组合
Dim rstj(1 To 35) As Integer'存放各种选课组合选课人数
Private Sub Form_ Load()
‘本过程从数据库中读取学生的选课情况数据,存放在数组xk中,学生的总人数存放在变量zrs。’代码略
End Sub
Private Sub Command l_ Click( )
Dim i As Integer,j As Integer, m As Integer, n As Integer, k As Integer
Dim km(1 To 7)As String
Listl.Clear
List1. AddIton“序号”+“” +“组合名称”
km(1)= “物”:km(2)= “化”:km(3)= “生”km(4)= “政”
km(5)= “史”km(6)= “地”:km(7)= “技”
m= 1
For i= 1 To 5
For k= i+1 To 6

zh(m)=km(i)+ km(k)

m= m+ 1

Next k
Next i
j= 3:n= 1:y= j
For i= 1 To m

For k= y To 7

zh2(n)=___________________________________
If n< = 9 Then
Listl. AddItem n &""&" "& zh2(n)
Else
Listl. AddItem n &"  "& zh2(n)
End If
n= n+ 1

Next k

y= y+ 1

If y=8 Then

j= ___________________________  :y= j

    End If
Next i
End sub
Private Sub Command2_ Click( )
Dim i As Integer

List2. Clear

List2. Additon"组合名称"+""+"选课人数”

For i= 1 To 35

rstj(i)=_____________________________

List2 AddItem zh2(i)+" "+ Str (rstj (i))
Next i
End Sub
Function tj (zhmc As String) As Integer'统计某种选课组合的选课人数
Dim i As Integer, rs As Integer
rs= 0
For i= I To zrs

If zhmc = xk(i) Then

rs= rs+ 1

End If

Next i
tj= rs
End Function