C# 实现饮料销售系统:茶、咖啡、牛奶三种类型,计算服务费并输出收费信息
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)
{
}
}
}
原文地址: https://www.cveoy.top/t/topic/nTve 著作权归作者所有。请勿转载和采集!