0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Javaで作る自動販売機のサンプル

Last updated at Posted at 2019-12-04

#目的
Javaを使ってプログラミングの経験を積むこと

#対象者
Javaの基本を学んだ初学者

#達成目標
フローチャートと機能詳細を元にプログラミングができる。

#フローチャート
image.png

#機能詳細
・商品リスト初期化
商品は以下の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

0
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?