다오의 개발일지

스파르타 코딩클럽 미니 프로젝트 - 3 키오스크 본문

프로젝트

스파르타 코딩클럽 미니 프로젝트 - 3 키오스크

다오__ 2023. 5. 27. 18:31

5월 26일 자바 문법 강의를 듣는 중에 개인과제 발제가 나왔다.

키오스크 프로그램 만들기.

 

필수 요구사항은 다음과 같다.

  1. 메인 메뉴판 화면
    • 메인 메뉴판이 출력되며 메뉴판에는 상품 메뉴가 출력됩니다.
    • 상품 메뉴는 간단한 설명과 함께 출력되며 최소 3개 이상 출력됩니다.
    • 상품 메뉴 아래에는 Order(주문)와 Cancel(주문취소) 옵션을 출력해줍니다.
  2. 상품 메뉴판 화면
    • 상품 메뉴 선택시 해당 카테고리의 메뉴판이 출력됩니다.
    • 메뉴판에는 각 메뉴의 이름과 가격과 간단한 설명이 표시됩니다.
  3. 구매 화면
    • 상품 선택시 해당 상품을 장바구니에 추가할지 확인하는 문구가 출력됩니다.
    • 1.확인 입력시 장바구니에 추가되었다는 안내문구와 함께 메인메뉴로 다시 출력됩니다.
  4. 주문 화면
    • 5.Order 입력시 장바구니 목록을 출력해줍니다.
    • 장바구니에서는 추가된 메뉴들과 총 가격의 합을 출력해줍니다.
    • 1.주문 입력시 주문완료 화면으로 넘어가고, 2.메뉴판 입력시 다시 메인메뉴로 돌아옵니다.
  5. 주문완료 화면
    • 1.주문 입력시 대기번호를 발급해줍니다.
    • 장바구니는 초기화되고 3초후에 메인 메뉴판으로 돌아갑니다.
  6. 주문취소 화면
    • 메뉴판에서 6.Cancel 입력시 주문을 취소할지 확인을 요청하는 문구가 출력됩니다.
    • 1.확인 을 입력하면 장바구니는 초기화되고 취소 완료 문구와 함께 메뉴판이 출력됩니다.

또한 추가 요구사항도 있었는데 이는 다음 글에서 다루겠다.

 

우선 데이터셋을 담을 리스트를 선언하고 데이타를 담게 해주는 메서드들을 정의했다.

 

메뉴 리스트 메서드

 

주문 메뉴 리스트 메서드

 

상품 리스트를 담는 메서드

 

리스트를 담았으면 출력을 해서 메뉴처럼 보여주게 해야한다. 그러기 위한 반복문, 그리고 선택한 값을 리턴하는 selectMenu() 메서드 정의를 하였다.

 

메뉴 리스트를 출력하고 입력값을 리턴한다.

selectMenu()에서 리턴된 정수값을 기준으로 스위치문을 돌린다. 마찬가지로 상품데이터를 받고(getProductList(answer)) 상품데이터를 출력 및 선택(selectProduct)하여 코드를 간결화했다. 

 

getProductList(answer) 메서드같은 경우 argment에 입력한 정수값이 들어가게 되는데 입력한 값(1,2,3,4)에 따라 productList에 다르게 데이터리스트가 담긴다. 아래 참고

 

 

 

선택한상품을 addWishlist(selectedProduct) 메서드를 호출하여 장바구니로 넣을 지 말지를 선택한다.

Order 클래스 내 리스트(wishlist)에 추가할 수  있는 함수를 호출하여 선택한 상품을 등록한다.

 

등록이 완료되면 초기화면으로 되돌아간다.

5번의 경우 장바구니 리스트를 출력하고, 주문여부를 판단한다.

 

Product 클래스는 Menu 클래스를 상속받았고 상속받은 필드는 name, desc이다

 

Order클래스는 상품을 담을 수 있는 wishlist가 있고, 요구사항에 맞게 장바구니를 조회, 상품 추가 전부 삭제 기능을 만들었다.

 

 

 

 

 

끝으로,,

상속을 최대한 사용하여 코드를 작성하는 목표가 있었지만 아직 명확하게 이해를 하고 있지 않은 듯 하다.

다시 강의를 듣고 튜터님께 코드리뷰를 받아 코드를 수정 할 것이다.

 

추가 개발목표 또한 모두 작성해보고 싶다.