부트캠프/데일리 미션

Lv2. 스파르타 자판기

nameless1004 2024. 6. 30. 02:12

간단하게 자판기를 만들어보자

조건은 이러하다.

1. 사용자가 볼 수 있게 메뉴를 표시한다.

2. 사용자는 음료를 선택할 수 있다.

3. 사용자는 지불할 금액을 입력할 수 있다.

4. 사용자는 음료를 구매하고 남은 잔액을 확인할 수 있다.

 

인풋은 자바의 Scanner를 사용해서 입력을 받고 나머지 구현은 Map을 사용해서 구현하면 될 것 같다.

구현

import java.text.MessageFormat;
import java.util.*;

public class VendingMachine {

    public VendingMachine(){
        setUp();
    }

    public Map<String, Integer> prices = new HashMap<>();

    private void setUp() {
        prices.put("사이다", 1700);
        prices.put("콜라", 1900);
        prices.put("식혜", 2500);
        prices.put("솔의눈", 3000);
    }

    public void use(){
        Scanner scanner = new Scanner(System.in);

        printProductInfo();

        System.out.println("음료수를 선택해주세요");
        var drinkName = scanner.next();
        
        if(!prices.containsKey(drinkName)) return;

        System.out.println("돈을 넣어주세요");
        var inputMoney = scanner.nextInt();

        int price = prices.get(drinkName);
        if(price > inputMoney) {
            System.out.println("돈이 부족합니다.");
            return;
        }
        
        System.out.println(MessageFormat.format("잔돈: {0}원", inputMoney - price));
    }

    private void printProductInfo() {
        prices.forEach((x,y) -> {
            System.out.println(MessageFormat.format("{0} : {1}원", x, y));
        });

        System.out.println();
    }
}
public class Main {
    public static void main(String[] args) {
        VendingMachine machine = new VendingMachine();
        machine.use();
    }
}

출력