毕业设计超市系统(七)购物车

购物车是由购物单元组成的

在这个设计里 我让同一种商品做为一个单元来处理,同时这种单元也是记录在销售信息表里面的。

代码如下:

 

购物单元
''' <summary>
''' 可序列化的购物清单项目
''' </summary>
''' <remarks></remarks>
<Serializable()> _
Public Class CartItem

    
Private _goodsname As String
    
Private _price As Double
    
Private _count As Integer
    
Private _types As String
    
''' <summary>
    
''' 商品名字
    
''' </summary>
    
''' <value></value>
    
''' <returns></returns>
    
''' <remarks></remarks>
    Public Property GoodsName() As String
        
Get
            
Return _goodsname
        
End Get
        
Set(ByVal value As String)
            _goodsname 
= value
        
End Set
    
End Property
    
''' <summary>
    
''' 商品价格
    
''' </summary>
    
''' <value></value>
    
''' <returns></returns>
    
''' <remarks></remarks>
    Public ReadOnly Property Price() As Double
        
Get
            
Return _price
        
End Get
    
End Property
    
''' <summary>
    
''' 商品选购数量
    
''' </summary>
    
''' <value></value>
    
''' <returns></returns>
    
''' <remarks></remarks>
    Public Property Count() As Integer
        
Get
            
Return _count
        
End Get
        
Set(ByVal value As Integer)
            _count 
= value
        
End Set
    
End Property
    
''' <summary>
    
''' 商品总价值
    
''' </summary>
    
''' <value></value>
    
''' <returns></returns>
    
''' <remarks></remarks>
    Public ReadOnly Property SubTotal() As Double
        
Get
            
Return _price * _count
        
End Get
    
End Property
    
''' <summary>
    
''' 商品的类型
    
''' </summary>
    
''' <value></value>
    
''' <returns></returns>
    
''' <remarks></remarks>
    Public Property Types() As String
        
Get
            
Return _types
        
End Get
        
Set(ByVal value As String)
            _types 
= value
        
End Set
    
End Property
    
''' <summary>
    
''' 无参构造方法
    
''' </summary>
    
''' <remarks></remarks>
    Public Sub New()

    
End Sub
    
''' <summary>
    
''' 有参构造方法
    
''' </summary>
    
''' <param name="gname">商品名字</param>
    
''' <param name="price">商品价格</param>
    
''' <param name="count">商品数量</param>
    
''' <param name="types">商品类型</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal gname As StringByVal price As DoubleByVal count As IntegerByVal types As String)
        
With Me
            ._goodsname 
= gname
            ._price 
= price
            ._count 
= count
            ._types 
= Types
        
End With
    
End Sub
    
''' <summary>
    
''' 通过商品的名字比较两个商品是不是同一种商品
    
''' </summary>
    
''' <param name="obj">要参与比较的商品</param>
    
''' <returns>是否为同一商品</returns>
    
''' <remarks></remarks>
    Public Overrides Function Equals(ByVal obj As ObjectAs Boolean
        
Dim c As CartItem = CType(obj, CartItem)
        
Return c.GoodsName = Me.GoodsName
    
End Function
End Class

 

 

 

下面是购物车的代码:

 

购物车
Imports System.IO
Imports System.Runtime.Serialization.Formatters
''' <summary>
''' 建立购物车设置为可序列化的类型
''' </summary>
''' <remarks></remarks>
<Serializable()> _
Public Class Cart
    
''' <summary>
    
''' 给购物车添加商品
    
''' </summary>
    
''' <param name="cartitem">单个商品</param>
    
''' <remarks></remarks>
    Public Sub Add(ByVal cartitem As CartItem)
        
'判断是否已经有这种商品了
        If _mylist.Contains(cartitem) Then
            
'有就给该种商品添加数量
            _mylist.Item(_mylist.IndexOf(cartitem)).Count += cartitem.Count
        
Else
            
'没有就添加该商品到购物车
            _mylist.Add(cartitem)
        
End If
    
End Sub
    
''' <summary>
    
''' 删除某一种商品
    
''' </summary>
    
''' <param name="cart"></param>
    
''' <remarks></remarks>
    Public Sub Remove(ByVal cart As CartItem)
        
If _mylist.IndexOf(cart) <> -1 Then
            _mylist.Remove(cart)
        
End If
    
End Sub
    
''' <summary>
    
''' 清空购物车
    
''' </summary>
    
''' <remarks></remarks>
    Public Sub Clear()
        _mylist.Clear()
    
End Sub
    
Private _mylist As New List(Of CartItem)
    
''' <summary>
    
''' 它里面有所有的要购买的商品信息
    
''' </summary>
    
''' <value></value>
    
''' <returns></returns>
    
''' <remarks></remarks>
    Public Property MyList() As List(Of CartItem)
        
Get
            
Return _mylist
        
End Get
        
Set(ByVal value As List(Of CartItem))
            _mylist 
= value
        
End Set
    
End Property
    
''' <summary>
    
''' 总的费用该是多少钱
    
''' </summary>
    
''' <returns></returns>
    
''' <remarks></remarks>
    Public ReadOnly Property TotalPay() As Double
        
Get
            
If _mylist.Count > 0 Then
                
Dim sum As Double
                
For Each i As CartItem In _mylist
                    sum 
+= i.SubTotal
                
Next
                
Return sum
            
Else
                
Return 0
            
End If
        
End Get
    
End Property

End Class

 

 

 

posted @ 2010-05-27 21:20  gege_s  Views(870)  Comments(0)    收藏  举报