ソフトウェア工学2008 演習1 戻る

問題

先払い式の電子マネーを用いて電車の乗車賃を決済するシステム (SuicaICOCA等) の振る舞いを模倣するクラス ETicket のプログラムを作成せよ. ETicketクラスがもつべきメソッドは以下の通りである. その他,必要なメソッドは適宜追加してよいし, 運賃を一律ではなく,区間に基づき計算するようにしてもよい.

作成したETicketクラスは必ず以下のmainメソッドの記述で振る舞いをテストせよ.

public static void main(String[] args){
	ETicket et=new ETicket();
	et.charge(250); // 250円入金しました

	et.checkIn(); // どっかの駅で乗りました
	System.out.println("Boarding? "+et.isBoarding()); // 乗車中か否かとりあえずチェック
	System.out.println(et.getValue()); //残金を確認,まだ決済されていないことが分かる
	boolean result = et.checkOut(); // 下車
	System.out.println("checkOut? "+result);
	System.out.println("Boarding? "+et.isBoarding()); // 乗車中か否かとりあえずチェック
	System.out.println(et.getValue()); //残金を確認,決済されたことを確認

	et.checkIn();
	result=et.checkOut();
	System.out.println("checkOut? "+result);
	System.out.println(et.getValue()); // この時点で50円しか残ってません

	et.checkIn();
	result=et.checkOut(); 
	System.out.println("checkOut? "+result); // 残金が足りないので下車できていないはずです
	System.out.println("Boarding? "+et.isBoarding()); // 下車できてないのでtrueです	
}
結果は以下になるはずです.
Boarding? true
250
checkOut? true
Boarding? false
150
checkOut? true
50
checkOut? false
Boarding? true

注意点

提出期限・提出法

解答例

[ZIP], [DIR]

本ページトップ | 戻る 更新