オブジェクト指向練習問題。
Q1
預金口座を表すクラスAccountを定義して、
各操作ができるプログラムを作成せよ。
■クラス:Account
<フィールド変数>
private int num 口座番号
private int pin 暗証番号
private int amount 預入金額
private static int totalAmount 全口座の預入金額の総額
<一般メソッド>
public boolean checkPin(int p)
… 暗証番号が正しいかどうかをチェックする
deposit
… 引数に指定した金額を口座に入れる
draw
… 引数に指定した金額を口座から引き出す
残高が不足する場合は1円も引き出さない
toString(Override)
… 口座番号と残高を表示する
static displayTotalAmount 機能
… 全口座の預入金額の総額を表示する
[実行例]
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>1 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>1 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>4 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>3 |
0---口座番号:1234567, 残高:10000 |
1---口座番号:2345678, 残高:15000 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>2 |
0---口座番号:1234567, 残高:10000 |
1---口座番号:2345678, 残高:5000 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>3 |
0---口座番号:1234567, 残高:10000 |
1---口座番号:2345678, 残高:5000 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>3 |
0---口座番号:1234567, 残高:10000 |
1---口座番号:2345678, 残高:5000 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>2 |
0---口座番号:1234567, 残高:10000 |
1---口座番号:2345678, 残高:5000 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>4 |
1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>5 |
一般クラス
05 | private static int totalAmount; |
06 | public Account( int num, int pin, int amount){ |
12 | public boolean checkPin( int p){ |
15 | public void deposit( int money){ |
18 | System.out.println(money+ "円預入しました。" ); |
20 | public void draw( int money){ |
21 | if ( this .amount < money){ |
22 | System.out.println( "残高が不足しています。" ); |
26 | System.out.println(money+ "円引き出しました。" ); |
30 | public String toString() { |
31 | return String.format( "口座番号:%d, 残高:%d" , this .num, this .amount); |
33 | public static void displayTotalAmount(){ |
34 | System.out.println( "全口座の残高の合計は" +totalAmount+ "円です。" ); |
アプリケーションクラス
03 | public static List<Account> list= new ArrayList<>(); |
04 | public static Scanner s= new Scanner(System.in); |
05 | public static void main(String[] args) { |
07 | int select=getInputInt( "1. 新規口座作成 / 2. 預入 / 3. 引出 / 4.預入総額表示 / 5. 終了>" ); |
10 | Account acc= new Account( |
11 | getInputInt( "口座番号を入力して下さい >" ), |
12 | getInputInt( "暗証番号を入力して下さい >" ), |
13 | getInputInt( "初期預入金額を入力して下さい >" ) |
19 | int index=getInputInt( "口座を番号で選択して下さい >" ); |
20 | if (index < 0 || index >= list.size()){ |
21 | System.out.println( "口座の番号の選択が誤っています。" ); |
23 | int money=getInputInt( "預入金額を入力して下さい >" ); |
24 | list.get(index).deposit(money); |
29 | index=getInputInt( "口座を番号で選択して下さい >" ); |
30 | if (index < 0 || index >= list.size()){ |
31 | System.out.println( "口座の番号の選択が誤っています。" ); |
33 | int pass=getInputInt( "暗証番号を入力して下さい >" ) ; |
34 | if (list.get(index).checkPin(pass)){ |
35 | int money=getInputInt( "引出金額を入力して下さい >" ); |
36 | list.get(index).draw(money); |
38 | System.out.println( "暗証番号が誤っています。" ); |
43 | Account.displayTotalAmount(); |
46 | System.out.println( "アプリケーションを終了しました。" ); |
51 | public static int getInputInt(String msg){ |
52 | System.out.print(msg); |
53 | int input=s.nextInt(); |
56 | public static void displayAccount(){ |
57 | for ( int i= 0 ;i<list.size();i++){ |
58 | System.out.println(i+ "---" +list.get(i)); |
コメント