- 아래와 같이 동작하는 자판기 애플리케이션을 구현한다.
- 자판기 상품 데이터는 객체 형태로 사용한다.
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원이 반환됐습니다.class VendingMachine {
// 1. 잔액 속성
// 2. 상품 속성
// 3. 그 외 메소드들
}insertCoin(amount) {
// 1. 잔액을 변경시킨다.
// 2. 변경된 잔액 기준으로 구매 가능한 상품을 분류한다.
// 3. 분류한 구매 가능한 상품 리스트를 출력한다.
}changeBalance(amount, change) {
// 1. change에 따라 잔액을 증가 혹은 감소시킨다.
// 2. 변경된 잔액을 출력한다.
}getAvailableList() {
// 1. 잔액을 기준으로 가격이 같거나 적은 상품,
// 2. 재고가 있는 상품을 골라 새로운 상품 리스트를 만든다.
// 3. 만든 리스트를 클래스 내부에 저장.
}showAvailableList() {
// 1. 객체 형태의 구매 가능한 상품 리스트를 보기 좋게 출력한다.
}selectItem(itemName) {
// 1. 구매 가능한 상품 리스트에서 입력받은 상품을 찾음
// 2. 상품이 없다면 에러 처리, 있다면 상품 출력
// 3. 선택된 상품 가격만큼 잔액 변경
// 4. 선택된 상품 재고 개수 변경
// 5. 사용 가능한 음료수 목록 출력
}getSelectedItem(itemName) {
// 1. 구매 가능한 상품 리스트에서 아이템을 찾는다.
// 2. 아이템이 없다면 에러처리한다.
// 3. 찾은 아이템을 리턴한다.
return item;
}returnMoney() {
// 1. 남은 잔액이 반환됐다는 메세지 출력
// 2. 잔액을 0으로 만든다.
}