当前位置: 高中信息技术 / 综合题
  • 1. (2019高三上·浙江期中) 某学校要进行年级优秀生表彰,需要对n人的优秀生单独排位置,每行m人。排队方阵规则:第1行从左向右坐,第2行从右向左坐,第3行从左向右坐,第4行从右向左坐……不断重复。最后一行如果人数不满m人,一律从左往右坐。VB程序功能如下:Text1输入m的值,确定每行坐的人数,单击按钮后,在List2列表框中显每位同学的位置,在List3列表框中显示每位同学的4位数位置编号(行号+列号),如下图所示。实现上述功能的VB代码如下:

    依据上述描述设计如下VB程序:

    Dim xh(1 To 100) As Integer , xm(1 To 100) As String, cj(1 To 100) As Integer Dim n As Integer, m As Integer

    Private Sub Form_Load()

    '本过程从数据库依次读取n位同学的序号、姓名及成绩,然后按成绩降序排序,将学生序号、姓名成绩存储在数组xh、xm、cj中,结果显示在List1中,

    End Sub

    '显示每位同学的位置

    Private Sub Command1_Click()

      Dim wz As String

      m=Val(Text1.Text)

      For i = 1 To n \ m

        For j = 1 To m

          If    ①   Then

            wz = wz + xm((i - 1) * m + j) + " "

          Else

            wz=xm((i-1) * m + j)+" "+wz

          End If

        Next j

          List2.AddItem wz

          wz =" "

      Next i

      If n Mod m <> 0 Then

        For i= To n      ‘加框处改错

        wz = wz + xm(i) + " "

        Next i

        List2.AddItem wz

      End If

    End Sub

    '显示每位同学的位置编号

    Private Sub Command2_Click()

      Dim zu As Integer

      Dim ha As String, hb As String

      List3.AddItem "序号" & vbTab & "姓名" & vbTab & "位置"   'vbTab 用于字符对齐

      For i = 1 To n

        zu =    ②  

        ha = Trim(str(zu))

        If Len(ha) = 1 Then ha = "0" + ha

        If zu Mod 2 = 0 And zu <= n \ m

          Then hb =    ③  

        Else

          hb = Str(i - m * (zu - 1))

        End If

        hb = Trim(str(hb))

        'Trim 函数功能是去除字符空格

        If Len(hb) = 1 Then hb = "0" + hb

        List3.AddItem str(i) & vbTab & xm(i) & vbTab+ ha + hb

      Next i

    End Sub

    请回答下列问题:

    1. (1) 在设计程序界面时,要清空文本框中的显示内容,应修改文本框的属性。
    2. (2) 程序中加框处代码有误,请改正。
    3. (3) 请在①②③划线处填入适当的代码。

       ② ③ 

微信扫码预览、分享更方便