Javaで回数券と自動改札のシミュレーション
概要
乗り物の回数券を表すクラスと自動改札機を表すカードを定義する。自動改札機に改札券を入れると残高から料金が引かれる。残高が足りないと通過できない。
class CommutationTicket {// 回数券クラス int balance; boolean pay(int fare) {// 運賃の支払い balance -= fare; if (balance < 0) { balance += fare; return false; } else { return true; } } } class AutomaticChicketChecker {// 自動改札機クラス int fare; void insertTicket(CommutationTicket ticket) {// 回数券を調べ支払いさせる。乗客を通過させる。 if (ticket.pay(fare) == true) { System.out.println("改札通過できます。回数券の残高は" + ticket.balance + "です"); } else { System.out.println("改札通過できません。回数券の残高は" + ticket.balance + "です。残高が足りません"); } } } class TicketAndCheker { public static void main(String[] args) { // 自動改札機オブジェクトを生成 AutomaticChicketChecker checker = new AutomaticChicketChecker(); System.out.println("自動改札機オブジェクトを生成しました"); // 運賃を210円とする checker.fare = 210; System.out.println("運賃を210円としました"); System.out.println(); // 回数券オブジェクトを生成する CommutationTicket ticket = new CommutationTicket(); System.out.println("回数券オブジェクトを生成しました"); // 残高を400円にする ticket.balance = 400; System.out.println("回数券の残高を400円にしました"); System.out.println(); // 改札を通ることを試みる System.out.println("一回目の通過"); checker.insertTicket(ticket); System.out.println(); // 再び改札を通ることを試みる System.out.println("2回めの通過"); checker.insertTicket(ticket); } }
実行結果
自動改札機オブジェクトを生成しました
運賃を210円としました
回数券オブジェクトを生成しました
回数券の残高を400円にしました
一回目の通過
改札通過できます。回数券の残高は190です
2回めの通過
改札通過できません。回数券の残高は190です。残高が足りません
1/12 鉄道小物シリーズ EK-04 自動改札機日本信号製GX7 (黒色タイプ)
- 出版社/メーカー: トミーテック
- 発売日: 2013/06/08
- メディア: おもちゃ&ホビー
- この商品を含むブログ (2件) を見る
- 作者: 椎橋章夫
- 出版社/メーカー: 交通研究協会
- 発売日: 2015/04
- メディア: 単行本
- この商品を含むブログを見る