Skip to content

sejungkim/javascript-vending-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

자판기 애플리케이션

1. 목표

  • 아래와 같이 동작하는 자판기 애플리케이션을 구현한다.
  • 자판기 상품 데이터는 객체 형태로 사용한다.
insertCoin(1000);
사용가능한 음료수 목록 =>  콜라(1000, 재고2), 사이다(1000. 재고10), 포도쥬스(700, 재고2), 딸기우유(500, 재고4), 미에로화이바(900, 재고9), (500, 재고10), 파워에이드(1000, 재고없음)
selectItem("미에로화이바")  //만약, 파워에이드를 선택하면 선택할수 없다는 메시지 노출. 
미에로화이바가 나왔습니다.   현재잔돈 : 100,  사용가능한 음료수 : 없음
insertCoin(900);
사용가능한 음료수 목록 => 콜라(1000, 재고2), 사이다(1000. 재고10), 포도쥬스(700, 재고2), 딸기우유(500, 재고4), 미에로화이바(900, 재고8), (500, 재고10), 파워에이드(2000, 재고없음)
returnMoney();
잔돈 1000원이 반환됐습니다.

2. 코드 설계

2.1. 자판기 객체

class VendingMachine {
  // 1. 잔액 속성
  // 2. 상품 속성
  // 3. 그 외 메소드들
}

2.2. 돈을 넣는(받는) 메소드 (VendingMachine class)

insertCoin(amount) {
  // 1. 잔액을 변경시킨다.
  // 2. 변경된 잔액 기준으로 구매 가능한 상품을 분류한다.
  // 3. 분류한 구매 가능한 상품 리스트를 출력한다.
}

2.3. 잔액 변경 메소드 (VendingMachine class)

changeBalance(amount, change) {
  // 1. change에 따라 잔액을 증가 혹은 감소시킨다.
  // 2. 변경된 잔액을 출력한다.
}

2.4. 구매 가능한 상품을 분류하는 메소드 (VendingMachine class)

getAvailableList() {
  // 1. 잔액을 기준으로 가격이 같거나 적은 상품,
  // 2. 재고가 있는 상품을 골라 새로운 상품 리스트를 만든다.
  // 3. 만든 리스트를 클래스 내부에 저장.
}

2.5. 구매 가능한 상품 리스트를 출력하는 메소드 (VendingMachine class)

showAvailableList() {
  // 1. 객체 형태의 구매 가능한 상품 리스트를 보기 좋게 출력한다.
}

2.6. 구매할 상품을 선택하는 메소드 (VendingMachine class)

selectItem(itemName) {
  // 1. 구매 가능한 상품 리스트에서 입력받은 상품을 찾음
  // 2. 상품이 없다면 에러 처리, 있다면 상품 출력
  // 3. 선택된 상품 가격만큼 잔액 변경
  // 4. 선택된 상품 재고 개수 변경
  // 5. 사용 가능한 음료수 목록 출력
}

2.7. 입력받은 아이템을 찾는 메소드 (VendingMachine class)

getSelectedItem(itemName) {
  // 1. 구매 가능한 상품 리스트에서 아이템을 찾는다.
  // 2. 아이템이 없다면 에러처리한다.
  // 3. 찾은 아이템을 리턴한다.
  return item;
}

2.8. 잔돈 반환 메소드 (VendingMachine class)

returnMoney() {
  // 1. 남은 잔액이 반환됐다는 메세지 출력
  // 2. 잔액을 0으로 만든다.
}

About

Codesquad Level 2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •