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


関連記事

elseを使わないことでパフォーマンスが下がる場合の対処法

  状況 前回記事(なぜelse、else ifを書かないようにすべきなのか?)のような ifのみで判定されており、それがfor文等の繰り返し処理の中にある場合は パフォーマンスが下がる。 …

【Java】オブジェクト指向の練習題材(会計オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは3つのオブジェクトを作成していきます。 – 会計オブジェクト:会計金額の算出 – 請求書オブ …

【Javaサンプル】自動販売機(Level4) ドメイン駆動

前回(Level3) Level3ではクラス分けすることを行いました。 しかし、私の目指すところのドメイン駆動開発になっていません。 また、ロジックもまだまだ複雑さが残っており、ぱっと見て何をやってい …

【Java】LinkedHashSetの使い方(挿入順を保持するSet)

LinkedHashSetはHashSetのサブクラスであり、同じメソッドが実装されています。 メソッドの使い方であればHashSetと同じなので、HashSetの使い方を参照下さい。  ↓ 【Jav …

【Javaサンプル】自動販売機(Level2) メソッドに小さく分割する

前回の自動販売機(Level1)では、まず動くものを作りました。 そこでは1つのメソッド(Main)にすべてをコーディングしていましたが、 これを機能ごとに分割していきます。 実際の仕事では、1つの大 …

記事を探す

SpringFramworkの良書

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

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