题库 高中信息

题干

对学生数据排序,排序后男生在前,女生在后,(“M”表示男,“F”表示女),男生和女生分别按“姓名”升序排序。编写一个VB程序,功能如下:在列表框list1中显示排序前学生数据,单击“排序”按钮Command1,在列表框list2中显示排序后的结果。程序运行界面如图所示。

实现上述功能的 VB程序如下,但加框处代码有错,请改正。
Const n = 10
Dim xm(1 To n)As String, xb(1 To n)As String
Function adj(sAs String, n As Integer) As String
'函数功能:在字符串 s 后添加若干个空格,使其长度变为 n,代码略。
End Function
Private Sub Form1_Load(   )
'读取 10 个学生姓名和性别分别存数组 xm、xb,
并在列表框 list1 中显示,代码略。
End Sub
Private Sub Command1Click
Dim i As Integer, j As Integer
i = 1
Do While i <= n - 1

j = n-1 '(1)________

Do While j >= i + 1

If xb(j) = "M" And xb(j - 1) = "F" Or xm(j) < xm(j - 1) Then '(2)________
temp = xm(j): xm(j) = xm(j - 1): xm(j - 1) = temp
temp = xb(j): xb(j) = xb(j - 1): xb(j - 1) = temp
End If
j = j - 1

Loop

i = i + 1

Loop
For i = 1 To n

List2.AddItem adj(xm(i), 12) + " " + xb(i)

Next i
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-05-25 01:13:58

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

同类题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