Java

【Javaサンプル】自動販売機を作成(Level1)

投稿日:2019年12月5日 更新日:

Javaの勉強用サンプルです。
テーマは自動販売機。
プログラミング初心者向けに書いています。

 

自動販売機を題材として選んだ理由

自社研修で行っている

自社研修で自動販売機を作成したので、自分にとっては取り組みやすかったということ。
最初に作ったとき、「わかっているようでわかっていなかった」
ということを感じました。

お金を入れて、
買える商品だけが表示されて、
選んだら商品が提供され・・・
という流れをプログラムで実現すると、
意外と考えさせられました。

身近なもので誰でもよく知っている

他の誰かに教える、やってもらうという場合も、
すでによく知られているということは教え易さでもあります。

 

達成目標

対象

Javaの基本を学んだ初学者。

if文、for文、while文等の基本的な構文について学習済の方が対象です。

テーマの位置づけ

Javaを使ってプログラミングの経験を積む初期の練習題材。

基本的な構文は理解したが、実際に作るとなるとなった場合、
実際に作るという経験が必要になってきます。

達成目標

フローチャートと機能詳細元にプログラミングができる。

実務では設計書を見ながらプログラミングをすることになりますし、
場合によっては設計書無しということもあります。

ここではそのための練習としています。

 

フローチャート

 

機能詳細

商品リスト初期化

商品は以下の3つ固定とする。
コーラ100円
オレンジジュース120円
水80円

入金

1円単位で入金可能とする。
購入可能な最低金額が入金されるまで入金を促す。
(今回の場合、水の80円以上)

商品選択

入金額の範囲で商品を表示する。
商品名で選択する。

販売

選択した商品を提供する。

課金

入金額から購入金額を引く。
釣銭を返す。

 

サンプルコード

参考までに、Qiitaにアップしています。
https://qiita.com/TakumiKondo/items/e93aa60031e2fe09d969

 

最後に

まずは書いてみる、動かしてみるが上達の第1歩です。
ぜひ少しずつでもいいので、日々コーディングしていってください。

 

Level2

次のLevel2では、メソッドに小さく分割していきます。
【Javaサンプル】自動販売機(Level2) メソッドに小さく分割する

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

AbstractFactoryパターンをenumで生成するメリット

AbstractFactoryパターンの説明には、実行時引数に文字列を渡したり、フラグでif-else判定する例をよく見かける。 しかし、どんなFactoryが生成可能を知らない担当者がFactory …

【SpringBoot入門】#3~ Index画面の作成

このチュートリアルでは、簡易な書籍管理システムを作っていきます。 まず最初にIndex画面を作成していきます。 HTML作成 以下の配下にindex.htmlを作成します。 配置先:プロジェクト(ここ …

【Java】重複しないリストはSetを使う!(用途別 3種類)

概要 重複しないリストは、「Setに格納することで重複を除外してくれる」というのは多くの記事で紹介されています。 ここでは、Setに格納した後のデータの並び順も考慮したいという要件に対応するために、3 …

Springでバリデーションがimportされていないときの対処法

状況 SpringF/Wでバリデーションを実装したいが、@NotNullや@Minといったアノテーションが使えない。 @NotNullを使おうとすると、import com.sun.istack.No …

【Java入門】クラスとインスタンスの違いを分かり易い言葉で説明します。

概要 クラスとインスタンスの違いについて、できるだけ分かり易い言葉や表現で説明します。   クラス 設計書だよ。 以上です。 ほんとマジで。 どんなデータと操作が可能かを決めているだけなので設計書と表 …

記事を探す

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。