CSED232 – Programming Assignment # 3 Solved

$ 24.99
Category:

Description

– Inheritance & Polymorphism โ€“
๋‹ด๋‹น ์กฐ๊ต: ์ด์ง€ํ˜• (jihyung.lee@postech.ac.kr)

์ฃผ์˜์‚ฌํ•ญ
๏ฌ ์ž…์ถœ๋ ฅ์„ ์œ„ํ•œ iostream ์„ ์ œ์™ธํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‚ฌ์šฉ์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ, ๊ธฐ์กด ๊ณผ์ œ(Assignment2 ์—์„œ ๊ตฌํ˜„ํ–ˆ๋˜ vector ๋“ฑ)์—์„œ ์ง์ ‘ ์งœ์‹  ์ฝ”๋“œ๋Š” ์‚ฌ์šฉํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.
๏ฌ ๊ฐ ํด๋ž˜์Šค๋งˆ๋‹ค header file ๊ณผ cpp file ์„ ๋‚˜๋ˆ„์–ด ๊ตฌํ˜„ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. AShape ๊ด€๋ จ ํด๋ž˜์Šค๋“ค์˜ ๊ฒฝ์šฐ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ashape.h ์™€ ashape.cpp ์— ์„ ์–ธ๊ณผ ์ •์˜๋ฅผ ํ•ฉ์ณ์„œ ์ž‘์„ฑํ•˜์—ฌ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๏ฌ ๋ฌธ์ œ์— ๋ช…์‹œ๋˜์–ด ์žˆ์ง€ ์•Š๋”๋ผ๋„ ๊ฐ ํด๋ž˜์Šค๋งˆ๋‹ค ์ƒ์„ฑ์ž(Constructor), ์†Œ๋ฉธ์ž(Destructor)๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž์˜ ๊ฒฝ์šฐ, ๋ณ„๋‹ค๋ฅธ ์–ธ๊ธ‰์ด ์—†๋‹ค๋ฉด ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— int ๋Š” 0, char ๋Š” โ€˜aโ€™, string ์€ โ€œโ€, pointer ๋Š” NULL ๋กœ ์ดˆ๊ธฐํ™”ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.
๏ฌ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ํ—ค๋”ํŒŒ์ผ๊ณผ cpp ํŒŒ์ผ์˜ ํŒŒ์ผ๋ช…์„ ํ†ต์ผํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค. (๋Œ€์†Œ๋ฌธ์ž ์œ ์˜) ๏ฌ ๋ชจ๋“  ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” protected, ํ˜น์€ private ์œผ๋กœ ์„ ์–ธํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๏ฌ ์ฑ„์  ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์ •ํ™•ํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋งž์ถฐ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ˆ ์–‘ํ•ดํ•ด์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ฐ์ 
๏ฌ ์ œ์ถœ ๊ธฐํ•œ์ด ์ง€๋‚˜๋ฉด ์–ป์€ ์ด์ ์˜ 20% ๊ฐ์ 
๏ฌ ์ถ”๊ฐ€๋กœ ํ•˜๋ฃจ(24 ์‹œ๊ฐ„) ๋Šฆ์„ ๋•Œ๋งˆ๋‹ค 20%์”ฉ ๊ฐ์ 
๏ฎ 1 ์ผ ์ด๋‚ด ์ง€์—ฐ: 20% ๊ฐ์ , 2 ์ผ ์ด๋‚ด ์ง€์—ฐ: 40% ๊ฐ์ , 5 ์ผ ์ด์ƒ ์ง€์—ฐ: 0 ์ 
๏ฌ ์ปดํŒŒ์ผ์ด ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์ด์ง€์ง€ ์•Š์„ ๊ฒฝ์šฐ 0 ์ 
์ œ์ถœ๋ฐฉ์‹
[์œˆ๋„์šฐ ์ด์šฉ์ž]

VS ํ”„๋กœ์ ํŠธ๋กœ ์ œ์ถœ ์‹œ ์œ„ ํด๋”๋ฅผ ์ „๋ถ€ ์ง€์šฐ๊ณ  ์ œ์ถœํ•ด์ฃผ์‹ญ์‹œ์˜ค. x64 ํด๋”๋Š” ๋‘๊ฐœ ์žˆ์Šต๋‹ˆ๋‹ค.
(.vs ํด๋”๋Š” ์ˆจ๊ฒจ์ ธ์žˆ์Œ)

์œ„์ชฝ ํŒŒ์ผ๋“ค์„ ํฌํ•จํ•˜์—ฌ ํ•™๋ฒˆ์„ ํด๋”๋ช…์œผ๋กœ ํ•˜์—ฌ ์••์ถ•ํ•ด์ฃผ์„ธ์š” [๋งฅ ์ด์šฉ์ž]

์œ„์™€ ๊ฐ™์ด Makefile ํŒŒ์ผ์„ ํฌํ•จ์‹œ์ผœ ํ•™๋ฒˆ์„ ํด๋”๋ช…์œผ๋กœ ํ•˜์—ฌ ์••์ถ•ํ•ด์ฃผ์„ธ์š”

์ฑ„์  ๊ธฐ์ค€
1. ํ”„๋กœ๊ทธ๋žจ ๊ธฐ๋Šฅ
๏ฌ ํ”„๋กœ๊ทธ๋žจ์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋ฉด์„œ ์˜ฌ๋ฐ”๋กœ ์‹คํ–‰๋˜๋Š”๊ฐ€?

2. ํ”„๋กœ๊ทธ๋žจ ์„ค๊ฒŒ ๋ฐ ๊ตฌํ˜„
๏ฌ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„๊ฐ€ ์ž˜ ๋˜์—ˆ๋Š”๊ฐ€?
๏ฌ ์„ค๊ณ„๋œ ๋‚ด์šฉ์ด ์š”๊ตฌ๋œ ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ ์ ˆํžˆ ๊ตฌํ˜„๋˜์—ˆ๋Š”๊ฐ€?

3. ํ”„๋กœ๊ทธ๋žจ ๊ฐ€๋…์„ฑ
๏ฌ ํ”„๋กœ๊ทธ๋žจ์ด ์ฝ๊ธฐ ์‰ฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”๊ฐ€?
๏ฌ ๋ณ€์ˆ˜ ๋ช…์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด๊ฐ€?
๏ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก ์ฃผ์„์„ ์ž˜ ๋ถ™์˜€๋Š”๊ฐ€?

4. ๋ณด๊ณ ์„œ ๊ตฌ์„ฑ ๋ฐ ๋‚ด์šฉ, ์–‘์‹
๏ฌ ๋ณด๊ณ ์„œ๋Š” ์ ์ ˆํ•œ ๋‚ด์šฉ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ž˜ ์ž‘์„ฑ๋˜์—ˆ๋Š”๊ฐ€?
๏ฌ ๋ณด๊ณ ์„œ์˜ ์–‘์‹์„ ์ž˜ ๋”ฐ๋ž๋Š”๊ฐ€?
๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ณต์‚ฌ(copy)ํ•˜๊ฑฐ๋‚˜ ๊ฐ„๋‹จํžˆ ์ˆ˜์ •ํ•ด์„œ ์ œ์ถœํ•˜ ๋ฉด ํ•™์ ์€ ๋ฌด์กฐ๊ฑด โ€˜Fโ€™๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ€์ •ํ–‰์œ„๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ํ•™๊ณผ์—์„œ ์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ถ”๊ฐ€์˜ ๋ถˆ์ด์ต์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ŒํŒŒ๋ฒณ ๋„ํ˜• ๊ทธ๋ฆฌ๊ธฐ

๋ณธ ๊ณผ์ œ์—์„œ๋Š” โ€˜์•ŒํŒŒ๋ฒณ ๋„ํ˜•(Alphabet Shape, ํ†ต์นญ AShape)โ€™์„ WhiteBoard ์— ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์„ ์ง์ ‘
๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ Class Inheritance ์™€ Polymorphism ๊ฐœ๋…์„ ์ต ํ˜€๋ณด๋„๋ก ํ•œ๋‹ค.
โ€ข ํ”„๋กœ๊ทธ๋žจ ์„ค๋ช…

โ€˜์•ŒํŒŒ๋ฒณ ๋„ํ˜• ๊ทธ๋ฆฌ๊ธฐโ€™ ํ”„๋กœ๊ทธ๋žจ์€ 15×15 ์‚ฌ์ด์ฆˆ์˜ WhiteBoard ์— ์•ŒํŒŒ๋ฒณ์„ ๊ฐ’์œผ๋กœ ๊ฐ€์ง€๋Š” ๋„ํ˜• ๋„ค ์ข…๋ฅ˜(์ , ์ˆ˜ํ‰์„ , ์ˆ˜์ง์„ , ์‚ฌ๊ฐํ˜•)์„ ๊ทธ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. WhiteBoard ๋Š” ์ฒ˜์Œ์—๋Š” ๋น„์–ด์žˆ์œผ๋ฉฐ, ๋น„์–ด์žˆ๋Š” ์นธ์€ *์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ด์•ผํ•œ๋‹ค.
1. WhiteBoard ์— ์ƒˆ๋กœ์šด ๋„ํ˜• ์ถ”๊ฐ€
2. WhiteBoard ์— ํ˜„์žฌ ๊ทธ๋ ค์ ธ ์žˆ๋Š” ๋„ํ˜• ์‚ญ์ œ
3. ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์•„๋ž˜ ์„ค๋ช…์„ ์ž˜ ์ฝ๊ณ , ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•˜์ž.

1. ํ”„๋กœ๊ทธ๋žจ ๊ธฐ๋Šฅ
1.1 ๋ฉ”๋‰ด

WhiteBoard ์ขŒํ‘œ์— ๋Œ€ํ•œ ๊ทธ๋ฆผ

ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ํ™”๋ฉด

ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ๋น„์–ด์žˆ๋Š” WhiteBoard ์™€ ํ•จ๊ป˜ ๋ฉ”๋‰ด๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. โ€˜1โ€™์„ ์ž…๋ ฅํ•  ์‹œ ๋„ํ˜• ์ถ”๊ฐ€, โ€˜2โ€™๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋„ํ˜• ์‚ญ์ œ, โ€˜3โ€™์„ ์ž…๋ ฅํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋œ๋‹ค.
WhiteBoard ๋Š” 15×15 ์˜ ๊ณ ์ •๋œ ํฌ๊ธฐ๋ฅผ ์ง€๋‹Œ๋‹ค. ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด x ๊ฐ’์€ ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์ปค์ง€๊ณ , y ๊ฐ’์€ ์œ„์ชฝ์—์„œ ์•„๋ž˜๋กœ ๋‚ด๋ ค์˜ฌ์ˆ˜๋ก ์ปค์ง„๋‹ค. ๊ฐ€์žฅ ์™ผ์ชฝ ์œ„ ์ขŒํ‘œ๋Š” (0,0), ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์ขŒํ‘œ๋Š”
(14,14)์ด๋‹ค.
1.2 WhiteBoard ์— ์ƒˆ๋กœ์šด ๋„ํ˜• ์ถ”๊ฐ€

์œ ์ €๋กœ๋ถ€ํ„ฐ ์•ŒํŒŒ๋ฒณ, x ์ขŒํ‘œ ๋ฐ y ์ขŒํ‘œ๋“ค์„
์ž…๋ ฅ๋ฐ›๋Š” ํ™”๋ฉด. โ€˜qโ€™๋ฅผ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์ขŒํ‘œ๊ฐ€ (1~3,2),
๊ธธ์ด๊ฐ€ 3 ์ธ ์ˆ˜์ง์„ ์ด ์ถ”๊ฐ€๋œ ํ™”๋ฉด

๋ฉ”๋‰ด 1 ๋ฒˆ, ๋„ํ˜• ์ถ”๊ฐ€๋กœ ๋“ค์–ด๊ฐ€๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ ์œ ์ €๋กœ๋ถ€ํ„ฐ (1)์•ŒํŒŒ๋ฒณ ๋ฐ (2) x ์‹œ์ž‘์ขŒํ‘œ์™€ (3) x ๋์ขŒํ‘œ (4) y ์‹œ์ž‘์ขŒํ‘œ์™€ (5) y ๋์ขŒํ‘œ ์ด ๋‹ค์„ฏ๋ฒˆ์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ์ขŒํ‘œ ๊ฐ’์ด ์–ด๋А ๋„ํ˜•์— ํ•ด๋‹นํ•˜๋Š”์ง€ ํŒ๋‹จํ•˜์—ฌ, ์ถ”๊ฐ€๋˜๋Š” ๋„ํ˜•์˜ ์ข…๋ฅ˜์™€ ํฌ๊ธฐ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  WhiteBoard ์— ๊ทธ๋ฆฐ๋‹ค. ์ƒˆ ๋„ํ˜•์ด ์ถ”๊ฐ€๋ ๋•Œ๋งˆ๋‹ค ๋™์  ํ• ๋‹น์ด ์ผ์–ด๋‚˜์•ผ ํ•œ๋‹ค.
๋„ํ˜•์˜ ์ข…๋ฅ˜๋Š” 1. ์ (APoint) 2. ์ˆ˜์ง์„ (AVerticalLine) 3. ์ˆ˜ํ‰์„ (AHorizontalLine) 4. ์‚ฌ๊ฐํ˜•(Rectangle) ์ด ๋„ค ๊ฐ€์ง€์ด๋ฉฐ ๊ทธ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1. ์ (APoint): ํฌ๊ธฐ๋Š” 1 ์ด๋ฉฐ, x ์‹œ์ž‘์ขŒํ‘œ๊ณผ ๋์ขŒํ‘œ ๋ฐ y ์‹œ์ž‘์ขŒํ‘œ์™€ ๋์ขŒํ‘œ๊ฐ€ ๊ฐ๊ฐ ๊ฐ™๋‹ค.
2. ์ˆ˜์ง์„ (AVerticalLine): ํฌ๊ธฐ๋Š” ์„ ์˜ ๊ธธ์ด์™€ ๊ฐ™์œผ๋ฉฐ, x ์‹œ์ž‘์ขŒํ‘œ์™€ ๋์ขŒํ‘œ๊ฐ€ ๊ฐ™์ง€๋งŒ y ์‹œ์ž‘์ขŒํ‘œ์™€ ๋์ขŒํ‘œ๊ฐ€ ๋‹ค๋ฅด๋‹ค.
3. ์ˆ˜ํ‰์„ (AHorizontalLine): ์ˆ˜์ง์„ ์˜ ๋ฐ˜๋Œ€๋กœ, y ์‹œ์ž‘์ขŒํ‘œ์™€ ๋์ขŒํ‘œ๊ฐ€ ๊ฐ™์ง€๋งŒ x ์‹œ์ž‘์ขŒํ‘œ์™€ ๋์ขŒํ‘œ๊ฐ€ ๋‹ค๋ฅด๋‹ค.
4. ์‚ฌ๊ฐํ˜•(ARectangle): ํฌ๊ธฐ๋Š” ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด์™€ ๊ฐ™์œผ๋ฉฐ, x ๋ฐ y ์‹œ์ž‘์ขŒํ‘œ์™€ ๋์ขŒํ‘œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค.

์ด์–ด์„œ ์•ŒํŒŒ๋ฒณ โ€˜zโ€™๋ฅผ ๊ฐ€์ง€๋Š” ํฌ๊ธฐ 20 ์งœ๋ฆฌ ์‚ฌ๊ฐํ˜•์„ ์ถ”๊ฐ€ํ•ด๋ณด๋„๋ก ํ•˜์ž.

์ถ”๊ฐ€ํ•œ ์‚ฌ๊ฐํ˜•์ด ์ˆ˜ํ‰์„ ๊ณผ ๊ฐ™์ด
WhiteBoard ์— ์ถœ๋ ฅ๋œ๋‹ค.

์•ŒํŒŒ๋ฒณ โ€˜uโ€™๋ฅผ ๊ฐ€์ง€๋Š” ์ ์„ ๋˜ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์ ์ด (7,7)์— ๊ทธ๋ ค์ง„ ๋ชจ์Šต.
(๋„ํ˜•์˜ ์œ„์น˜๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ ์ƒˆ ๋„ํ˜•์ด ๋ฎ์–ด์“ด๋‹ค)

1.3 WhiteBoard ์— ํ˜„์žฌ ๊ทธ๋ ค์ ธ ์žˆ๋Š” ๋„ํ˜• ์‚ญ์ œ

๋ฉ”๋‰ด์—์„œ โ€˜2โ€™๋ฅผ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ํ˜„์žฌ WhiteBoard ์— ๊ทธ๋ ค์ ธ ์žˆ๋Š” ๋„ํ˜•์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋„ํ˜• ์‚ญ์ œ ๋ฉ”๋‰ด๋กœ ๋“ค์–ด๊ฐˆ ์‹œ ํ˜„์žฌ WhiteBoard ์— ์ถ”๊ฐ€๋˜์–ด์žˆ๋Š” ๋„ํ˜•์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ๋„ํ˜• ๊ฐ๊ฐ์˜ ์ •๋ณด(์ขŒํ‘œ, ์•ŒํŒŒ๋ฒณ, ํฌ๊ธฐ)๊ฐ€ ๋ณด์—ฌ์•ผ ํ•œ๋‹ค.
๊ทธ๋ฆผ์˜ ์˜ˆ์ œ์—์„œ๋Š” 1.2 ์—์„œ ์‹คํ–‰ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๊ฐ™์ด ์ˆ˜์ง์„ , ์‚ฌ๊ฐํ˜•, ์  ์ด ์„ธ ๊ฐ€์ง€์˜ ๋„ํ˜•์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ฆฌ์ŠคํŠธ์—๋Š” ์„ธ ์ข…๋ฅ˜์˜ ๋„ํ˜•์ด ์ถœ๋ ฅ๋œ๋‹ค. ๋„ํ˜• ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์Šค๋Š” 0 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
์ด ๋•Œ, ์œ ์ €๊ฐ€ ์‚ญ์ œ๋ฅผ ์›ํ•˜๋Š” ๋„ํ˜•์˜ index ๋ฅผ ์ž…๋ ฅํ•  ์‹œ ํ•ด๋‹น ๋„ํ˜•์ด WhiteBoard ์—์„œ ์‚ญ์ œ๋œ๋‹ค. ๋„ํ˜• ์‚ญ์ œ ์‹œ ๋™์  ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋˜์–ด์•ผํ•œ๋‹ค.

๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์Šค โ€˜2โ€™๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋งจ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•œ ์ขŒํ‘œ (7,7)์˜ ์ (APoint)์„ ์‚ญ์ œํ•œ ์ผ€์ด์Šค

์ด์–ด์„œ ์ขŒํ‘œ (4-7, 5-9)์— ์•ŒํŒŒ๋ฒณ z ๋ฅผ ๊ฐ€์ง€๋Š” ์‚ฌ๊ฐํ˜•์„ ์ง€์›Œ๋ณด๊ฒ ๋‹ค.

๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ๊ฐํ˜•์˜ index โ€˜1โ€™์„ ์ž…๋ ฅํ•˜๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„ํ˜•์ด ์ง€์›Œ์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
1.4 ๋„ํ˜•์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ ๋„ํ˜•์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ง‰์„ ํ•„์š”๋Š” ์—†๋‹ค. ๋„ํ˜•์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ WhiteBoard ์— ์ถ”๊ฐ€๋œ ์ˆœ์„œ๋Œ€๋กœ ๊ทธ๋ฆฐ๋‹ค.
(์ƒˆ ๋„ํ˜•์ด ๊ธฐ์กด์˜ ๋„ํ˜•์„ ๋ฎ์–ด์”€)
๋‹จ, ์œ„๋ฅผ ๋ฎ์€ ๋„ํ˜•์„ ์‚ญ์ œํ•œ๋‹ค๋ฉด ๊ธฐ์กด์˜ ๋„ํ˜•์ด ๋‹ค์‹œ ๋ณด์—ฌ์•ผํ•œ๋‹ค. (1.3 ๋„ํ˜• ์‚ญ์ œ์˜ ๋‘๋ฒˆ์งธ ์˜ˆ์ œ ์‚ฌ์ง„ ์ฐธ์กฐ)

1.5 ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

๋ฉ”๋‰ด์—์„œ โ€˜3โ€™์„ ์ž…๋ ฅ ์‹œ โ€˜Exit Programโ€™ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ๊ณผ ํ•จ๊ป˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋œ๋‹ค.

1.6 ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ€์ด์Šค์—์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผํ•œ๋‹ค. 1. ๋ฉ”๋‰ด
์ž˜๋ชป๋œ ์ˆซ์ž ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ:
โ€˜Invalid input. Type againโ€™ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ WhiteBoard ๋ฐ ๋ฉ”๋‰ด๊ฐ€ ์žฌ์ถœ๋ ฅ๋œ๋‹ค.

2. ๋„ํ˜• ์ถ”๊ฐ€
[A] x_start ๊ฐ€ x_end ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜, y_start ๊ฐ€ y_end ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ:
์‹œ์ž‘์ขŒํ‘œ๊ฐ€ ๋์ขŒํ‘œ๋ฅผ ๋„˜์–ด์„ฐ๋‹ค๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ WhiteBoard ๋ฐ ๋ฉ”๋‰ด๊ฐ€ ์žฌ์ถœ๋ ฅ๋œ๋‹ค.

[B] ์ขŒํ‘œ์ค‘์— ํ•˜๋‚˜๋ผ๋„ ์Œ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ:
์ขŒํ‘œ๋Š” ์Œ์ˆ˜๊ฐ€ ๋˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์—๋Ÿฌ
๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ WhiteBoard ๋ฐ ๋ฉ”๋‰ด๊ฐ€ ์žฌ์ถœ๋ ฅ๋œ๋‹ค.

[C] ์ขŒํ‘œ์ค‘์— ํ•˜๋‚˜๋ผ๋„ ํ™”์ดํŠธ๋ณด๋“œ์˜ ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ:
์ž…๋ ฅ ์ขŒํ‘œ๊ฐ€ WhiteBoard ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚ฌ๋‹ค๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜
WhiteBoard ๋ฐ ๋ฉ”๋‰ด๊ฐ€ ์žฌ์ถœ๋ ฅ๋œ๋‹ค.

์—ฌ๋Ÿฌ ์—๋Ÿฌ๊ฐ€ ์ค‘๋ณต์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์šฐ์„  ์ถœ๋ ฅ ์ˆœ์œ„๋Š” A>B>C ์ด๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, y_start ๊ฐ€ y_end ๋ณด๋‹ค ํฌ๋ฉด์„œ
์Œ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ์—๋Ÿฌ์ผ€์ด์Šค A ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•œ๋‹ค.

3. ๋„ํ˜• ์‚ญ์ œ
[A] ๋„ํ˜• ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ: ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜
WhiteBoard ๋ฐ ๋ฉ”๋‰ด๊ฐ€ ์žฌ์ถœ๋ ฅ๋œ๋‹ค.

[B] ๋„ํ˜• ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์Šค์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ์ž…๋ ฅ์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ:
์ธ๋ฑ์Šค๋ฅผ ๋ฒ—์–ด๋‚ฌ๋‹ค๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ WhiteBoard ๋ฐ ๋ฉ”๋‰ด๊ฐ€ ์žฌ์ถœ๋ ฅ๋œ๋‹ค. ์Œ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ & ๋ฆฌ์ŠคํŠธ ์‚ฌ์ด์ฆˆ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ์ž…๋ ฅ์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ๋‘˜๋‹ค ํ•ด๋‹น๋œ๋‹ค.

์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋Š” ๊ฐ ์—๋Ÿฌ ์ผ€์ด์Šค๊ฐ€ ๊ตฌ๋ถ„๋˜๊ธฐ๋งŒ ํ•œ๋‹ค๋ฉด ์˜ˆ์ œ์™€๋Š” ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ด๋„ ์ƒ๊ด€์—†๋‹ค. ๋‹จ, ์ด ๊ฒฝ์šฐ ๋ณด๊ณ ์„œ์— ํ•ด๋‹น ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ค ์ผ€์ด์Šค์— ํ•ด๋‹น๋˜๋Š” ๊ฒƒ์ธ์ง€ ์„ค๋ช…ํ•ด์•ผ ํ•œ๋‹ค.
์œ„์—์„œ ์–ธ๊ธ‰๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
(ex) ๋ฉ”๋‰ด ์ž…๋ ฅ ์‹œ ๋ฌธ์ž๊ฐ€ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ, ๋„ํ˜• ์ถ”๊ฐ€ ์‹œ ์•ŒํŒŒ๋ฒณ์— ์ด์ƒํ•œ ๊ฐ’์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ ๋“ฑ… ์€ ๊ณ ๋ คํ•  ํ•„์š” ์—†๋‹ค.

2. ๊ตฌํ˜„
2.1 AShape (Alphabet Shape) ๊ด€๋ จ ํด๋ž˜์Šค
์•„๋ž˜ ๊ทธ๋ฆผ์— ์„œ์ˆ ๋œ AShape ๊ด€๋ จ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ๋ฐ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์ž์œ ๋กญ๊ฒŒ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ๋œ๋‹ค.

AShape ํด๋ž˜์Šค: ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” abstract class ์ด๋ฉฐ, ๋‹ค๋ฅธ shape ๋“ค์˜ parent class ์ด๋‹ค. draw, print, size ๋ฅผ pure virtual ํ•จ์ˆ˜๋กœ ์ •์˜ํ•œ๋‹ค.
APoint, AVerticalLine, AHorizontalLine, ARectangle ํด๋ž˜์Šค: AShape ๋ฅผ ์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค
๊ฐ AShape ๊ด€๋ จ ํด๋ž˜์Šค๋“ค์€ ์•„๋ž˜์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
โ€ข ์ƒ์„ฑ์ž ๋ฐ ์†Œ๋ฉธ์ž
โ€ข void draw(WhiteBoard* board) const: ํ™”์ดํŠธ๋ณด๋“œ์— ํ•ด๋‹น ๋„ํ˜•์˜ ์ขŒํ‘œ ๋ฐ ์•ŒํŒŒ๋ฒณ์˜ ์ •๋ณด๋ฅผ ๋ณด๋‚ด ๊ทธ๋ฆฌ๊ฒŒ ํ•œ๋‹ค.
โ€ข void print() const: ํ•ด๋‹น ๋„ํ˜•์„ ์„ค๋ช…ํ•˜๋Š” ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜. ๋„ํ˜•์˜ ์ขŒํ‘œ๊ฐ’ ๋ฐ ๊ฐ–๊ณ  ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ, ํฌ๊ธฐ๋ฅผ ์ „๋ถ€ ์ถœ๋ ฅํ•œ๋‹ค. ๋„ํ˜• ์‚ญ์ œ – ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ ์‹œ ๋„ํ˜•์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐ์—์„œ ์“ฐ์ธ๋‹ค.
– ex) ์ˆ˜ํ‰์„ ์˜ ๊ฒฝ์šฐ AHorizontalLine with [alphabet: q] and [y: 13] [x_start: 10 ] [x_end: 12]
[size: 3] ์ด์™€ ๊ฐ™์ด ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ๋ฐ˜๋“œ์‹œ ์œ„์™€ ๊ฐ™์€ ์–‘์‹์œผ๋กœ ์ถœ๋ ฅํ•  ํ•„์š”๋Š” ์—†๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ๋‹ด๊ฒจ์žˆ์œผ๋ฉด ๋œ๋‹ค.
โ€ข int size() const: ๋„ํ˜•์˜ ํฌ๊ธฐ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜. ์ ์˜ ๊ฒฝ์šฐ 1, ์„ ์˜ ๊ฒฝ์šฐ์—” ์„ ์˜ ๊ธธ์ด, ์‚ฌ๊ฐํ˜•์˜ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด์ด๋‹ค.
2.2 AShapeList

๋„ํ˜•๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค. ์˜ˆ์ œ ๊ทธ๋ฆผ์€ linked list ๋กœ ๊ตฌํ˜„ํ•œ ์‚ฌ๋ก€์ด๋ฉฐ, ๋ฐ˜๋“œ์‹œ linked list ๋ฅผ ์ด์šฉํ•  ํ•„์š”๋Š” ์—†๋‹ค. ๋ณธ์ธ์ด ์ƒ๊ฐํ•˜๊ธฐ์— ๋” ๋‚˜์€ ์ž๋ฃŒ ๊ตฌ์กฐ ๋ฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ์ด์šฉํ•ด๋„ ์ƒ๊ด€์—†๋‹ค. ์ด ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๋ฉค๋ฒ„ ํ•จ์ˆ˜์™€ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์„ค๊ณ„ํ•ด๋ณด๋„๋ก ํ•œ๋‹ค.
assignment2 ์—์„œ ๊ตฌํ˜„ํ•œ vector ์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‹จ, ๋ชจ๋“  ์ฝ”๋“œ๋Š” ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋ฉฐ STL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์˜€๋Š”์ง€ ๋ณด๊ณ ์„œ์— ์ ๋„๋ก ํ•œ๋‹ค.
์ƒˆ ๋„ํ˜•์ด ์ถ”๊ฐ€๋  ๋•Œ๋งˆ๋‹ค ๋™์ ํ• ๋‹น์ด ์ผ์–ด๋‚˜๋ฏ€๋กœ, AShapeList ์˜ ์†Œ๋ฉธ์ž์—์„œ๋Š” ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง์ž.
– void addNewAShape(AShape* new_shape): ๋ฆฌ์ŠคํŠธ์— ์ƒˆ ๋„ํ˜•์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
– AShapeNode* popNodeByIdx(int idx): ์ธ๋ฑ์Šค๋ฅผ ๋ฐ›์•„ ๋ฆฌ์ŠคํŠธ์—์„œ ํ•ด๋‹น AShapeNode ๋ฅผ ๋นผ๋‚ด๊ณ , ๋นผ๋‚ธ ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. (ex) idx 0 ์ด ๋“ค์–ด์˜ฌ๋•Œ ์ฒซ๋ฒˆ์งธ Node ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
– const AShapeNode* getNodeByIdx(int idx) const: ์ธ๋ฑ์Šค๋ฅผ ๋ฐ›์•„ ๋ฆฌ์ŠคํŠธ์—์„œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์ˆœ๋ฒˆ์˜ AShapeNode ์˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. popNodeByIdx ์™€ ๋‹ฌ๋ฆฌ, ๋…ธ๋“œ๋ฅผ ๋ฆฌ์ŠคํŠธ์—์„œ ๋นผ์ง€ ์•Š๋Š”๋‹ค.
– void displayAShapeList() const: ํ˜„์žฌ ๊ด€๋ฆฌ์ค‘์ธ ๋ชจ๋“  ๋„ํ˜•์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋„ํ˜• ์‚ญ์ œ ์‹œ ๋„ํ˜•์˜ ์ •๋ณด๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ถœ๋ ฅํ•  ๋•Œ ์“ฐ์ธ๋‹ค.
– void drawAll(WhiteBoard* board) const: ํ˜„์žฌ ๊ด€๋ฆฌ์ค‘์ธ ๋ชจ๋“  ๋„ํ˜•์„ WhiteBoard ์— ๊ทธ๋ฆฐ๋‹ค.
– int getSize() const: ํ˜„์žฌ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๋„ํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
์œ„ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋Š” ์˜ˆ์ œ์ด๋ฉฐ, AShape ์˜ ๋ชฉ๋ก์„ ๊ด€๋ฆฌํ•  ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์ž์œ ๋กญ๊ฒŒ ์„ค๊ณ„ํ•˜๋„๋ก ํ•œ๋‹ค.
2.3 WhiteBoard

WhiteBoard class ๋Š” ์ง€์ •๋œ ํฌ๊ธฐ์˜ 2 ์ฐจ์› char ๋ฐฐ์—ด์„ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๊ฐ€์ง€๋ฉฐ, ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ํ˜ธ์ถœ๋œ๋‹ค.
– void fillPoint(int x, int y, char alphabet): ์ง€์ •๋œ x,y ์ขŒํ‘œ์— ๋“ค์–ด์˜จ alphabet ์œผ๋กœ ์นธ์„ ์ฑ„์šด๋‹ค.
– void reset(): ๋ชจ๋“  ์นธ์„ *๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
– void display() const: whiteboard ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
2.4 Menu

Menu class ๋Š” ๋ฉ”๋‰ด ํด๋ž˜์Šค์ด๋ฉฐ, ๋„ํ˜• ์ถ”๊ฐ€, ๋„ํ˜• ์‚ญ์ œ, ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ๋“ฑ ๋“ฑ ํ”„๋กœ๊ทธ๋žจ ์ „๋ฐ˜์— ๋Œ€ํ•ด ์ฒ˜๋ฆฌํ•œ๋‹ค.
– void display() const: ๋ฉ”๋‰ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
– bool getRunning() const: ํ˜„์žฌ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ธ์ง€์˜ ์—ฌ๋ถ€๋ฅผ true, false ๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.
– void getUserInput() const: ์œ ์ €์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ฉ”๋‰ด๋ฅผ ๊ณ ๋ฅด๊ฒŒ ํ•˜๊ณ , ์ดํ›„ addAShape, deleteAShape ๋“ฑ์„ ํ˜ธ์ถœํ•œ๋‹ค.
– void addAShape() const: ์œ ์ €์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ƒˆ ๋„ํ˜•์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
– void deleteAShape() const: ์œ ์ €์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋„ํ˜• ์‚ญ์ œ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

2.5 main
๋ฉ”์ธ ํŒŒ์ผ์˜ ์˜ˆ์ œ์ด๋ฉฐ, ๋ฐ˜๋“œ์‹œ ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ž์‹ ์ด ๊ตฌํ˜„ํ•œ๋Œ€๋กœ main ํ•จ์ˆ˜๋ฅผ ์„ค๊ณ„ํ•ด๋ณด์ž.
#include “menu.h”
int main()
{
WhiteBoard board;
AShapeList shape_list;
Menu menu(&board, &shape_list);

while (menu.getRunning())
{
//WhiteBoard Display board.reset(); shape_list.drawAll(&board);
board.display();

//Menu Display & Get Input menu.display();
menu.getUserInput();

}

return 0;
}

์ฑ„์  ๊ธฐ์ค€
1. ํ”„๋กœ๊ทธ๋žจ ๊ธฐ๋Šฅ โ€“ 50%
– ๋ฉ”๋‰ด ํ™”๋ฉด 5%
– ๋„ํ˜• ์ถ”๊ฐ€ 20%
– ๋„ํ˜• ์‚ญ์ œ 20%
– ์˜ˆ์™ธ ์ฒ˜๋ฆฌ 5%

2. ํ”„๋กœ๊ทธ๋žจ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ โ€“ 30%
– AShape ๋ฐ AShape ๊ด€๋ จ class 10%
– AShapeList 10%
– WhiteBoard, Menu, main 10%

3. ํ”„๋กœ๊ทธ๋žจ ๊ฐ€๋…์„ฑ โ€“ 10%
4. ๋ณด๊ณ ์„œ ๊ตฌ์„ฑ ๋ฐ ๋‚ด์šฉ, ์–‘์‹ โ€“ 10%

Reviews

There are no reviews yet.

Be the first to review “CSED232 – Programming Assignment # 3 Solved”

Your email address will not be published. Required fields are marked *