윈도우 시스템


스토리

이 연습 문제에서는 윈도우 기반 컴퓨터 시스템을 시뮬레이션해요. 이동하고 크기를 조절할 수 있으며 내용을 표시하는 윈도우를 몇 개 만들어 봐요. 아래 그림은 앞으로 다룰 값들을 나타내요.

                  <--------------------- screenSize.width --------------------->

       ^          ╔════════════════════════════════════════════════════════════╗
       |          ║                                                            ║
       |          ║          position.x,_                                      ║
       |          ║          position.y  \                                     ║
       |          ║                       \<----- size.width ----->            ║
       |          ║                 ^      *──────────────────────┐            ║
       |          ║                 |      │        title         │            ║
       |          ║                 |      ├──────────────────────┤            ║
screenSize.height ║                 |      │                      │            ║
       |          ║            size.height │                      │            ║
       |          ║                 |      │       contents       │            ║
       |          ║                 |      │                      │            ║
       |          ║                 |      │                      │            ║
       |          ║                 v      └──────────────────────┘            ║
       |          ║                                                            ║
       |          ║                                                            ║
       v          ╚════════════════════════════════════════════════════════════╝

작업

다음은 운영 체제용으로 단순화한 윈도우 시스템을 구현한다는 스토리에 맞는 예시 작업이에요.

  • Size 구조체를 정의해요
  • Position 구조체를 정의해요
  • Window 클래스를 정의해요
  • 윈도우 크기를 조절하는 메서드를 추가해요
  • 윈도우를 이동하는 메서드를 추가해요
  • 윈도우 텍스트를 갱신하고 윈도우 정보를 표시하는 메서드를 추가해요
  • 새 Window를 만들어요

용어

다음은 안내문(스텁 설명 포함)에서 반복되는 용어에 대한 권장 사항이며, 규칙은 아니에요.

  • screenSize는 전체 디스플레이의 크기를 가리켜요
  • size는 디스플레이에 나타나는 윈도우의 크기를 가리켜요
  • position은 디스플레이의 왼쪽 위 모서리를 기준으로 한 각 윈도우의 왼쪽 위 모서리 위치를 가리켜요

구현

참고