当前位置: 高中信息技术 / 综合题
  • 1. (2021·浙江模拟) 整理书目清单。统计某书店每天畅销书的销售清单,计算库存,并根据每本书的警戒库存进行分组处理,按库存数小于等于警戒1库存数,库存数大于警戒1库存数但小于等于警戒2库存数,大于警戒2库存数的分成三组,并按库存数降序排序。某同学编写VB程序如下:从数据库读取销售清单并显示在列表框list1中,点击按钮“书目整理”计算每本书的库存(库存=原有库存数-已经销售的数量,不存在销售数量大于库存数的情况),根据每本书的两个警戒库存,将书目分成三组,每组书目按库存数量降序显示在列表框list2中,程序运行界面如图1所示。

    图1

    例如某天的销售清单,库存数据如图2所示,根据每本书的警戒1和警戒2库存,分组后的数据如图3所示。

    图2

    图3

    1. (1) 若有140本畅销书,用两位数编码(每位数可以是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F),则该编码对应的最小的进制数是进制。
    2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

      Dim stock(1 To 52) As Integer        '存储每本书警戒1和警戒2的库存数量

      Dim num(1 To 100) As Integer           '存储每本书每次的销售数量

      Dim bm(1 to 26) As String           '存储每本书的书名编码

      Dim kc(1 To 26) As Integer          '存储每本书的库存数量

      Dim sell(1 To 26) As Integer,q(1 To 26) As Integer

      Private Sub Form_Load()

          '从数据库读取书目销售清单数据,显示在list1中,分别存在数组

          'stock(1),stock(2)存书名编码A的警戒1库存,警戒2库存;stock(3),stock(4)存书名编码B的警戒1库存,警戒2库存,依次类推,代码略

      End sub

      Private Sub Command1_Click()

          For i = 1 To 100         '处理100条销售清单数据

              k = Asc(bm(i)) - 64

           

          Next i

          n = 0

          For i = 1 To 26      '更新库存数据

              If sell(i) > 0 Then

                  n = n + 1

                 

                  kc(i) = kc(i) - sell(i)

              End If

          Next i

          head = 0: tail = n + 1: j = 1

          Do While j < tail

              r = kc(q(j))

              If r <= stock(2 * q(j) - 1) Then

                  head = head + 1

                  If  Then t = q(head): q(head) = q(j): q(j) = t

                  j = j + 1

              ElseIf r > stock(2 * q(j)) Then

                  tail = tail - 1

                  t = q(j): q(j) = q(tail): q(tail) = t

              Else

                  j = j + 1

              End If

          Loop

          '分组排序及排序后数据显示在列表框list2中,代码略

      End Sub

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