编写一个商品类,包括货号,商品名称,单价,库存,商品类别等字段,且要封装属性。编写带参的构造函数和空构造函数。编写一个SHOW()方法显示类的所有属性。编写一个饮料类,继承于商品类,饮料类中多出一个容量属性。继承要求构造函数赋值。主函数中,创立一个长度为10的商品类数组。并创建3个以上的对象填充数组。通过循环调用数组每一个对象的show方法显示商品信息。用户输入商品的货号,查找是否存在该商品,存在则再让用户输入购买数量,并将该商品的库存量减去购买数量,同时显示付款总数,注意库存量不可为负数。如果查不到商品货号也提示输入有误。
1条回答 默认 最新
- 易只轻松熊 2023-06-17 18:13关注
using System; class Commodity { private string id; // 货号 private string name; // 商品名称 private double price; // 单价 private int stock; // 库存 private string category; // 商品类别 // 属性的封装 public string Id { get { return id; } set { id = value; } } public string Name { get { return name; } set { name = value; } } public double Price { get { return price; } set { price = value; } } public int Stock { get { return stock; } set { stock = value; } } public string Category { get { return category; } set { category = value; } } // 带参构造函数 public Commodity(string id, string name, double price, int stock, string category) { this.id = id; this.name = name; this.price = price; this.stock = stock; this.category = category; } // 空构造函数 public Commodity() { this.id = ""; this.name = ""; this.price = 0; this.stock = 0; this.category = ""; } // 显示所有属性 public void Show() { Console.WriteLine("货号:" + id); Console.WriteLine("商品名称:" + name); Console.WriteLine("单价:" + price); Console.WriteLine("库存:" + stock); Console.WriteLine("商品类别:" + category); } } class Beverage : Commodity { private double capacity; // 容量 // 容量属性的封装 public double Capacity { get { return capacity; } set { capacity = value; } } // 带参构造函数 public Beverage(string id, string name, double price, int stock, string category, double capacity) : base(id, name, price, stock, category) { this.capacity = capacity; } // 空构造函数 public Beverage() : base() { this.capacity = 0; } // 重写显示方法 public new void Show() { base.Show(); Console.WriteLine("容量:" + capacity); } } class Program { static void Main(string[] args) { Commodity[] commodities = new Commodity[10]; // 创建对象并填充数组 commodities[0] = new Commodity("001", "手机", 999.9, 100, "电子产品"); commodities[1] = new Commodity("002", "电视", 2999.9, 50, "电子产品"); commodities[2] = new Beverage("003", "可乐", 3.5, 200, "饮料", 500); commodities[3] = new Beverage("004", "矿泉水", 2.0, 500, "饮料", 550); // ... // 循环调用显示方法 for (int i = 0; i < commodities.Length; i++) { if (commodities[i] != null) { Console.WriteLine("第" + (i + 1) + "个商品信息:"); commodities[i].Show(); Console.WriteLine(); } } // 查找商品并购买 Console.Write("请输入要购买的商品货号:"); string id = Console.ReadLine(); bool found = false; for (int i = 0; i < commodities.Length; i++) { if (commodities[i] != null && commodities[i].Id == id) { found = true; Console.Write("请输入购买数量:"); int quantity = int.Parse(Console.ReadLine()); if (quantity <= commodities[i].Stock) { commodities[i].Stock -= quantity; Console.WriteLine("购买成功,付款总额为:" + quantity * commodities[i].Price); } else { Console.WriteLine("库存不足!"); } break; } } if (!found) { Console.WriteLine("输入有误,未找到该商品!"); } Console.ReadKey(); } }
解决评论 打赏 举报无用 1
悬赏问题
- ¥15 Django的安装调试运行
- ¥15 带序列特征的多输出预测模型
- ¥15 VB.NET读取电脑主板序列号
- ¥15 Python 如何安装 distutils模块
- ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
- ¥15 资源泄露软件闪退怎么解决?
- ¥15 CCF-CSP 2023 第三题 解压缩(50%)
- ¥30 comfyui openpose报错
- ¥20 Wpf Datarid单元格闪烁效果的实现
- ¥15 图像分割、图像边缘提取