组卷网 > 高中信息技术综合库 > 算法理论 > 算法实例的程序实现 > 排序算法及程序实现
题型:操作题 难度:0.65 引用次数:28 题号:10987320
为促进学生学习中互帮互助,每次考后章老师都会按成绩重新编排机房上课位置,编排要求如下:
(1) 按分数从高到低排序。若分数相同,则按学号进行升序排序。
(2) 以班级为单位,排出从 1 号开始的机房座位表。 章老师编写了一个位置编排功能的 VB 程序,运行界面如下图所示。
在文本框 Text1 中输入班级名称,单击“读数据库”按钮 Command1 后,从数据库读取数 据并显示在列表框 List1 中;单击“编排”按钮 Command2,在列表框 List2 中输出学号、姓名、 成绩和位置信息。

实现以上功能的 VB 程序如下,请回答下列问题:
(1)分析程序,可知数据库的文件名为_____
(2)请在划线处填入合适的代码。
Dim n   As Integer
Dim xh(1 To 40) As Integer, xm(1 To 40) As String, cj(1 To 40) As   Integer
Private Sub Command1_Click()
       '本过程在文本框 Text1 中输入班级名称,从数据库中读取指定班级的学号、姓名和成绩

       '数据分别存储在数组 xh,xm 和 cj 中
       Dim conn As New ADODB.Connection
       conn.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source="+ App.Path + "\js.accdb"
       conn.Open
       Dim rs As New ADODB.Recordset rs.ActiveConnection = conn
       rs.Open "select * from 技术"
       '本过程的其他语句略
End Sub
Private Sub Command2_Click()
       Dim wz(1 To 40) As Integer
       Dim i As Integer, j   As Integer
       List2.AddItem "学号"   & "       "   & "姓 名"   & "       "   & "成绩"   & "       "   & "位置"
       For i = 1 To n
             ______
       Next i
       For i = 1 To n
             For j = 1 To n
                    If          ______Then
                           wz(i) = wz(i) + 1
                    End If
             Next j
             List2.AddItem adj(Str(xh(i))) + adj(xm(i)) + adj(Str(cj(i))) + adj(Str(wz(i)))
       Next i
End Sub
Function adj(c As String) As String '固定输出 5 个字符长度
       Dim i As Integer
       ______
       For i = 1 To 5   - Len(c)
             adj = adj + "   "
       Next i
End Function
【知识点】 排序算法及程序实现

相似题推荐

操作题 | 适中 (0.65)
【推荐1】王老师收集了某班学生首考和二考的技术成绩,用以分析该班学生的提分情况.
编写VB程序,实现统计功能:程序运行时,在列表框List1中显示所有学生的学号和两次的选考成绩,在文本框Text1中输入提升分值V,单击“统计”按钮Command1后,将提升分值不小于指定分值的记录,按从高到低的顺序显示在列表框List2中.程序界面如图所示.

请回答下列问题:
(1)根据程序运行界面,“统计两次选考提分情况”是窗体Form1的______(单选,填字母:A.对象名/B.属性名/C.属性值/D.方法名)
(2)请在划线处填入合适的代码.
(3)程序中加框处代码有错,请改正.
Const n=50’学生数
Dim num(1 To n) As String, a(1 To 2*n) As Integer
Private Sub Form Load()
本过程读取学号、首考和二考的数据分别存储在数组num和a中,其中数组a存储两次成绩,例如a(1)、a(2)存放第1个学生的首考和二考成绩,a(3)、a(4)存放第2个学生的首考和二考成绩,以此类推,并在List1中显示,代码略
End Sub
Private Sub Command1_Click()

Dim v As Integer, k As Integer, i As Integer, t1 As Integer, t As String

Dim ts1 As Integer, ts2 As Integer, tf As Integer

v=Va1(Text1. Text)

List2.AddItem “学号” + “       ” + “提分情况”

i=1

Do While True

____________

ts1=a(2*k)-a(2*k-1)

For j=i+1 To n

ts2=a(2*j)-a(2*j-1)

If ts2 > ts1 Then

k=j

___

End If

Next j

If ts1 >= v Then

If k <> i Then

t=num(i):num(i)=num(k):num(k)=t

t1=a(2*i-1):a(2*i-1)=a(2*k-1):a(2*k-1)=t1

t1=a(2*i):a(2*i)=a(2*k):a(2*k)=t1

End If

___

List2. AddItem num(i)+ “       提升” + Str(tf)+ “分”

i=i+1

Else

Exit Do

End If

Loop

List2. AddItem “共有”+ Str(k)+ “个学生提升”+Str(v)+ “分及以上”


End Sub
2021-11-18更新 | 27次组卷
操作题 | 适中 (0.65)
名校
【推荐2】对8个元素“9,11,2,7,15,8,20,5”利用冒泡法进行从小到大的排序,需要进行______趟冒泡,第三趟的排序结果是_________________
2020-03-31更新 | 20次组卷
操作题 | 适中 (0.65)
名校
【推荐3】小明是电影迷,一般选择关注度较高的电影观看。为此他编写了一款对电影关注度进行排序的程序。程序运行界面如图所示。
  
​电影的关注度信息存放在数据库文件“ Movie.accdb”的“T_Movie”表中,如图所示。

VB应用程序的功能如下:程序运行时,列表框List1中显示从数据表中读取的电影编号和电影关注度数据。单击“排序”按钮Command1,在列表框List2中显示按电影关注度降序排序后的结果。代码如下:
Dim a(1 To 100) As String   `定义存储电影编号的数组a
Dim b(1 To 100) As Integer  `定义存储电影关注度的数组b
Dim n As Integer           `定义存储电影总数的变量n
Private Sub Command1_Click( )
Dim t1 As String, t2 As Integer

For i=1 To n

List2.AddItem  a(i)+"-----"+Str(b(i))


Next i
End Sub
Private Sub Form_Load( )
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString="provide=Microsoft.ACE.OLEDB.12.0;datasource="&App.Path&"\Movie.accdb"
conn.Open
set rs.ActiveConnection=conn
rs.Open "SELECT*FROM T_Movie"
n=0
Do While Not rs.EOF
      n=n+1
      a(n)=rs.Fields("电影编号")
      b(n)=rs.Fields("电影关注度")
     List1.AddItem a(n)+"-----"+Str(b(n))
       rs.MoveNext

Loop


rs.Close
conn.Close
End Sub
回答下列问题:
(1)分析程序,可知连接的数据库文件名为_________,程序中打开的数据表名为_________。
(2)当“Form_Load( ) ”事件处理过程运行结束时,变量n的值为_________。
(3)加实线框中的代码采用的排序算法为___________________________。
(4)为实现上述功能,程序中画线处的代码:①_________________;②___________________。
2020-08-17更新 | 8次组卷
共计 平均难度:一般