Skip to content

saevit/kiosk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

키오스크 과제

2025.04.24~2025.05.01

사용한 기술

  • Java

기능 소개

Lv1. 기본적인 키오스크

  • 별도의 클래스 없이 App에 모든 코드를 작성
  • 메뉴 아이템은 String[]으로 선언되어 이름, 가격, 설명이 한 문장으로 이루어져있다.

Lv2. MenuItem 클래스 생성

  • 메뉴 아이템의 이름, 가격, 설명을 속성으로 가지는 클래스 생성
  • Lv1과 달리 각 메뉴아이템들이 하나의 객체로 선언되어 있다.

Lv3. Kiosk 클래스 생성

  • List을 속성으로 가지며 메뉴를 관리
  • Lv2의 App에서 메뉴판을 출력하고 메뉴 선택을 받는 반복 과정을 Kiosk 클래스의 start() 메서드로 구성하도록 변경

Lv4. Menu 클래스 생성

  • List과 이름을 속성으로 가지며 메뉴를 카테고리 별로 관리
  • Kiosk 클래스는 List를 속성을 가지도록 변경하여 여러 카테고리별 메뉴를 관리

Lv5. 캡슐화 적용

  • MenuItem, Menu 그리고 Kiosk 클래스의 속에 직접 접근하지 못하도록 설정
  • Getter와 Setter 메서드를 사용해 데이터를 관리

Lv6. CartItem과 Cart 클래스 생성

  • 메뉴를 입력 받으면 이를 저장한 클래스들을 생성
  • CartItem 클래스는 MenuItem과 수량을 속성으로 가져 주문한 메뉴별 개수를 관리
  • Cart 클래스는 List과 총가격을 속성으로 가져 장바구니의 기능을 한다.

Lv7. Enum Discount 생성 / 스트림 활용

  • Enum Discount를 생성하면 장바구니 주문 시 할인 기능을 추가
  • Menu 클래스의 MenuItem을 출력할 때 스트림을 사용하도록 수정
  • 장바구니 취소 시 이름을 직접 입력받아 스트림을 활용해 인덱스를 찾고 삭제하는 기능 추가

실행 흐름 변화

Lv1 ~ Lv3

  • App 실행 시 메뉴판 출력 → 메뉴 선택 → 선택한 메뉴 재출력 (무한 반복, 메뉴로 0 선택 시 종료)

Lv4 ~ Lv5

  • App 실행 시 카테고리 먼저 출력 → 메뉴 선택 → 선택한 메뉴 재출력

Lv6

  • 카테고리 선택 → 메뉴 선택 → 주문 여부 확인 → 장바구니에 추가
  • (장바구니에 메뉴가 있다면) 카테고리에서 주문 취소 옵션 선택 가능

Lv7

  • 주문 시 할인 항목 선택 가능
  • 장바구니 메뉴 직접 입력하여 취소 가능

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages