初学vb,为了加深了解,写了一个程序,当作练习! Public Class CashRegister Structure commodity Dim category As String Dim name As String Dim price As Double End Structure Public commodities(30) As commodity Public COMMODITY_DISCOUNT As Double = 0.3 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load commodities(0).category = "化妆品" commodities(0).name = "兰蔻眼霜" commodities(0).price = 350 commodities(1).category = "化妆品" commodities(1).name = "欧莱雅保湿霜" commodities(1).price = 300 commodities(2).category = "化妆品" commodities(2).name = "路得清洗面奶" commodities(2).price = 50 commodities(3).category = "箱包" commodities(3).name = "鳄鱼钱包" commodities(3).price = 380 commodities(4).category = "箱包" commodities(4).name = "polo女包" commodities(4).price = 800 commodities(5).category = "箱包" commodities(5).name = "米奇休闲包" commodities(5).price = 400 commodities(6).category = "床上用品" commodities(6).name = "睡得香双人被" commodities(6).price = 400 commodities(7).category = "床上用品" commodities(7).name = "安心睡枕" commodities(7).price = 150 commodities(8).category = "女装" commodities(8).name = "新款格裙" commodities(8).price = 580 commodities(9).category = "女装" commodities(9).name = "真维斯衬衫" commodities(9).price = 150 commodities(10).category = "女装" commodities(10).name = "幸福羊毛衫" commodities(10).price = 420 End Sub Private Sub cbxCategory_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbxCategory.SelectedIndexChanged If cbxCategory.Text = "" Then Return End If Dim i As Int16 lbxCategory.Items.Clear() For i = 1 To commodities.Length - 1 If cbxCategory.Text = commodities(i).category Then lbxCategory.Items.Add(commodities(i).name) End If Next tbxName.Text = "" tbxNumber.Text = "" tbxPrice.Text = "" tbxDiscount.Text = "" End Sub Private Sub lbxCategory_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbxCategory.SelectedIndexChanged tbxName.Text = commodities(lbxCategory.SelectedValue).name Dim i As Int16 For i = 1 To commodities.Length - 1 If lbxCategory.Text = commodities(i).name Then tbxName.Text = commodities(i).name tbxNumber.Text = "1" tbxPrice.Text = commodities(i).price tbxDiscount.Text = COMMODITY_DISCOUNT End If Next End Sub Private Sub btnBuyIt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuyIt.Click If tbxName.Text = "" Then Return End If Dim newItem As ListViewItem newItem = New ListViewItem(tbxName.Text) newItem.SubItems.Add(tbxNumber.Text) newItem.SubItems.Add(tbxPrice.Text) newItem.SubItems.Add(tbxDiscount.Text) newItem.SubItems.Add(Integer.Parse(tbxNumber.Text) * Double.Parse(tbxPrice.Text) * Double.Parse(tbxDiscount.Text)) lvwCommodities.Items.Add(newItem) End Sub Private Sub btnTotal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTotal.Click If lvwCommodities.Items.Count = 0 Then Return End If Dim i As Int16 Dim total As Double total = 0 For i = 0 To lvwCommodities.Items.Count - 1 Dim price As Double price = lvwCommodities.Items.Item(i).SubItems(4).Text total += Double.Parse(price) Next tbxPay.Text = total End Sub Private Sub tbxRealpay_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbxRealpay.TextChanged Dim change As Double change = Double.Parse(tbxRealpay.Text) - Double.Parse(tbxPay.Text) If change < 0 Then Return End If tbxChange.Text = change End Sub End Class