From 5e8c571bb3f2b632b4f374f4de99070ca5306a13 Mon Sep 17 00:00:00 2001 From: Kister Hakusan <2753888203@qq.com> Date: Fri, 10 Oct 2025 11:49:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9Lesson1=E7=BB=83=E4=B9=A0?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- C#进阶/Lesson1_ArrayList练习题/Program.cs | 229 ++++++++++++++++------ 1 file changed, 173 insertions(+), 56 deletions(-) diff --git a/C#进阶/Lesson1_ArrayList练习题/Program.cs b/C#进阶/Lesson1_ArrayList练习题/Program.cs index 0fb59ae..bce67c4 100644 --- a/C#进阶/Lesson1_ArrayList练习题/Program.cs +++ b/C#进阶/Lesson1_ArrayList练习题/Program.cs @@ -2,84 +2,201 @@ namespace Lesson1_ArrayList练习题 { + //class Backpack + //{ + // ArrayList stuff; + // int money; + // public Backpack() + // { + // money = 0; + // stuff = new ArrayList(); + // } + // public Backpack(int money) + // { + // stuff = new ArrayList(); + // this.money = money; + // } + // public void ShowBackPack() + // { + // Console.WriteLine("背包物品有:"); + // for (int i = 0; i < stuff.Count; i++) + // { + // if (i + 1 != stuff.Count) + // { + // Console.Write(stuff[i] + "、"); + // } + // else + // { + // Console.WriteLine(stuff[i]); + // } + // } + // } + // public void BuyStuff(Object obj,int cost) + // { + // if(cost > money) + // { + // Console.WriteLine("余额不足"); + // } + // else + // { + // stuff.Add(obj); + // money -= cost; + // Console.WriteLine("成功购买物品:" + obj); + // } + // } + // public void SoldStuff(object obj,int earned) + // { + // if (stuff.Contains(obj)) + // { + // stuff.Remove(obj); + // money += earned; + // Console.WriteLine("成功出售物品:" + obj); + // } + // else + // { + // Console.WriteLine("没有该物品,无法出售:" + obj); + // } + // } + // public void ShowMoney() + // { + // Console.WriteLine("当前余额:" + money); + // } + //} + //class Program + //{ + // static void Main(string[] args) + // { + // Backpack b1= new Backpack(); + // Backpack b2 = new Backpack(100); + // b1.ShowBackPack(); + // b2.ShowBackPack(); + // b1.BuyStuff("sth1", 50); + // b2.BuyStuff("sth2", 50); + // b1.ShowBackPack(); + // b2.ShowBackPack(); + // b1.SoldStuff("sth1", 25); + // b2.SoldStuff("sth2", 25); + // b1.ShowBackPack(); + // b2.ShowBackPack(); + // b1.ShowMoney(); + // b2.ShowMoney(); + // } + //} + + //狗屎一坨↑ + class Backpack { - ArrayList stuff; - int money; - public Backpack() - { - money = 0; - stuff = new ArrayList(); - } + private int money; + private ArrayList Items; public Backpack(int money) { - stuff = new ArrayList(); this.money = money; + Items = new ArrayList(); } - public void ShowBackPack() + public void SellItem(Item item) { - Console.WriteLine("背包物品有:"); - for (int i = 0; i < stuff.Count; i++) + for(int i = 0; i < Items.Count; i++) { - if (i + 1 != stuff.Count) + //if (Items[i].Equals(item))//不能用Items[i]==item判断 + //{ + + //} + int num = 0;//实际卖出的数量 + if ((Items[i] as Item).id == item.id) { - Console.Write(stuff[i] + "、"); + //两种情况 + //1.数量够卖 + if((Items[i] as Item).num > item.num) + { + num = item.num; + } + else//2.数量不够卖 + { + num = (Items[i] as Item).num; + } + int sellmoney = (int)(num * item.value * 0.8f); + this.money += sellmoney; + Console.WriteLine("卖了" + sellmoney); + } + } + } + + + public void BuyItem(Item item) + { + if (item.value*item.num > money) + { + Console.WriteLine("余额不足,无法购买物品:" + item.name); + return; + } + money -= item.value * item.num; + for (int i = 0; i < Items.Count; i++) + { + if((Items[i] as Item).id == item.id) + { + //叠加数量 + (Items[i] as Item).num += item.num; + return;//结束方法 + } + } + Console.WriteLine("买了{0}个{1}花了{2}",item.num, item.name ,item.value * item.num); + ////不叠加数量的写法 + Items.Add(item); + } + + public void ShowItems() + { + Console.Write("背包中有物品:"); + for (int i = 0; i < Items.Count; i++) + { + if (i + 1 != Items.Count) + { + Console.Write((Items[i] as Item).name + "、"); } else { - Console.WriteLine(stuff[i]); + Console.WriteLine((Items[i] as Item).name); } } + Console.WriteLine("剩余"+money+"元"); } - public void BuyStuff(Object obj,int cost) + } + class Item + { + //物品ID + public int id; + //物品价值 + public int value; + //物品名字 + public string name; + //物品数量 + public int num; + public Item(int id,int value,string name,int num) { - if(cost > money) - { - Console.WriteLine("余额不足"); - } - else - { - stuff.Add(obj); - money -= cost; - Console.WriteLine("成功购买物品:" + obj); - } - } - public void SoldStuff(object obj,int earned) - { - if (stuff.Contains(obj)) - { - stuff.Remove(obj); - money += earned; - Console.WriteLine("成功出售物品:" + obj); - } - else - { - Console.WriteLine("没有该物品,无法出售:" + obj); - } - } - public void ShowMoney() - { - Console.WriteLine("当前余额:" + money); + this.id = id; + this.value = value; + this.name = name; + this.num = num; + } } class Program { static void Main(string[] args) { - Backpack b1= new Backpack(); - Backpack b2 = new Backpack(100); - b1.ShowBackPack(); - b2.ShowBackPack(); - b1.BuyStuff("sth1", 50); - b2.BuyStuff("sth2", 50); - b1.ShowBackPack(); - b2.ShowBackPack(); - b1.SoldStuff("sth1", 25); - b2.SoldStuff("sth2", 25); - b1.ShowBackPack(); - b2.ShowBackPack(); - b1.ShowMoney(); - b2.ShowMoney(); + Item i1 = new Item(1, 10, "物品1", 1); + Item i2 = new Item(2, 20, "物品2", 2); + Item i3 = new Item(1, 1000, "物品3", 1); + Backpack backpack = new Backpack(100); + backpack.ShowItems(); + backpack.BuyItem(i1); + backpack.BuyItem(i2); + backpack.BuyItem(i3); + backpack.ShowItems(); + backpack.SellItem(i1); + backpack.ShowItems(); } + //这才是真正牛逼Class的代码 } }