当前位置: 高中信息技术 / 综合题
  • 1. (2021·浙江模拟) 小明需要根据订单的取件距离依次安排快递员取件。快递员出发后不能中途折返,但可以接更远距离的快递订单。当小明新接到一个取件订单,他会依次安排可以取件的快递员取件,若该订单距离小于所有已出发的快递员的最远距离,则安排新的快递员出发取件。编写VB程序,实现上述功能。程序运行时,在文本框Text1中输入订单距离(各数值之间用“,”隔开),单击“安排”按钮Command1后,在标签Label2中显示最后一件快递的收取情况。运行界面如图所示。

    1. (1) 运行窗体中,具有Caption属性的对象共有类。
    2. (2) 若快递订单的取件距离依次为“243,123,167,309,183,229,87,333,183”,则最后距离为183的订单由号快递员收取。
    3. (3) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Dim dd(0 To 100) As Integer           '记录所有订单的取件距离

      Dim fp(0 To 100) As Integer             '存储第x个快递员取件的最远距离

      Dim xs(0 To 100) As String

      Private Sub Command1_Click()

          Dim n As Integer,i As Integer,k As Integer,s As String

          Dim left As Integer,right As Integer,m As Integer

          Dim x As Integer,r As Integer

          Randomize

          s = Text1.Text: n = 1: i = 1

          Do While i <= Len(s)

              k = i: ch = Mid(s, k, 1)

              Do While

                  k = k + 1: ch = Mid(s,k,1)

              Loop

              dd(n) = Val(Mid(s,i,k - i))

              i = k + 1: n = n + 1

          Loop

          x = 1: fp(x) = dd(1)

          For i = 2 To n - 1

              left = 1

              right = x

              Do While left <= right

                  m = (left + right) \ 2

                  If  Then

                      right = m - 1

                  Else

                      left = m + 1

                  End If

              Loop

              

              fp(r) = dd(i)

              If r = x + 1 Then x = x + 1

          Next i

          Label2.Caption = "第" + Str(i - 1) + "件快递将由第" + Str(r) + "号快递员收取"

          '列表框List1中显示每位快递员的收取情况,代码略

      End Sub

    4. (4) 程序加框处代码有错,请改正

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