using System; using System.Collections.Generic;

namespace BeverageRevenue { class Program { static void Main(string[] args) { Drink[] drinks = new Drink[10]; int count = 0; string input = Console.ReadLine(); while (input != "0") { string[] inputArray = input.Split(); int type = Convert.ToInt32(inputArray[0]); int id = Convert.ToInt32(inputArray[1]); int number = Convert.ToInt32(inputArray[2]); double price = Convert.ToDouble(inputArray[3]); switch (type) { case 1: int region = Convert.ToInt32(inputArray[4]); if (region == 1) drinks[count] = new LocalTea(id, number, price); else drinks[count] = new OtherTea(id, number, price); break; case 2: int process = Convert.ToInt32(inputArray[4]); if (process == 1) drinks[count] = new FreshCoffee(id, number, price); else drinks[count] = new OtherCoffee(id, number, price); break; case 3: drinks[count] = new Milk(id, number, price); break; default: Console.WriteLine("Drink type error."); break; } if (drinks[count] != null) { double revenue = drinks[count].Revenue(); if (revenue == -1) Console.WriteLine("Drink ID error."); else if (revenue == -2) Console.WriteLine("Drink number error."); else if (revenue == -3) Console.WriteLine("Drink price error."); else Console.WriteLine(id + " " + Math.Round(revenue, 1)); count++; } if (count == 10) break; input = Console.ReadLine(); } } }

class Drink
{
    protected int id;
    protected int number;
    protected double price;

    public Drink(int id, int number, double price)
    {
        this.id = id;
        this.number = number;
        this.price = price;
    }

    public virtual double Revenue()
    {
        if (id >= 100 && id <= 999)
            return number * price;
        else
            return -1;
    }
}

class LocalTea : Drink
{
    private int region;
    private const double serviceCharge1 = 0.5;

    public LocalTea(int id, int number, double price) : base(id, number, price)
    {
        region = 1;
    }

    public override double Revenue()
    {
        if (id >= 100 && id <= 999)
        {
            if (number >= 0 && price >= 0)
                return number * price * (1 + serviceCharge1);
            else
                return -2;
        }
        else
            return -1;
    }
}

class OtherTea : Drink
{
    private int region;
    private const double serviceCharge2 = 0.2;

    public OtherTea(int id, int number, double price) : base(id, number, price)
    {
        region = 2;
    }

    public override double Revenue()
    {
        if (id >= 100 && id <= 999)
        {
            if (number >= 0 && price >= 0)
                return number * price * (1 + serviceCharge2);
            else
                return -2;
        }
        else
            return -1;
    }
}

class FreshCoffee : Drink
{
    private int process;
    private const double serviceCharge1 = 1;

    public FreshCoffee(int id, int number, double price) : base(id, number, price)
    {
        process = 1;
    }

    public override double Revenue()
    {
        if (id >= 100 && id <= 999)
        {
            if (number >= 0 && price >= 0)
                return number * price * (1 + serviceCharge1);
            else
                return -2;
        }
        else
            return -1;
    }
}

class OtherCoffee : Drink
{
    private int process;
    private const double serviceCharge2 = 0.2;

    public OtherCoffee(int id, int number, double price) : base(id, number, price)
    {
        process = 2;
    }

    public override double Revenue()
    {
        if (id >= 100 && id <= 999)
        {
            if (number >= 0 && price >= 0)
                return number * price * (1 + serviceCharge2);
            else
                return -2;
        }
        else
            return -1;
    }
}

class Milk : Drink
{
    public Milk(int id, int number, double price) : base(id, number, price)
    {
    }
}

}

C# 实现饮料销售系统:茶、咖啡、牛奶三种类型,计算服务费并输出收费信息

原文地址: https://www.cveoy.top/t/topic/nTve 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录