1)计算每个人的应还款(应还款=应分摊的总金额-先行垫付的总金额);
2)根据所有人的应还款数据计算转账明细(应还款为正的人转给应还款为负的人)。
根据上述要求编写VB程序,功能如下:运行程序,读取消费记录数据并在列表框List 1中显示。单击“结算”按钮Command 1,在列表框List 2中显示每个人的应还款,在列表框List 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 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