콘솔 기반으로 한 키오스크 프로그램이며, 객체지향적 설계를 통해서 단계적으로 구현한 프로젝트 입니다. 사용자는 제공 되는 메뉴를 보고 원하는 상품을 장바구니에 추가하고 결제까지 진행 할 수 있습니다.
- 2025.04.24 ~ 2025.05.01
- java: 17
- jdk: 17.0.1
- IDE : IntelliJ
Scanner로 사용자 입력을 받아 햄버거 메뉴를 출력하고 선택할 수 있도록 구현while반복문과 조건문으로 흐름 제어0입력 시 종료 처리
MenuItem클래스 생성: 이름, 가격, 설명을 필드로 가짐- 여러
MenuItem을List로 관리하고 반복문으로 출력 - 메뉴 선택 시 해당 항목 출력
Kiosk클래스 생성: 메뉴 출력과 사용자 입력 처리를start()메서드로 구현main()메서드는 Kiosk.start()만 호출- 프로그램의 흐름을
Kiosk클래스가 전담하여 구조 개선
Menu클래스 생성: 여러MenuItem(Burgers, Drinks, Desserts)에 속하는 메뉴들을 묶어 관리- 카테고리: Burgers / Drinks / Desserts
- 선택에 따라 카테고리 내부 메뉴 출력 후 메뉴 선택 가능, 메뉴 선택 시 상세 정보 출력
- 모든 클래스의 필드 접근제어자
private로 변경 Getter/Setter메서드를 통해 필드 접근- 외부에서 객체 내부 데이터에 직접 접근하지 못하도록 보호
- 메뉴 선택 시, 해당 메뉴를 장바구니에 추가할지 여부를 사용자에게 확인
- 장바구니에 메뉴 이름, 수량, 가격 정보를 저장
- 장바구니 내용을 출력하고 총 금액 계산
- “주문하기” 기능 추가: 장바구니 항목들을 출력 후, 주문 확정 시 장바구니 초기화
- 예외 처리: 유효하지 않은 메뉴 번호, 잘못된 입력 등에 대한 적절한 안내
MenuItem,Cart,PersonType,Menu,Kiosk클래스로 기능 분리- 사용자 유형의
Enum정의 및 각 사용자 유형에 따른 할인율 설정 PersonType enum을 활용해 할인율 적용 로직 분리- 메뉴 항목 출력 시
Stream.forEach와Lambda사용 - 장바구니에서 특정 메뉴 삭제 시
Stream.filter활용 Stream을 통한 총 금액 계산
[ MAIN MENU ]
1 Burgers
2 drinks
3 desserts
0. 종료 | 종료
주문 번호: 1
[ BURGERS MENU ]
1. ShackBurger || 6.9 || 토마토, 양상추, 쉑소스가 토핑된 치즈버거
2. SmokeShack || 8.9 || 베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거
3. Cheeseburger || 6.9 || 포테이토 번과 비프패티, 치즈가 토핑된 치즈버거
4. Hamburger || 5.4 || 비프패티를 기반으로 야채가 들어간 기본버거
0. 뒤로가기
음식을 선택해 주세요: 1
**ShackBurger || 6.9 || 토마토, 양상추, 쉑소스가 토핑된 치즈버거**
위 메뉴를 장바구니에 추가 하시겠습니까?
1. 확인 2. 취소
1
ShackBurger 이 장바구니에 추가되었습니다.
[ MAIN MENU ]
1 Burgers
2 drinks
3 desserts
0. 종료 | 종료
[ ORDER MENU ]
4. Orders | 장바구니를 확인 후 주문합니다
5. Cancel | 진행중인 주문을 취소합니다
주문 번호: 4
아래와 같이 주문 하시겠습니까?
[ Orders ]
1. ShackBurger || 6.9 || 토마토, 양상추, 쉑소스가 토핑된 치즈버거
[ Total ]
총 수량 : 1 || 총 금액 : 6.9
1. 주문 2. 메뉴판 3. 장바구니 삭제
1
할인 정보를 입력해주세요.
1. 군인 : 30%
2. 학생 : 10%
3. 일반인 : 0%
1
주문이 완료되었습니다. 금액은 4.83 입니다
- 유효하지 않은 메뉴 번호, 잘못된 입력 등에 대한 예외 (다시 입력 받도록 처리)
[ MAIN MENU ]
1 Burgers
2 drinks
3 desserts
0. 종료 | 종료
[ ORDER MENU ]
4. Orders | 장바구니를 확인 후 주문합니다
5. Cancel | 진행중인 주문을 취소합니다
주문 번호: 6
1 ~ 5 까지만 선택해주세요!
[ MAIN MENU ]
1 Burgers
2 drinks
3 desserts
0. 종료 | 종료
[ ORDER MENU ]
4. Orders | 장바구니를 확인 후 주문합니다
5. Cancel | 진행중인 주문을 취소합니다
주문 번호: s
숫자로 입력해 주세요!