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

+ Recent posts