Skip to content

CodingMasterLSW/java-convenience-store-7-CodingMasterLSW

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

편의점

기능 구현 목록


파일 읽기

  • 주어진 resources 파일을 읽어들여 객체로 생성한다.
    • products.md 파일을 읽어 Product 객체로 생성한다.
    • promotions.md 파일을 읽어 Promotion 객체로 생성한다.

입력

  • 구매할 상품과 수량을 입력받는다.
  • 수량은 하이픈(-)으로, 개발 상품은 대괄호[ ] 로 묶어 쉼표로 구분한다.
  • 상품 구매 후, 재구매 여부를 입력받는다.
    • 'Y' 일 경우, 재구매를 진행한다.
    • 'N' 일 경우, 프로그램을 종료시킨다.
    • Exception
    • 구매할 상품과 수량 형식이 올바르지 않은 경우
      • 구매할 상품과 수량 형식이 올바르지 않은 경우 예외를 발생시킨다.
      • 구매 수량이 0 이하인 경우 예외를 발생시킨다.
      • 구매 수량이 재고 수량을 초과한 경우 예외를 발생시킨다.
      • 존재하지 않는 상품의 경우, 예외를 발생시킨다.

구매

  • 사용자가 입력한 문자를 구매 리스트로 변환한다.
  • 오늘 날짜가 프로모션 기간에 속하는지 체크한다.
  • 프로모션 상품의 경우, 프로모션 상품의 재고를 차감한다.
  • 프로모션 상품이 아닌경우, 일반 상품의 재고를 차감한다.
    • 일반 상품의 재고가 없을 경우, 예외가 발생한다
  • 총 구매 금액을 계산한다.
  • 총 구매 수량을 계산한다.

프로모션 할인

  • 오늘 날짜가 프로모션 기간 내에 포함된 경우에만 할인 적용.
  • 프로모션은 N개 구매 시 1개 무료 증정의 형태로 진행.
  • 1+1 또는 2+1 프로모션에 각각 지정된 상품에 적용.
  • 동일 상품에 여러 프로모션이 적용되지 않음.
  • 프로모션 혜택은 프로모션 재고 내에서만 적용.
  • 프로모션 기간 중이라면, 프로모션 재고를 우선적으로 차감.
  • 프로모션 재고가 부족할 경우에는 일반 재고를 사용.
  • 프로모션 상품에 해당되지만 고객이 해당 수량보다 적게 가져온 경우, 헤택 메세지 알림.
    • 혜택 메세지 알림 후, 수량을 추가할 건지 입력을 받는다
    • 수량이 추가되었다면, 포함해서 결제를 진행한다
      • 포함된 상품은 행사할인이라는 할인명으로 할인을 진행한다.
    • 수량이 추가되지 않았다면, 그냥 결제를 진행한다.
  • 프로모션 재고가 부족하여 일부 수량을 프로모션 혜택 없이 결제하는 경우, 일부 수량에 대해 정가 결제 안내.

멤버십 할인

  • 프로모션 미적용 금액의 30% 할인
  • 프로모션 적용 후 남은 금액에 대해서 멤버십 할인 적용
  • 멤버십 할인의 최대 한도는 8,000원

출력

  • 현재 편의점의 재고를 출력한다.
  • 프로모션 적용이 가능한 상품에 대해 고객이 수량만큼 가져오지 않았을 경우, 헤택에 대한 안내메세지를 출력한다.
  • 프로모션 재고가 부족하여 일부 수량을 프로모션 혜택 없이 결제해야 하는 경우, 정가 결제에 대한 안내 메세지를 출력한다.
  • 멤버십 할인 적용 여부 안내 문구를 출력한다.
  • 추가 구매 여부를 확인하기 위한 안내 문구를 출력한다.

영수증 출력

  • 구매 상품 내역 출력
    • 구매한 상품명, 수량, 가격을 출력한다.
    • 증정 상품 내역
      • 프로모션에 따라 무료로 제공된 증정 상품의 목록을 출력한다.
    • 금액 정보
      • 총 구매액을 출력한다.
      • 프로모션에 의해 할인된 금액을 출력한다.
      • 멤버십에 의해 추가로 할인된 금액을 출력한다.
      • 최종 결제 금액을 출력한다.
    • 영수증의 구성 요소를 정렬한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages