[C++] Windows api으로 만드는 그림판 프로젝트

2022. 5. 12. 13:59·프로젝트
반응형

 

교내에서 `C++과 Windows api를 이용한 그림판` 을 주제로 2달간 프로젝트를 했습니다.

 

객체 지향 프로그래밍에 집중했고 여러 가지의 component의 클래스와 메서드를 window 라이브러리에서 가져다 쓰는 것이 아닌, gui를 직접 구현했습니다. composite 패턴 / opserver 패턴을 활용했습니다. 다형성을 적용하여 유지, 보수에 신경썼습니다. 

 

 

 

  • `라이브러리와 응용프로그램 분리`
    • 라이브러리로 사용할 프로젝트를 먼저 만들고, 이 라이브러리를 갖다 쓰는 응용프로그램으로 그림판 프로젝트를 만듭니다.
    • 각 클래스의 특징을 파악해서 둘 중 어느 프로젝트로 배치할지 고민해야 합니다.
  • `상속과 다형성`
    • 상속 관계를 잘 설계해야 불필요한 멤버변수와 메서드를 줄일 수 있습니다.
    • 이는 clean code에도 영향을 주며, 유지 보수하기도 편해집니다.
    • 따라서 클래스 UML을 작성하여 상속 관계를 파악하는데 중점을 뒀습니다.
    • 각 자식 class 마다 공통적인 부분은 부모에게 상속받도록 하고, 개별 특징을 나타내는 부분만 override 해서 추가로 구현해 주는 것이 기본 원리입니다.
  • `그림판 기능`
    • 그리기 도구 모음 열기 / 닫기
    • 사각형, 타원, 선 그리기
    • 도형 그룹화하기 
    • 도형 이동하기
    • 색상 채우기
    • 도형 지우기 

 

 

 

30개가 넘는 소스파일이 필요한 프로젝트라서 헤더파일 / 상속과 관련된 이슈들이 많이 발생했습니다.

 

이 프로젝트를 통해서,

객체 지향 프로그래밍 / 디자인패턴 / 클래스 UML 작성의 중요성을 체험했습니다.

 

 

반응형
저작자표시 비영리 (새창열림)

'프로젝트' 카테고리의 다른 글

[Java][프로젝트] Swing으로 GUI 그림판 만들기  (0) 2022.06.30
'프로젝트' 카테고리의 다른 글
  • [Java][프로젝트] Swing으로 GUI 그림판 만들기
Giken
Giken
𝐒𝐲𝐬𝐭𝐞𝐦.𝐨𝐮𝐭.𝐩𝐫𝐢𝐧𝐭𝐥𝐧("𝐇𝐞𝐥𝐥𝐨 𝐖𝐨𝐫𝐥𝐝!");
  • Giken
    개발자 기켄
    Giken
  • 전체
    오늘
    어제
    • 분류 전체보기 (148)
      • Programming Language (26)
        • C (3)
        • C++ (2)
        • Java (19)
      • Web (4)
      • Database (1)
        • SQL (5)
      • Spring (10)
      • PHP (7)
      • Linux (1)
      • Server (1)
      • Infra (3)
      • Algorithm (74)
        • 백준 (71)
        • 프로그래머스 (0)
      • 프로젝트 (2)
      • Etc (8)
      • 낙서 (5)
  • 블로그 메뉴

    • GitHub
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    2588
    C
    SQL
    평년
    2753
    프로그래머스
    백준
    DB
    9498
    1330
    SQL고득점키트
    윤년
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Giken
[C++] Windows api으로 만드는 그림판 프로젝트
상단으로

티스토리툴바