์ด ํ๋ก์ ํธ๋ ์๋ฃ ์ํ๊ธฐ์ ๋์์ ์๋ฎฌ๋ ์ด์
ํ๋ C++ ๊ธฐ๋ฐ ํ๋ก์ ํธ์
๋๋ค.
์ฌ์ฉ์๋ ๊ธ์ก์ ํฌ์
ํ๊ณ ์๋ฃ๋ฅผ ์ ํํ์ฌ ๊ตฌ๋งคํ ์ ์์ผ๋ฉฐ
๊ฑฐ์ค๋ฆ๋ ์ฒ๋ฆฌ, ์งํ ๋ฐ ๋์ ๋ณด๊ธ, ์๋ณ ๋งค์ถ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ๋ค์ํ ์๋ฃ ๋ฉ๋ด์ ์งํ/๋์ ๊ด๋ฆฌ๋ฅผ ํตํด ํ์ค์ ์ธ ์ํ๊ธฐ ์์คํ
์ ๊ตฌํํฉ๋๋ค.
- ๐ ์๋ฃ ๋ฉ๋ด์ ๊ฐ๊ฒฉ์ ์ค์ ํ๊ณ , ์ฌ์ฉ์๊ฐ ์ ํํ ์ ์๋๋ก ์ถ๋ ฅํฉ๋๋ค.
- ๐ ๏ธ ๋ฉ๋ด๋ ์์ฑ์์์ ์ด๊ธฐํ๋๋ฉฐ, ๋ฉ๋ด ํญ๋ชฉ๊ณผ ๊ฐ๊ฒฉ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ๐ฐ ์ฌ์ฉ์๋ 10์๋ถํฐ 10,000์๊น์ง ๋ค์ํ ์งํ ๋ฐ ๋์ ์ ํฌ์ ํ ์ ์์ต๋๋ค.
- ๐จ ์๋ชป๋ ๊ธ์ก(1์ ์๋ฆฌ ๊ธ์ก)์ ์ ๋ ฅํ๊ฑฐ๋ ์ ํจํ์ง ์์ ์ ๋ ฅ์ ํ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํตํด ๋ค์ ์ ๋ ฅ๋ฐ์ต๋๋ค.
- โ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ธ์ก์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ๋งค ๊ฐ๋ฅํ ์๋ฃ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- ๐ ์ฌ์ฉ์๋ ๊ธ์ก์ ํฌ์ ํ ํ ๊ตฌ๋งค ๊ฐ๋ฅํ ์๋ฃ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- ๐ธ ์ ํํ ์๋ฃ์ ๊ฐ๊ฒฉ์ด ํฌ์ ํ ๊ธ์ก๋ณด๋ค ์ ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ ๊ตฌ๋งค๊ฐ ์๋ฃ๋๋ฉฐ, ๋งค์ถ์ ๋ฐ์๋ฉ๋๋ค.
- ๐ ๊ตฌ๋งคํ ์๋ฃ์ ๊ตฌ๋งค ์๊ฐ์ ๊ธฐ๋กํ์ฌ ์ผ์ผ ๋งค์ถ ๋ณด๊ณ ์์ ํฌํจ์ํต๋๋ค.
- ๐ต ์ฌ์ฉ์๊ฐ ๊ฑฐ์ค๋ฆ๋์ ์์ฒญํ ๊ฒฝ์ฐ ์ํ๊ธฐ์ ๋ณด์ ํ ๋์ ๊ณผ ์งํ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฑฐ์ค๋ฆ๋์ ๋ฐํํฉ๋๋ค.
- โ ๋ฐํํ ๊ธ์ก์ด ์ํ๊ธฐ ๋ด ๋ณด์ ํ ๋์ ๊ณผ ์งํ๋ก ์ ํํ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ, ๊ฑฐ์ค๋ฆ๋ ๋ถ์กฑ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ ์ํ๊ธฐ ์ด์์ ์ค์งํฉ๋๋ค.
- ๐ ์๋ณ ๋งค์ถ์ ๊ด๋ฆฌํ๋ฉฐ, ํ์ฌ ์๊ณผ ์ง๋ ๋ฌ์ ๋งค์ถ ๋ณด๊ณ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- ๐ ์ผ์ผ ๋งค์ถ๊ณผ ํ๋งค๋ ์๋ฃ์ ํ๋งค ์๊ฐ๋ ํจ๊ป ์ถ๋ ฅ๋ฉ๋๋ค.
- ๐ฆ ์งํ ๋ฐ ๋์ ๋ณด๊ธ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค์ ๋๋ค.
- ๐งพ ๋์ ๋ณด๊ธ, ๊ฑฐ์ค๋ฆ๋ ๋ฐํ, ๋์ ์๋ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์ฃผ์ ๋ฉ์๋:
supplyChange
: ํน์ ์งํ ๋๋ ๋์ ์ ๋ณด๊ธํฉ๋๋ค.calculateChange
: ๊ฑฐ์ค๋ฆ๋์ ๊ณ์ฐํ๊ณ ๋ฐํํฉ๋๋ค.printChangeStatus
: ํ์ฌ ๋์ ๋ณด๊ธ ์ํ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- ๐น ์ํ๊ธฐ ๋ฉ๋ด(์๋ฃ ์ด๋ฆ๊ณผ ๊ฐ๊ฒฉ)๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค์ ๋๋ค.
- ์ฃผ์ ๋ฉ์๋:
setupMenu
: ๋ฉ๋ด ์ด๋ฆ๊ณผ ๊ฐ๊ฒฉ์ ์ค์ ํฉ๋๋ค.displayMenu
: ํ์ฌ ์ค์ ๋ ๋ฉ๋ด์ ๊ฐ๊ฒฉ์ ์ถ๋ ฅํฉ๋๋ค.getPrice
: ์ฌ์ฉ์๊ฐ ์ ํํ ์๋ฃ์ ๊ฐ๊ฒฉ์ ๋ฐํํฉ๋๋ค.
ChangeManager
์MenuManager
๋ฅผ ์์๋ฐ์ ์ํ๊ธฐ ์ ์ฒด ๋์์ ๊ด๋ฆฌํ๋ ํด๋์ค์ ๋๋ค.- ์ฃผ์ ๋ฉ์๋:
validateAndProcessPayment
: ์ฌ์ฉ์๋ก๋ถํฐ ๊ธ์ก์ ์ ๋ ฅ๋ฐ๊ณ ๊ฒ์ฆํฉ๋๋ค.handleNoChange
: ๊ฑฐ์ค๋ฆ๋ ๋ฐํ์ ์ฒ๋ฆฌํฉ๋๋ค.printSalesReport
: ์ผ์ผ ๋งค์ถ ๋ณด๊ณ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.printMonthlySalesReport
: ์๋ณ ๋งค์ถ ๋ณด๊ณ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
VendingMachine
์ ์์๋ฐ์ ๊ตฌ์ฒด์ ์ธ ์๋ฃ ๋ฉ๋ด์ ๋งค์ถ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ ํด๋์ค์ ๋๋ค.- ์ฃผ์ ๋ฉ์๋:
setupMenu
: ์๋ฃ ์ด๋ฆ๊ณผ ๊ฐ๊ฒฉ์ ์ค์ ํฉ๋๋ค.selectBeverage
: ์ฌ์ฉ์๊ฐ ๊ธ์ก์ ํฌ์ ํ ํ ์๋ฃ๋ฅผ ์ ํํ๊ณ ๊ตฌ๋งคํ ์ ์๋๋ก ์ฒ๋ฆฌํฉ๋๋ค.
main.cpp
: ํ๋ก๊ทธ๋จ์ ๋ฉ์ธ ํ์ผ๋ก, ์ํ๊ธฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ด์ํ๋ ์ฝ๋๋ฅผ ํฌํจํฉ๋๋ค.ChangeManager
: ์งํ ๋ฐ ๋์ ๊ด๋ฆฌ๋ฅผ ์ํ ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค.MenuManager
: ์๋ฃ ๋ฉ๋ด ๊ด๋ฆฌ๋ฅผ ์ํ ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค.VendingMachine
: ์ํ๊ธฐ์ ์ ์ฒด ๋์์ ๊ด๋ฆฌํ๋ ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค.BeverageVendingMachine
: ๊ตฌ์ฒด์ ์ธ ์๋ฃ ์ํ๊ธฐ์ ๋์์ ๊ตฌํํ๋ ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค.