자바로 만든 자판기 샘플

2884 단어 Java

목표


Java로 프로그래밍 경험 쌓기

대상


Java 기본 지식을 배우는 초보자

목표를 달성하다


프로세스맵과 기능에 따라 상세하게 프로그래밍할 수 있다.

흐름도



기능 세부 정보


상품 목록 초기화
상품은 아래 3개로 고정되어 있습니다.
콜라 100엔
오렌지 주스 120엔
물 80엔
수금
1엔 단위로 돈을 받을 수 있다.
구입할 수 있는 최저 금액이 입금될 때까지 수금을 독촉하다.
(이번엔 물의 80엔 이상)
상품 선택
수금액의 범위 내에서 상품을 표시하다.
상품 명칭에 따라 선택하다.
판매
선택한 상품을 제공하다.
요금
수금액에서 구매 금액을 공제하다.
잔돈을 갚다.

예제 코드

package vm;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 商品の初期化
        Map<String, Integer> items = new HashMap<String, Integer>();
        items.put("コーラ", 100);
        items.put("オレンジジュース", 120);
        items.put("水", 80);

        // 購入最低金額の場合、追加入金
        int deposit = 0;
        int minSaleAmount = -1;
        Scanner scanner = new Scanner(System.in);
        do {
            // 入金処理
            System.out.println("お金を入れて下さい。");
            deposit = deposit + scanner.nextInt();

            // 金額チェック(最低購入金額)
            int loopCount = 0;
            for (String itemKey: items.keySet()) {
                if(loopCount == 0 || minSaleAmount > items.get(itemKey)) {
                    minSaleAmount = items.get(itemKey);
                }
                loopCount++;
            }
        } while(deposit < minSaleAmount);

        // 商品選択
        System.out.println("商品を選択してください。");
        Map<String, Integer> availablePurchases = new HashMap<String, Integer>();
        for (String itemKey: items.keySet()) {
            if(deposit >= items.get(itemKey)) {
            System.out.println(itemKey + ":" + items.get(itemKey) + "円");
            availablePurchases.put(itemKey, items.get(itemKey));
            }
        }

        // 販売
        String itemName;
        while(true) {
            itemName = scanner.next();
            if (availablePurchases.containsKey(itemName)){
                break;
            }
            System.out.println("商品名の指定が誤っています。商品名を指定し直してください。");
        }
        scanner.close();
        System.out.println(itemName + "です!");

        // 課金機能
        deposit = deposit - availablePurchases.get(itemName).intValue();
        System.out.println("おつりは、" + deposit + "円です。");


    }

}
분류 버전이 생성되었습니다.
https://qiita.com/TakumiKondo/items/9f222f44c973bb2eaa06

좋은 웹페이지 즐겨찾기