using System.Collections; 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 { private int money; private ArrayList Items; public Backpack(int money) { this.money = money; Items = new ArrayList(); } public void SellItem(Item item) { for(int i = 0; i < Items.Count; i++) { //if (Items[i].Equals(item))//不能用Items[i]==item判断 //{ //} int num = 0;//实际卖出的数量 if ((Items[i] as Item).id == item.id) { //两种情况 //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((Items[i] as Item).name); } } Console.WriteLine("剩余"+money+"元"); } } 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) { this.id = id; this.value = value; this.name = name; this.num = num; } } class Program { static void Main(string[] args) { 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的代码 } }