-
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