110,568
社区成员
发帖
与我相关
我的任务
分享
可以的,最好再封装下 属性的 权限。设计好联动。[/code]public class zd
{
double danjia=0;
int shuliang=0;
double zhekou=0;
bool cuxiao=falsel
int huiyuan=0;//0为普通,1为黄金,2为白金
pubic int Shuliang
{
get {return shuliang;}
set {shuliang=value;}
}
}
if(cuxiao==false)
{if (huiyuan==0)
{jine=(double)shuliang*danjia}
else if(huiyuan==1)
{jine=(double)shuliang*danjia*0.9}
}
else
{jine=(double)shuliang*danjia*0.6}
Module MainModule
'定义货架
Dim storage As New List(Of Product) From {
New Product With {.Id = "P001", .Name = "可乐", .Price = 2.5D},
New Product With {.Id = "P002", .Name = "大米", .Price = 50}}
'定义会员库
Dim members As New List(Of Member) From {
New Member With {.Id = "Vip001", .Name = "张三", .Type = Member.MemberType.Platinum},
New Member With {.Id = "Vip002", .Name = "李四", .Type = Member.MemberType.Gold}}
Sub Main()
'获取今天是否促销标记
Dim isDiscount As Boolean = False
'扫描会员卡,获取会员
Dim vipMember = members.First(Function(x) x.Id = "Vip001")
'会员结算,生成订单
Dim bill As New Bill(isDiscount, vipMember, New List(Of Cart))
'商品扫码
bill.Carts.Add(New Cart With {.Product = storage.First(Function(x) x.Id = "P001"), .Count = 2})
bill.Carts.Add(New Cart With {.Product = storage.First(Function(x) x.Id = "P002"), .Count = 1})
'打印小票
For Each i In bill.Carts
Console.WriteLine($"商品:{i.Product.Name} 数量:{i.Count}")
Next
Console.WriteLine($"会员:{bill.Member.Name} 折扣:{bill.Discount} 金额:{bill.Amount}")
Console.WriteLine($"日期:{bill.Date}")
Console.ReadKey()
End Sub
End Module
''' <summary>
''' 商品类
''' </summary>
Public Class Product
Public Property Id As String
Public Property Name As String
Public Property Price As Decimal
End Class
''' <summary>
''' 会员类
''' </summary>
Public Class Member
Public Property Id As String
Public Property Name As String
Public Property Type As MemberType = MemberType.Standard
Public ReadOnly Property Discount As Decimal
Get
Return Type / 10D
End Get
End Property
Public Enum MemberType
Standard = 10
Gold = 9
Platinum = 8
End Enum
End Class
''' <summary>
''' 购物车类
''' </summary>
Public Class Cart
Public Property Product As Product
Public Property Count As Integer
End Class
''' <summary>
''' 购物清单类
''' </summary>
Public Class Bill
Private isDiscount As Boolean
Public Sub New(isDiscount As Boolean, member As Member, carts As List(Of Cart))
Me.isDiscount = isDiscount
Me.Member = member
Me.Carts = carts
End Sub
Public ReadOnly Property Member As Member
Public ReadOnly Property Carts As New List(Of Cart)
Public ReadOnly Property Discount As Decimal
Get
Return If(isDiscount, 0.6D, Member.Discount)
End Get
End Property
Public ReadOnly Property Amount As Decimal
Get
Return Carts.Sum(Function(x) x.Product.Price * x.Count) * Discount
End Get
End Property
Public ReadOnly Property [Date] As Date = Now
End Class
/// <summary>
/// 现金收费类
/// </summary>
public class CashSuper
{
private double price;
private int quantity;
private double discount;
private double total;
private DateTime createDate;
private bool isPromotion;
private MemberType _VIP;
/// <summary>
/// 单价
/// </summary>
public double Price { get; set; }
/// <summary>
/// 数量
/// </summary>
public int Quantity { get; set; }
/// <summary>
/// 折扣
/// </summary>
public double Discount
{
get
{
if (IsPromotion)
{
return 0.6;
}
else
{
if (VIP == MemberType.Gold)
{
return 0.9;
}
else if (VIP == MemberType.Gold)
{
return 0.8;
}
else
{
return 1.0;
}
}
}
}
/// <summary>
/// 金额
/// </summary>
public double Total { get { return Price * Quantity * Discount; } }
/// <summary>
/// 日期
/// </summary>
public DateTime CreateDate { get; set; }
/// <summary>
/// 是否促销
/// </summary>
public bool IsPromotion { get; set; }
/// <summary>
/// 会员类型
/// </summary>
public MemberType VIP { get; set; }
}
Module MainModule
Sub Main()
'定义货架
Dim Storage As New List(Of Product) From {
New Product With {.Id = "P001", .Name = "可乐", .Price = 2.5D},
New Product With {.Id = "P002", .Name = "大米", .Price = 50}}
'定义会员
Dim member As New Member With {.Id = "Vip001", .Name = "张三", .Type = Member.MemberType.Platinum}
'获取今天是否促销标记
Dim isDiscount As Boolean = False
'会员入店,生成订单
Dim bill As New Bill(isDiscount, member, New List(Of Cart))
'购物
bill.Carts.Add(New Cart With {.Product = Storage(0), .Count = 2})
bill.Carts.Add(New Cart With {.Product = Storage(1), .Count = 1})
'结算
For Each i In bill.Carts
Console.WriteLine($"商品:{i.Product.Name} 数量:{i.Count}")
Next
Console.WriteLine($"会员:{bill.Member.Name} 折扣:{bill.Discount} 金额:{bill.Amount}")
Console.ReadKey()
End Sub
End Module
''' <summary>
''' 商品类
''' </summary>
Public Class Product
Public Property Id As String
Public Property Name As String
Public Property Price As Decimal
End Class
''' <summary>
''' 会员类
''' </summary>
Public Class Member
Public Property Id As String
Public Property Name As String
Public Property Type As MemberType = MemberType.Standard
Public ReadOnly Property Discount As Decimal
Get
Return Type / 10D
End Get
End Property
Public Enum MemberType
Standard = 10
Gold = 9
Platinum = 8
End Enum
End Class
''' <summary>
''' 购物车类
''' </summary>
Public Class Cart
Public Property Product As Product
Public Property Count As Integer
End Class
''' <summary>
''' 购物清单类
''' </summary>
Public Class Bill
Private isDiscount As Boolean
Public Sub New(isDiscount As Boolean, member As Member, carts As List(Of Cart))
Me.isDiscount = isDiscount
Me.Member = member
Me.Carts = carts
End Sub
Public Property Member As Member
Public ReadOnly Property Carts As New List(Of Cart)
Public ReadOnly Property Discount As Decimal
Get
If isDiscount Then
Return 0.6D
Else
Return Member.Discount
End If
End Get
End Property
Public ReadOnly Property Amount As Decimal
Get
Return Carts.Sum(Function(x) x.Product.Price * x.Count) * Discount
End Get
End Property
End Class
商品:可乐 数量:2
商品:大米 数量:1
会员:张三 折扣:0.8 金额:44.00