Skip to content

Latest commit

 

History

History
40 lines (35 loc) · 2.12 KB

File metadata and controls

40 lines (35 loc) · 2.12 KB

자판기

기능 : 상품을 구매하면 자판기가 가진 동전만으로 잔돈을 거슬러준다.

  1. 자판기의 보유 금액 입력받기
    • Coin으로 나누어 떨어져야 한다. 즉, 10원 단위로 나누어 떨어진다.
    • 0원도 가능하다 (잔돈 반환 불가능 시, 자판기에 남는다.)
    • 0원 미만은 불가능 하다.
  2. 투입 금액 받기 [콜라,1500,20];[사이다,1000,10]
    • 상품명 입력받기
    • 가격 입력받기
      • 최소 상품 판매 금액은 100원 이상이다.
      • 10원으로 나누어떨어져야 한다.
    • 수량 입력받기
      • 최소 1개 이상이다.
  3. 자판이가 보유하고 있는 금액에서 동전을 무작위로 생성하기
    • 자판기가 보유한 동전을 출력한다.
  4. 잔돈 돌려주기
    • 동전의 개수를 최소한으로 잔돈 돌려주기
    • 지폐 단위는 사용 불가하다.
    • 잔액 중 동전만 사용해 반환 불가능 시에 남은 금액은 자판기에 남는다.
  5. 상품을 구매하기
    • 구매할 상품명이 자판기에 존재하는지 검사한다.
    • 현재 금액으로 구매가 가능한지 검사한다.
    • 상품을 구매하여 최초 투입 금액에서 차감한다.
    • 더이상 구매가 불가능한 경우(남은 금액이 상품의 최저 가격보다 적음, 모든 상품이 소진됨.) 잔돈을 반환한다

프로그래밍 요구사항 - Coin

Coin 클래스를 활용해 구현해야 한다. 필드(인스턴스 변수)인 amount의 접근 제어자 private을 변경할 수 없다.

IllegalArgumentException를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 해당 부분부터 다시 입력을 받는다

Randoms, Console API를 사용한다.

✅ indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다. ✅ 3항 연산자를 쓰지 않는다. ✅ 함수(또는 메소드)의 길이가 15라인을 넘어가지 않도록 구현한다. ✅ 함수(또는 메소드)가 한 가지 일만 잘 하도록 구현한다. ✅ else 예약어를 쓰지 않는다.