题目

【加试题】小李编写一个统计学生选考科目的VB程序,算法的基本思想是:检查每位学生选课组合的编码是否有效,对有效选择结果进行科目统计,根据各科次占有效人数的百分率求出各科排名。程序运行时,单击“显示”按钮Commmad1,学生选课数据显示在列表框list1中,各科编号及对应科目名称显示列表框list2中,单击“统计”按钮Commmad2,选课结果按各科百分率由高到低显示在列表框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 IntegerPrivate Sub Command1_Click()Dim i As Integer, km As Stringkm = "物理化学生物政治历史地理技术"Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, sql As Stringcn.Open "provider=Microsoft.Jet.oledb.4.0;Data Source=" + App.Path + "\students.mdb"rs.Open "select * from choose", cnDo While Not rs.EOFn = n + 1 : ach(n) = rs.Fields("subject") : rs.MoveNextLooprs.Closecn.CloseSet rs = NothingSet cn = NothingFor i = 1 To 7bno(i) = ibname(i) = Mid(km, (i - 1) * 2 + 1, 2)   List2.AddItem Str(bno(i)) + "---" + bname(i)Next iEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, k As IntegerDim c As String, per As IntegerFor i = 1 To nIf check(ach(i)) = True ThenFor j = 1 To 3c = Mid(ach(i), j, 1)bnum(Val(c)) =         Next jnum = num + 1End IfNext ii = 1Do While i <= 7'该循环得到各学科被选人数的名次bmc(i) = 1For j = 1 To 7If bnum(j) >bnum(i) Then       Next ji = i + 1LoopFor i = 1 To 7For j = 1 To 7If        Thenper = Int(bnum(j) * 100 / num * 100) / 100List3.AddItem Str(bno(j)) + "---" + bname(j) + "---" + Str(per) + "%"End IfNext jNext iEnd SubFunction check(s As String) As Boolean   '代码略! 若学生选科代码有效,函数返回True,否则返回FalseEnd Function 答案: 【1】subject bnum(Val(c)) + 1;bmc(i) = bmc(i) + 1;i = bmc(j)
信息技术 试题推荐
最近更新