神奇鼠侠 2022-04-27 16:21 采纳率: 87.5%
浏览 46
已结题

最后main里面应该怎么写?感觉前面应该也是错的,

创建4个类,分别是:饮品父类(Drink)、 子类可乐类(Cola)、 子类咖啡类
(Coffee)、子类奶茶类(Milk)。
父类Drink包含了饮品名称name、饮品价格price、饮品大小size、购买数量num、备注remark五个字段(其中remark用于备注是否加糖加冰等);另外还包含两个构造函数:无参构造和有参构造,有参构造中给各个字段赋值;还包含一个成员方法show()用于展示订单信息。
四个子类中分别都只包含一个无参构造和一个有参构造,有参构造中调用父类有参构造给字段赋值。
在main方法中尝试购买各种饮品,并输出购买的订单信息。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 饮品类
{
class Program
{public class Drink
{
public string name;
public int price;
public string size;
public int num;
public string remark;
public Drink()
{

        }
        public Drink (string name,int price,string size,int num,string remark)
        {
            this.name = name;
            this.price = price;
            this.size = size;
            this.num = num;
            this.remark = remark;
        }
        public void show()
        {
            Console.WriteLine("订单信息-----\n 购买饮料{0},花费{1},大小{2},数量{3},备注{4} ", name, price, size, num, remark);
        }
    }
    public string name
    {
        get { return name; }
        set { name = value; }
    }
    public int price
    {
        get { return price; }
        set { price = value; }
    }
    public string size
    {
        get { return size; }
        set { size = value; }
    }
    public int num
    {
        get { return num; }
        set { num = value; }
    }
    public string remark
    {
        get { return remark; }
        set { remark = value; }
    }
    public class cola:Drink
    {
        public cola()
        {

        }
        public cola(string name, int price, string size, int num, string remark)
        : base(name, price, size, num, remark) { }
        public void show()
        {
            Console.WriteLine("订单信息-----\n 购买饮料{0},花费{1},大小{2},数量{3},备注{4} ", name, price, size, num, remark);
        }
    }
    public class Coffee:Drink
    {
        public Coffee() { }
        public Coffee (string name, int price, string size, int num, string remark)
            :base(name, price, size, num, remark) { }
        public void show()
        {
            Console.WriteLine("订单信息-----\n 购买饮料{0},花费{1},大小{2},数量{3},备注{4} ", name, price, size, num, remark);
        }
    }
    public class Milk : Drink
    {
        public Milk () { }
        public Milk (string name, int price, string size, int num, string remark)
            : base(name, price, size, num, remark) { }
        public void show()
        {
            Console.WriteLine("订单信息-----\n 购买饮料{0},花费{1},大小{2},数量{3},备注{4} ", name, price, size, num, remark);
        }
    }
    static void Main(string[] args)
    {
        Console.WriteLine("购买饮料 1、可乐 2、咖啡 3、奶茶");
        int choice = Convert.ToInt32(Console.ReadLine());
        switch (choice)
        {
            case 1:
                cola co = new cola();
                co.name = "可乐";
                int beizi = Convert.ToInt32(Console.ReadLine());
                switch (beizi)
                {
                    case 1:
                }
        }
    }
}

}

  • 写回答

2条回答 默认 最新

  • 林一怂儿 前端领域新星创作者 2022-04-27 18:55
    关注

    给你稍微改了一下,稍微这哈哈哈,大概实现效果是这样的,每个人有每个的风格,参考一下,并不一定是最好的写法。

    img

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 饮品类
    {
        class Program
        {
            public class Drink
            {
                public string name;
                public int price;
                public string size;
                public int num;
                public string remark;
                public Drink()
                {
    
                }
                public Drink(string size, int num, string remark)
                {
                    this.size = size;
                    this.num = num;
                    this.remark = remark;
                }
                public void show()
                {
                    Console.WriteLine("订单信息-----\n 购买饮料{0},花费:{1},大小:{2},数量:{3},备注:{4} ", name, price, size, num, remark);
                }
            }
            public class Cola : Drink
            {
                public Cola()
                {
    
                }
                public Cola(string size, int num, string remark)
                : base(size, num, remark)
                {
                    this.name = "可乐";
                    this.price = (size == "中" ? 4 : size == "大" ? 6 : 8) * num;
                }
            }
            public class Coffee : Drink
            {
                public Coffee() { }
                public Coffee(string size, int num, string remark)
                    : base(size, num, remark)
                {
                    this.name = "咖啡";
                    this.price = (size == "中" ? 15 : size == "大" ? 19 : 24) * num;
                }
            }
            public class Milk : Drink
            {
                public Milk() { }
                public Milk(string size, int num, string remark)
                    : base(size, num, remark)
                {
                    // 奶茶不是Milk
                    this.name = "奶茶";
                    this.price = (size == "中" ? 12 : size == "大" ? 14 : 18) * num;
                }
            }
            static void Main(string[] args)
            {
    
                // 声明饮料单
                var drinkList = new string[] { "可乐", "咖啡", "奶茶" };
                var sizeList = new string[] { "中", "大", "特大" };
    
                Console.Write("选择购买饮料");
                for (int i = 0; i < drinkList.Length; i++)
                {
                    Console.Write(i + 1 + "、" + drinkList[i] + " ");
                }
                Console.WriteLine();
                int drinkChoice = Convert.ToInt32(Console.ReadLine());
                Console.Write("选择饮料大小");
                for (int i = 0; i < sizeList.Length; i++)
                {
                    Console.Write(i + 1 + "、" + sizeList[i] + " ");
                }
                Console.WriteLine();
                int sizeChoice = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("输入购买数量");
                int num = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("输入备注");
                string remark = Console.ReadLine();
    
                if (drinkChoice == 1) new Cola(sizeList[sizeChoice - 1], num, remark).show();
                else if (drinkChoice == 2) new Coffee(sizeList[sizeChoice - 1], num, remark).show();
                else if (drinkChoice == 3) new Milk(sizeList[sizeChoice - 1], num, remark).show();
    
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 4月27日

悬赏问题

  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢