当前位置: 高中信息技术 / 综合题
  • 1. (2022·浙江) 有m个人结伴旅行(m≤9,每个人用整数1~m编号)。期间既有全员参与的集体活动,也有自主参与的小团队活动。每项活动的消费由参与人平均分摊,其中一人先行垫付并记录。记录内容包括该项活动的人均消费金额(整数,单位:元)、参与人。每项活动的参与人用字符串表示,垫付人排在第1位。如“25134”表示2、5、1、3、4号参与该项活动,其中2号是垫付人。旅行结束后依据所有活动的消费记录进行结算:

    1)计算每个人的应还款(应还款=应分摊的总金额-先行垫付的总金额);

    2)根据所有人的应还款数据计算转账明细(应还款为正的人转给应还款为负的人)。

    根据上述要求编写VB程序,功能如下:运行程序,读取消费记录数据并在列表框List 1中显示。单击“结算”按钮Command 1,在列表框List 2中显示每个人的应还款,在列表框List 3中显示转账明细。程序运行界面如图所示。

    1. (1) 结合程序与界面可知,AddItem是List 2的(单选,填字母:A .方法名/B .事件名/C .属性名)。
    2. (2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

      Const n=9, m=15

      Dim x(1 To n)As Integer       ‘x(i)存储第i项消费记录的人均消费金额

      Dim a(1 To n)As String        ‘a(i)存储第i项消费记录的参与人

      Private Sub Form_Load( )

          ‘读取所有消费记录,存入数组x和a中,并显示在列表框List 1中

           ‘代码略

      End Sub

      Private Sub Command1_Click( )

          Dim i As Integer, j As Integer, k As Integer, p As Integer

          Dim c As Integer, w As Integer, v As Integer

          Dim b(1 To m)As Integer        ‘保存应还款数据

          For i= 1 To m

              b(i)=0

          Next i

          For i=1 To n      ‘根据消费记录计算应还款

              k=Len(a(i))

              p=Val(Mid(a(i), 1, 1))

              b(p)=b(p)-(k–1)*x(i)

              For j=2 To k

                  p=Val(Mid(a(i), j, 1))

                  

              Next j

          Next i

          c=0

          For i=1 To m

              List 2. AddItem Str(i)+“号”+Str(b(i))

              If b(i)>0 Then c=c+1

          Next i

          i=1 : j=1               ‘根据应还款数据计算转账明细

          Do While  

              Do While b(i)<=0

                  i=i+1

              Loop

          Do While b(j)>=0

              j=j+1

          Loop:

              

              If w>0 Then  Else v =b(i)

              b(i)=b(i)-v:b(j)=b(j)+v

              List 3. AddItem Str(i)+“号->”+Str(j)+“号   ”+Str(v)

              If w<=0 Then c=c–1

          Loop

      End Sub

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

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