小白求解决

qq_42435375 2019-09-15 04:50:39
...全文
1503 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
XBodhi. 2019-09-21
  • 打赏
  • 举报
回复
引用 4 楼 阿蒙Amon 的回复:
借#1楼代码改了一下,我感觉应该更符合编码规范和提议: [code=csharp] public class BillModel { /// <summary> /// 单价 /// </summary> public decimal Price { get; set; } /// <summary> /// 数量 /// </summary> public decimal Count { get; set; } /// <summary> /// 折扣 /// </summary> public decimal Discount { get { if (IsPromotion) return 0.6M; switch (MemberType) { case VIPType.Golden: return 0.9M; case VIPType.Platinum: return 0.8M; default: return 1.0M; } } } /// <summary> /// 金额 /// </summary> public decimal Account { get { return Price * Discount * Count; } } /// <summary> /// 发生日期 /// </summary> public DateTime Date { get; set; } /// <summary> /// 是否折扣 /// </summary> public bool IsPromotion { get; set; } /// <summary> /// 会员类型: 0 普通会员,1 黄金会员,2 白金会员 /// </summary> public VIPType MemberType { get; set; } } public enum VIPType { Normal = 0, Golden = 1, Platinum = 2, }
可以的,最好再封装下 属性的 权限。设计好联动。[/code]
XBodhi. 2019-09-19
  • 打赏
  • 举报
回复
创建个类,然后定义属性,最后确定几个关键要素即可。 例如 会员等级,折扣,原价,进位,实收价,等等。具体语法你可以参考楼上的 代码。
  • 打赏
  • 举报
回复
这就是创建类,按照要求写一些成员和对应的方法……很难吗?这个自己看看书就会了,如果真要走程序员的路,主要是靠自己研究,上班时其实很多时候都是需要自学的,没有自学的能力,建议放弃……
  • 打赏
  • 举报
回复
很简单,就是利用if…else和switch…case语句罢了
血月云修 2019-09-18
  • 打赏
  • 举报
回复
你们也太惯着伸手党了吧
  • 打赏
  • 举报
回复
就像2楼说的创建一个类再加几个判断语句就做完了
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}

大概类似这样子,我是从改程序使用控件开始学的,控制台程序的输入输出就不太会写的0.0
  • 打赏
  • 举报
回复
这个应该不难,我也小白,零C#基础边工边学2个多月
蓝色提示里的我可能不晓得有没有用到,但是这个代码已经有头绪了
左耳边的期盼 2019-09-17
  • 打赏
  • 举报
回复
学习了。。。。
hztltgg 2019-09-17
  • 打赏
  • 举报
回复
加上日期,略作修改。

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

Dear200892 2019-09-17
  • 打赏
  • 举报
回复

    /// <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; }    
    }
hztltgg 2019-09-17
  • 打赏
  • 举报
回复
这个设计为一个账单类有问题,商品名称题目都没有出现,是否促销是商店控制,也不应该由订单控制,这书不是很好。 商品类 商品编号,商品名称、单价 会员类 会员编号,会员类型 购物车类 商品、数量 购物小票类 会员,购物集合,是否促销,折扣、金额 虽然不符合题目要求,可能更符合实际吧,用vb.net写了一个,一起探讨探讨。

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
大鱼> 2019-09-16
  • 打赏
  • 举报
回复
bgj1094342369 2019-09-16
  • 打赏
  • 举报
回复
public class zd{ public int dj; public int zk; public zd(int DJ,int ZK){ dj=DJ*ZK; zk=ZK; } 大致是这么个意思,多看书
不远1210 2019-09-16
  • 打赏
  • 举报
回复
居然提了两个。 你可以说你想要做什么,然后在这个过程中遇到了什么问题,而不是抛出你的需求。 如果你依然一头雾水!亲,这边建议您认真学习呢!
键盘敲出字 2019-09-16
  • 打赏
  • 举报
回复
建个类就完成一半了,然后写几个判断就全完成了,不会建议放弃,转行。
bloodish 2019-09-16
  • 打赏
  • 举报
回复

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧