You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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. 자판기 객체
classVendingMachine{// 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. 찾은 아이템을 리턴한다.returnitem;}
2.8. 잔돈 반환 메소드 (VendingMachine class)
returnMoney(){// 1. 남은 잔액이 반환됐다는 메세지 출력// 2. 잔액을 0으로 만든다.}