ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 03/17 추상클래스, 인터페이스, 속성, 스택, 큐를 사용한 예제
    C#/수업과제 2021. 3. 18. 01:41

     

    Program.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Study06
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Main");
                new App();
            }
        }
    }
    

     

    App.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Study06
    {
        public class App
        {
            public App()
            {
                Console.WriteLine("App");
    
                Gateway gateway;
                gateway= new Gateway();
    
                Unit unit1 = new Unit("질럿1");
                Unit unit2 = new Unit("질럿2");
                Unit unit3 = new Unit("질럿3");
                Unit unit4 = new Unit("드라군1");
                Unit unit5 = new Unit("드라군2");
    
                gateway.ProductionStandbyUnit(unit1);
                gateway.ProductionStandbyUnit(unit2);
                gateway.ProductionStandbyUnit(unit3);
                gateway.ProductionStandbyUnit(unit4);
                gateway.ProductionStandbyUnit(unit5);
    
                int count = gateway.ProductionStandbyUnitCount();
                for (int i = 0; i< count;  i++)
                {
                    Console.WriteLine("생산 대기중인 유닛 수 : " + gateway.ProductionStandbyUnitCount());
                    Console.WriteLine("{0}가 생산되었습니다.", gateway.Produce().Name);
                } 
                Console.WriteLine("생산 대기중인 유닛 수 : " + gateway.ProductionStandbyUnitCount());            
    
    
            }
    
        }
    }
    

     

    Building.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Study06
    {
        public abstract class Building
        {
            public Building()
            {
                Console.WriteLine("건물이 생성되었습니다.");
            }
        }
    }
    

     

    Gateway.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Study06
    {
        public class Gateway : Building, IProductionPossible
        {        
            Queue<Unit> ProductionStandbyUnits { get; set; }
    
            public Gateway()
            {
                ProductionStandbyUnits = new Queue<Unit>();
            }
            public Unit Produce()
            {            
                return ProductionStandbyUnits.Dequeue();
            }
    
            public void ProductionStandbyUnit(Unit unit)
            {
                Console.WriteLine("{0}가 생산 대기중입니다.", unit.Name);
                ProductionStandbyUnits.Enqueue(unit);
            }
    
            public int ProductionStandbyUnitCount()
            {
                return ProductionStandbyUnits.Count;
            }
        }
    }
    

     

    IProductionPossible.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Study06
    {
        interface IProductionPossible
        {
            void ProductionStandbyUnit(Unit unit);
            Unit Produce();
        }
    }
    

     

    Unit.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Study06
    {
        public class Unit
        {
            public string Name { get; private set; }
    
            public Unit(string name)
            {
                Name = name;
            }
        }
    }
    

    'C# > 수업과제' 카테고리의 다른 글

    03/22 델리게이트 연습  (0) 2021.03.22
    03/19 2차원 배열 2048 구현  (0) 2021.03.22
    03/16 컬렉션을 이용 예제  (0) 2021.03.16
    03/12 1주차 주말과제  (0) 2021.03.15
    03/11 클래스 생성 -> 인스턴스 생성 연습  (0) 2021.03.11
Designed by Tistory.