第15_2週目課題

下準備

テストドライバの導入

第15_2回目 (秋学期02_2回目) 分のテストドライバを導入する。以下の手順で行う。

  1. ダウンロード のページを開く (ここをクリック)
  2. プロジェクト「java2007」にある「test」の左側の「+」をクリック
  3. ツリーが展開されるので「install-libraries.xml」を右クリック
  4. 「実行(R)」にマウスカーソルを合わせる
  5. 「1 Ant ビルド」をクリック
  6. 「コンソール」タブに"BUILD SUCCESSFUL"と表示されれば成功
  7. eclipseの画面でプロジェクト「java2007」を右クリック
  8. メニューが表示されるので、「最新表示」をクリック
  9. "week15_2.zip" をデスクトップなどにダウンロード
  10. eclipseの画面でプロジェクト「java2007」を右クリック
  11. メニューから「インポート(I)」を選択
  12. 「インポート」ウィンドウが表示されるので、「Zip ファイル」を選択
  13. 「次へ(N)」をクリック
  14. 宛先フォルダー(L): が「java2007」になっていることを確認
  15. From archive file: の右側にある 「ブラウズ(R)...」あるいは「参照(R)...」をクリック
  16. ファイルダイアログが表示されるので、ダイアログ内に表示されたダウンロードしたファイルをダブルクリック
  17. 前の画面に戻るので、From archive file: のエリアに正しいパスが入力されていることを確認
  18. フォルダ「/」の左にチェックがついていることを確認 (ついていなければチェックボックスをクリック)
  19. 「Overwrite existing resources without warning」にチェックがついていることを確認 (上書きしたくないファイルがある場合はチェックを外す)
  20. 「終了 (F)」をクリック

第15_2週目テストドライバの導入に成功すると、java2007 プロジェクトの test フォルダに j2.lesson02_2.xml というファイルが作成される。

パッケージの作成

過去の演習を参考にして、「j2.lesson02_2」というパッケージを作成する。

課題1521

講義資料の ExamRecord2 を作成し、ExamRecord2Action で動作を確認しなさい。

手順

指定した箇所で必ずテストを行うこと。

  1. パッケージ j2.lesson02_2 にクラス ExamRecord2 を作成
  2. ExamRecord2Action を作成
  3. テスト項目「ExamRecord2Actionに対する骨格テスト」をパス
  4. テスト項目「ExamRecord2Actionに対する機能テスト」をパス

課題1522

以下のExamRecord3クラスを完成させなさい。

package j2.lesson02_2;

public class ExamRecord3 {
    String name;  // Name
    int id;       // Id number
    int ma;       // mathematics
    int jp;       // japanes
    int en;       // english
    int sc;       // Science
    int ss;       // Social Studies

    public ExamRecord3(String name, int id, int ma, int jp, int en, int sc, int ss){
        this.name = name;
        ____________;
        ____________;
        ____________;
        ____________;
        ____________;
        ____________;
    }
    
    // 3科目(数学,国語,英語)の合計を返す
    public int getTotal3(){
        _______________;
    }
    
    // 5科目(数学,国語,英語,理科,社会)の合計を返す
    public int getTotal5(){
        _________________________;
    }
    
    // 3科目(数学,国語,英語)の成績を表示する
    public ______ show3(){
        System.out.println(name + ", id=" + id + ", ma=" + ma + 
                ", jp=" + jp + ", en=" + en);
    }

    // 5科目(数学,国語,英語,理科,社会)の成績を表示する
    public ______ show5(){
        System.out.println(_______________________________________________________);
    }
}

手順

指定した箇所で必ずテストを行うこと。

  1. パッケージ j2.lesson02_2 にクラス ExamRecord3 を作成
  2. テスト項目「ExamRecord3に対する骨格テスト」をパス
  3. テスト項目「ExamRecord3に対する単体テスト」をパス

課題1523

以下のExamRecord3Action を完成させなさい。

package j2.lesson02_2;

public class ExamRecord3Action {
    public static void main(String[] args) {
        ExamRecord3[] rec = new ExamRecord3[4];
        rec[0] = new ExamRecord3("Taro", 1001, 50, 90, 100, 40, 90);
        rec[1] = new ExamRecord3("Hanako", 1002, 70, 30, 80, 100, 70);
        rec[2] = new ExamRecord3("Kenji", 1003, 60, 50, 70, 60, 80);
        rec[3] = new ExamRecord3("Aya", 1004, 40, 100, 90, 50, 55);
        
        System.out.println("===3科目の成績===");
        for(int i=0; i<rec.length; i++){
            __________________________________________ ;
        }

        System.out.println("===5科目の合計===");
        for(int i=0; i<rec.length; i++){
            ___________________________________________________________ ;
        }
    }
}

実行結果は以下のようになる。

===3科目の成績===
Taro, id=1001, ma=50, jp=90, en=100
Hanako, id=1002, ma=70, jp=30, en=80
Kenji, id=1003, ma=60, jp=50, en=70
Aya, id=1004, ma=40, jp=100, en=90
===5科目の合計===
Taro, Total5=370
Hanako, Total5=350
Kenji, Total5=320
Aya, Total5=335

手順

指定した箇所で必ずテストを行うこと。

  1. パッケージ j2.lesson02_2 にクラス ExamRecord3Action を作成
  2. テスト項目「ExamRecord3Actionに対する骨格テスト」をパス
  3. テスト項目「ExamRecord3Actionに対する機能テスト」をパス

課題1524 (Optional)

以下のExamRecord4クラスを完成させなさい。

package j2.lesson02_2;

public class ExamRecord4 {
    String name;  // Name
    int id;       // Id number
    int ma;       // mathematics
    int jp;       // japanes
    int en;       // english
    int sc;       // Science
    int ss;       // Social Studies

    public ExamRecord4(String name, int id, int ma, int jp, int en, int sc, int ss){
        // 省略
    }
    
    // 3科目(数学,国語,英語)の合計を返す
    public int getTotal3(){
        // 省略
    }
    
    // 5科目(数学,国語,英語,理科,社会)の合計を返す
    public int getTotal5(){
        // 省略
    }
    
    // 3科目(数学,国語,英語)の成績を表示する
    public void show3(){
        // 省略
    }

    // 5科目(数学,国語,英語,理科,社会)の成績を表示する
    public void show5(){
        // 省略
    }
    
    // 数学の平均点を返す
    public static double getAverageMa(ExamRecord4[] ra){
        double sum = 0.0;
        for( _________________________ ){
            _______________ ;
        }
        return sum/ra.length;
    }
    
    // 国語の平均点を返す
    public static double getAverageJp(ExamRecord4[] ra){
        // 省略
    }
    
    // 英語の平均点を返す
    public static double getAverageEn(ExamRecord4[] ra){
        // 省略
    }
}

また、以下のExamRecord4ActionクラスでExamRecord4クラスの動作を検証してみよう。


package j2.lesson02_2;

public class ExamRecord4Action {
    public static void main(String[] args) {
        ExamRecord4[] rec = new ExamRecord4[4];
        rec[0] = new ExamRecord4("Taro", 1001, 50, 90, 100, 40, 90);
        rec[1] = new ExamRecord4("Hanako", 1002, 70, 30, 80, 100, 70);
        rec[2] = new ExamRecord4("Kenji", 1003, 60, 50, 70, 60, 80);
        rec[3] = new ExamRecord4("Aya", 1004, 40, 100, 90, 50, 55);
        
        System.out.println("数学の平均点 = " + _____________.getAverageMa(rec));
        System.out.println("国語の平均点 = " + _____________.getAverageJp(rec));
        System.out.println("英語の平均点 = " + _____________.getAverageEn(rec));
    }
}

実行結果は以下の通り。

数学の平均点 = 55.0
国語の平均点 = 67.5
英語の平均点 = 85.0

手順

指定した箇所で必ずテストを行うこと。

  1. パッケージ j2.lesson02_2 にクラス ExamRecord4 を作成
  2. テスト項目「ExamRecord4に対する骨格テスト」をパス
  3. テスト項目「ExamRecord4に対する単体テスト」をパス
  4. ExamRecord4Action を作成
  5. テスト項目「ExamRecord4Actionに対する骨格テスト」をパス
  6. テスト項目「ExamRecord4Actionに対する機能テスト」をパス

課題1525 (Optional)

ExamRecord5というクラスではExamRecord4クラスに以下のようなクラスメソッドを追加する。

これらの役割をよく考え、以下のような動作検証用のExamRecord5Action、クラスも作成せよ。

package j2.lesson02_2;

public class ExamRecord5Action {
    public static void main(String[] args) {
        ExamRecord5[] rec = new ExamRecord5[4];
        rec[0] = new ExamRecord5("Taro", 1001, 50, 90, 100, 40, 90);
        rec[1] = new ExamRecord5("Hanako", 1002, 70, 30, 80, 100, 70);
        rec[2] = new ExamRecord5("Kenji", 1003, 60, 50, 70, 60, 80);
        rec[3] = new ExamRecord5("Aya", 1004, 40, 100, 90, 50, 55);
        
        _____________.sortByMath(rec);
        System.out.println("===数学の点数順に並べると===");
        for(int i=0; i<rec.length; i++){
            System.out.println(rec[i].name + ", id=" + rec[i].id +
                    ", math=" + rec[i].ma);
        }
        
        _____________.sortByTotal5(rec);
        System.out.println("===5科目の合計点の順に並べると===");
        for(int i=0; i<rec.length; i++){
             // 省略
        }
    }
}

手順

指定した箇所で必ずテストを行うこと。

  1. パッケージ j2.lesson02_2 にクラス ExamRecord5 を作成
  2. テスト項目「ExamRecord5に対する骨格テスト」をパス
  3. テスト項目「ExamRecord5に対する単体テスト」をパス
  4. ExamRecord5Action を作成
  5. テスト項目「ExamRecord5Actionに対する骨格テスト」をパス
  6. テスト項目「ExamRecord5Actionに対する機能テスト」をパス