有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)结合程序与界面可知,AddItem是List 2的_______(单选,填字母:A.方法名/B.事件名/C.属性名)。
(2)实现上述功能的部分VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
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 Commandl_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 n),As Integer '保存应还款数据
For i= 1 To m
b(i)=0
Next i
For i=1 To n '根据消费记录计算应还款ni
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=10 '根据应还款数据计算转账明细
Do While ___②
Do While b(i)<=0
i=i+1
Loop
Do While b(j)>=0
j=j+1
Loop:
____③
If w>0 Then| v=b(j) Else v =b(i)____
b(i)=b(i)-v:b(j)=b(j)+v
List 3. Addltem Str(i)+“号->”+Str(j)+“号 ”+Str(v)
If w<=0 Then c=c–1
Loop
End Sub