using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp8
{
internal class Item
{
public string Name { get; set; }
public Item(string name)
{
this.Name = name;
Console.WriteLine("{0}이 생성되었습니다.", name);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp8
{
internal class Inventory
{
private int capacity;
private Item[] items;
public Inventory(int num)
{
capacity = num;
items = new Item[this.capacity];
}
public void addItem(Item item)
{
for (int i = 0; i < items.Length; i++)
{
if (items[i] == null)
{
items[i] = item;
break;
}
}
}
public void printAllItems()
{
for (int i = 0; i < items.Length; i++)
{
if (items[i] == null)
{
Console.WriteLine("[ ]");
}
else
{
Console.WriteLine("[{0}]", items[i].Name);
}
}
}
public void GetItemByName(String name)
{
for (int i = 0; i < items.Length; i++)
{
if (items[i] != null && items[i].Name == name)
{
Console.WriteLine("{0}을 찾았습니다.",items[i].Name);
return;
}
}
Console.WriteLine("{0}을 찾을 수 없습니다.", name);
}
public void RemoveItem(String rname)
{
for (int i = 0; i < items.Length; i++)
{
if (items[i] != null && items[i].Name == rname)
{
Console.WriteLine("{0}을 제거했습니다.", items[i].Name);
items[i] = null;
return;
}
}
Console.WriteLine("{0}이 존재하지 않습니다.",rname);
}
public void sortInven()
{
Inventory sort = new Inventory(items.Length);
for(int i= 0; i<items.Length; i++)
{
if (items[i] != null)
{
sort.addItem(items[i]);
}
}
items = sort.items;
}
public void changeInven(int num)
{
Inventory change = new Inventory(num);
for (int i = 0; i < items.Length; i++)
{
if (items[i] != null)
{
change.addItem(items[i]);
}
}
items = change.items;
Console.WriteLine("인벤토리 용량이 {0}로 변경되었습니다.", num);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp8
{
internal class App
{
//생성자
public App()
{
Inventory inven = new Inventory(5);
Console.WriteLine("----------------------");
Console.WriteLine("[인벤토리 생성]");
Console.WriteLine("[(1)아이템 추가]");
Console.WriteLine("[(2)아이템 제거]");
Console.WriteLine("[(3)아이템 목록]");
Console.WriteLine("[(4)아이템 검색]");
Console.WriteLine("[(5)아이템 정렬]");
Console.WriteLine("[(6)인벤토리 늘리기]");
Console.WriteLine("----------------------");
while (true)
{
Console.Write("원하시는 작업을 선택해주세요: ");
int num = Convert.ToInt32(Console.ReadLine());
switch (num)
{
case 1:
Console.Write("추가를 원하는 아이템의 이름을 입력하세요: ");
string itemName = Convert.ToString(Console.ReadLine());
inven.addItem(new Item(itemName));
break;
case 2:
Console.Write("제거를 원하는 아이템의 이름을 입력하세요: ");
string rName = Convert.ToString(Console.ReadLine());
inven.RemoveItem(rName);
break;
case 3:
Console.WriteLine("----------------------");
Console.WriteLine("[인벤토리 목록]");
inven.printAllItems();
Console.WriteLine("----------------------");
break;
case 4:
Console.Write("검색을 원하시는 아이템의 이름을 입력하세요: ");
string iName = Convert.ToString(Console.ReadLine());
inven.GetItemByName(iName);
break;
case 5:
Console.WriteLine("아이템 목록을 정렬합니다.");
inven.sortInven();
break;
case 6:
Console.Write("원하시는 인벤토리 용량을 입력하세요: ");
int num2 = Convert.ToInt32(Console.ReadLine());
inven.changeInven(num2);
break;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp8
{
internal class Program
{
static void Main(string[] args)
{
//new키워드 : App클래스의 인스턴스 생성하고 생성자를 호출함
new App();
}
}
}
'KDT > C# 프로그래밍' 카테고리의 다른 글
2차원 배열 이동 (0) | 2023.07.25 |
---|---|
아이템 순차 출력 (0) | 2023.07.25 |
1차원 배열 인벤토리 (0) | 2023.07.24 |
마린과 메딕. 피해와 치료 (0) | 2023.07.24 |
저글링 클래스와 메딕 클래스 (0) | 2023.07.24 |