Files
2025-10-10 11:49:42 +08:00

203 lines
5.7 KiB
C#

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的代码
}
}