Skip to content

๐Ÿช™๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ˆ˜์—… ๊ณผ์ œ๐Ÿช™ / ์žํŒ๊ธฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

Notifications You must be signed in to change notification settings

Hwanji2/Beverage_Vending_Machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฅค Beverage Vending Machine Program

๐ŸŒŸ ์†Œ๊ฐœ

์ด ํ”„๋กœ์ ํŠธ๋Š” ์Œ๋ฃŒ ์žํŒ๊ธฐ์˜ ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” C++ ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ๊ธˆ์•ก์„ ํˆฌ์ž…ํ•˜๊ณ  ์Œ๋ฃŒ๋ฅผ ์„ ํƒํ•˜์—ฌ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ
๊ฑฐ์Šค๋ฆ„๋ˆ ์ฒ˜๋ฆฌ, ์ง€ํ ๋ฐ ๋™์ „ ๋ณด๊ธ‰, ์›”๋ณ„ ๋งค์ถœ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์–‘ํ•œ ์Œ๋ฃŒ ๋ฉ”๋‰ด์™€ ์ง€ํ/๋™์ „ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ํ˜„์‹ค์ ์ธ ์žํŒ๊ธฐ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”‘ ์ฃผ์š” ๊ธฐ๋Šฅ

1๏ธโƒฃ ๋ฉ”๋‰ด ๊ด€๋ฆฌ

  • ๐Ÿ“ ์Œ๋ฃŒ ๋ฉ”๋‰ด์™€ ๊ฐ€๊ฒฉ์„ ์„ค์ •ํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ› ๏ธ ๋ฉ”๋‰ด๋Š” ์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™”๋˜๋ฉฐ, ๋ฉ”๋‰ด ํ•ญ๋ชฉ๊ณผ ๊ฐ€๊ฒฉ์„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ ๊ธˆ์•ก ํˆฌ์ž… ๋ฐ ๊ฒ€์ฆ

  • ๐Ÿ’ฐ ์‚ฌ์šฉ์ž๋Š” 10์›๋ถ€ํ„ฐ 10,000์›๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ง€ํ ๋ฐ ๋™์ „์„ ํˆฌ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๐Ÿšจ ์ž˜๋ชป๋œ ๊ธˆ์•ก(1์˜ ์ž๋ฆฌ ๊ธˆ์•ก)์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ์œ ํšจํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ์„ ํ•  ๊ฒฝ์šฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • โœ… ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ธˆ์•ก์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ๋งค ๊ฐ€๋Šฅํ•œ ์Œ๋ฃŒ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ์Œ๋ฃŒ ์„ ํƒ ๋ฐ ๊ตฌ๋งค

  • ๐Ÿ›’ ์‚ฌ์šฉ์ž๋Š” ๊ธˆ์•ก์„ ํˆฌ์ž…ํ•œ ํ›„ ๊ตฌ๋งค ๊ฐ€๋Šฅํ•œ ์Œ๋ฃŒ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๐Ÿ’ธ ์„ ํƒํ•œ ์Œ๋ฃŒ์˜ ๊ฐ€๊ฒฉ์ด ํˆฌ์ž…ํ•œ ๊ธˆ์•ก๋ณด๋‹ค ์ ๊ฑฐ๋‚˜ ๊ฐ™์„ ๊ฒฝ์šฐ ๊ตฌ๋งค๊ฐ€ ์™„๋ฃŒ๋˜๋ฉฐ, ๋งค์ถœ์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ“‹ ๊ตฌ๋งคํ•œ ์Œ๋ฃŒ์™€ ๊ตฌ๋งค ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•˜์—ฌ ์ผ์ผ ๋งค์ถœ ๋ณด๊ณ ์„œ์— ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค.

4๏ธโƒฃ ๊ฑฐ์Šค๋ฆ„๋ˆ ์ฒ˜๋ฆฌ

  • ๐Ÿ’ต ์‚ฌ์šฉ์ž๊ฐ€ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ ์š”์ฒญํ•  ๊ฒฝ์šฐ ์žํŒ๊ธฐ์— ๋ณด์œ ํ•œ ๋™์ „๊ณผ ์ง€ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • โŒ ๋ฐ˜ํ™˜ํ•  ๊ธˆ์•ก์ด ์žํŒ๊ธฐ ๋‚ด ๋ณด์œ ํ•œ ๋™์ „๊ณผ ์ง€ํ๋กœ ์ •ํ™•ํžˆ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ถ€์กฑ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์žํŒ๊ธฐ ์šด์˜์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

5๏ธโƒฃ ๋งค์ถœ ๊ด€๋ฆฌ

  • ๐Ÿ“Š ์›”๋ณ„ ๋งค์ถœ์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ํ˜„์žฌ ์›”๊ณผ ์ง€๋‚œ ๋‹ฌ์˜ ๋งค์ถœ ๋ณด๊ณ ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ“† ์ผ์ผ ๋งค์ถœ๊ณผ ํŒ๋งค๋œ ์Œ๋ฃŒ์˜ ํŒ๋งค ์‹œ๊ฐ„๋„ ํ•จ๊ป˜ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ ํด๋ž˜์Šค ์„ค๋ช…

ChangeManager

  • ๐Ÿฆ ์ง€ํ ๋ฐ ๋™์ „ ๋ณด๊ธ‰ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.
  • ๐Ÿงพ ๋™์ „ ๋ณด๊ธ‰, ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฐ˜ํ™˜, ๋™์ „ ์ž”๋Ÿ‰ ์ถœ๋ ฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์š” ๋ฉ”์„œ๋“œ:
    • supplyChange: ํŠน์ • ์ง€ํ ๋˜๋Š” ๋™์ „์„ ๋ณด๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
    • calculateChange: ๊ฑฐ์Šค๋ฆ„๋ˆ์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • printChangeStatus: ํ˜„์žฌ ๋™์ „ ๋ณด๊ธ‰ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

MenuManager

  • ๐Ÿน ์žํŒ๊ธฐ ๋ฉ”๋‰ด(์Œ๋ฃŒ ์ด๋ฆ„๊ณผ ๊ฐ€๊ฒฉ)๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.
  • ์ฃผ์š” ๋ฉ”์„œ๋“œ:
    • setupMenu: ๋ฉ”๋‰ด ์ด๋ฆ„๊ณผ ๊ฐ€๊ฒฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • displayMenu: ํ˜„์žฌ ์„ค์ •๋œ ๋ฉ”๋‰ด์™€ ๊ฐ€๊ฒฉ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • getPrice: ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์Œ๋ฃŒ์˜ ๊ฐ€๊ฒฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

VendingMachine

  • ChangeManager์™€ MenuManager๋ฅผ ์ƒ์†๋ฐ›์•„ ์žํŒ๊ธฐ ์ „์ฒด ๋™์ž‘์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.
  • ์ฃผ์š” ๋ฉ”์„œ๋“œ:
    • validateAndProcessPayment: ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ธˆ์•ก์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
    • handleNoChange: ๊ฑฐ์Šค๋ฆ„๋ˆ ๋ฐ˜ํ™˜์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • printSalesReport: ์ผ์ผ ๋งค์ถœ ๋ณด๊ณ ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • printMonthlySalesReport: ์›”๋ณ„ ๋งค์ถœ ๋ณด๊ณ ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

BeverageVendingMachine

  • VendingMachine์„ ์ƒ์†๋ฐ›์•„ ๊ตฌ์ฒด์ ์ธ ์Œ๋ฃŒ ๋ฉ”๋‰ด์™€ ๋งค์ถœ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.
  • ์ฃผ์š” ๋ฉ”์„œ๋“œ:
    • setupMenu: ์Œ๋ฃŒ ์ด๋ฆ„๊ณผ ๊ฐ€๊ฒฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • selectBeverage: ์‚ฌ์šฉ์ž๊ฐ€ ๊ธˆ์•ก์„ ํˆฌ์ž…ํ•œ ํ›„ ์Œ๋ฃŒ๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‚ ํŒŒ์ผ ์„ค๋ช…

  • main.cpp: ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”์ธ ํŒŒ์ผ๋กœ, ์žํŒ๊ธฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ChangeManager: ์ง€ํ ๋ฐ ๋™์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • MenuManager: ์Œ๋ฃŒ ๋ฉ”๋‰ด ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • VendingMachine: ์žํŒ๊ธฐ์˜ ์ „์ฒด ๋™์ž‘์„ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • BeverageVendingMachine: ๊ตฌ์ฒด์ ์ธ ์Œ๋ฃŒ ์žํŒ๊ธฐ์˜ ๋™์ž‘์„ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

About

๐Ÿช™๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ˆ˜์—… ๊ณผ์ œ๐Ÿช™ / ์žํŒ๊ธฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages