MST
星途 面试题库

面试题:C#条件语句与复杂业务逻辑结合

假设你正在开发一个电商系统,有一个订单类`Order`,包含属性`OrderAmount`(订单金额)、`IsVIP`(是否是VIP客户,布尔类型)。根据以下业务逻辑编写C#代码:如果是VIP客户且订单金额大于500,给予15%的折扣;如果是VIP客户且订单金额大于200小于等于500,给予10%的折扣;如果不是VIP客户且订单金额大于1000,给予8%的折扣;其他情况无折扣。计算并输出折扣后的订单金额。请给出完整的C#类和方法实现。
43.9万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试
using System;

public class Order
{
    public decimal OrderAmount { get; set; }
    public bool IsVIP { get; set; }

    public decimal CalculateDiscountedAmount()
    {
        decimal discountedAmount = OrderAmount;
        if (IsVIP)
        {
            if (OrderAmount > 500)
            {
                discountedAmount = OrderAmount * (1 - 0.15m);
            }
            else if (OrderAmount > 200)
            {
                discountedAmount = OrderAmount * (1 - 0.1m);
            }
        }
        else
        {
            if (OrderAmount > 1000)
            {
                discountedAmount = OrderAmount * (1 - 0.08m);
            }
        }
        return discountedAmount;
    }
}

你可以使用以下方式测试这个类:

class Program
{
    static void Main()
    {
        Order order1 = new Order { OrderAmount = 600, IsVIP = true };
        Console.WriteLine($"折扣后的订单金额: {order1.CalculateDiscountedAmount()}");

        Order order2 = new Order { OrderAmount = 300, IsVIP = true };
        Console.WriteLine($"折扣后的订单金额: {order2.CalculateDiscountedAmount()}");

        Order order3 = new Order { OrderAmount = 1200, IsVIP = false };
        Console.WriteLine($"折扣后的订单金额: {order3.CalculateDiscountedAmount()}");

        Order order4 = new Order { OrderAmount = 800, IsVIP = false };
        Console.WriteLine($"折扣后的订单金额: {order4.CalculateDiscountedAmount()}");
    }
}