毕业设计超市系统(七)购物车
购物车是由购物单元组成的
在这个设计里 我让同一种商品做为一个单元来处理,同时这种单元也是记录在销售信息表里面的。
代码如下:
购物单元
''' <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 String, ByVal price As Double, ByVal count As Integer, ByVal 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 Object) As Boolean
Dim c As CartItem = CType(obj, CartItem)
Return c.GoodsName = Me.GoodsName
End Function
End Class
''' 可序列化的购物清单项目
''' </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 String, ByVal price As Double, ByVal count As Integer, ByVal 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 Object) As 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
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


浙公网安备 33010602011771号