下準備
テストドライバの導入
第15_2回目 (秋学期02_2回目) 分のテストドライバを導入する。以下の手順で行う。
- ダウンロード のページを開く (ここをクリック)
- プロジェクト「java2007」にある「test」の左側の「+」をクリック
- ツリーが展開されるので「install-libraries.xml」を右クリック
- 「実行(R)」にマウスカーソルを合わせる
- 「1 Ant ビルド」をクリック
- 「コンソール」タブに"BUILD SUCCESSFUL"と表示されれば成功
- eclipseの画面でプロジェクト「java2007」を右クリック
- メニューが表示されるので、「最新表示」をクリック
- "week15_2.zip" をデスクトップなどにダウンロード
- eclipseの画面でプロジェクト「java2007」を右クリック
- メニューから「インポート(I)」を選択
- 「インポート」ウィンドウが表示されるので、「Zip ファイル」を選択
- 「次へ(N)」をクリック
- 宛先フォルダー(L): が「java2007」になっていることを確認
- From archive file: の右側にある 「ブラウズ(R)...」あるいは「参照(R)...」をクリック
- ファイルダイアログが表示されるので、ダイアログ内に表示されたダウンロードしたファイルをダブルクリック
- 前の画面に戻るので、From archive file: のエリアに正しいパスが入力されていることを確認
- フォルダ「/」の左にチェックがついていることを確認 (ついていなければチェックボックスをクリック)
- 「Overwrite existing resources without warning」にチェックがついていることを確認 (上書きしたくないファイルがある場合はチェックを外す)
- 「終了 (F)」をクリック
第15_2週目テストドライバの導入に成功すると、java2007 プロジェクトの test フォルダに j2.lesson02_2.xml というファイルが作成される。
パッケージの作成
過去の演習を参考にして、「j2.lesson02_2」というパッケージを作成する。
課題1521
講義資料の ExamRecord2 を作成し、ExamRecord2Action で動作を確認しなさい。
手順
指定した箇所で必ずテストを行うこと。
- パッケージ j2.lesson02_2 にクラス ExamRecord2 を作成
- ExamRecord2Action を作成
- テスト項目「ExamRecord2Actionに対する骨格テスト」をパス
- テスト項目「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(_______________________________________________________);
}
}
手順
指定した箇所で必ずテストを行うこと。
- パッケージ j2.lesson02_2 にクラス ExamRecord3 を作成
- テスト項目「ExamRecord3に対する骨格テスト」をパス
- テスト項目「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
手順
指定した箇所で必ずテストを行うこと。
- パッケージ j2.lesson02_2 にクラス ExamRecord3Action を作成
- テスト項目「ExamRecord3Actionに対する骨格テスト」をパス
- テスト項目「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
手順
指定した箇所で必ずテストを行うこと。
- パッケージ j2.lesson02_2 にクラス ExamRecord4 を作成
- テスト項目「ExamRecord4に対する骨格テスト」をパス
- テスト項目「ExamRecord4に対する単体テスト」をパス
- ExamRecord4Action を作成
- テスト項目「ExamRecord4Actionに対する骨格テスト」をパス
- テスト項目「ExamRecord4Actionに対する機能テスト」をパス
課題1525 (Optional)
ExamRecord5というクラスではExamRecord4クラスに以下のようなクラスメソッドを追加する。
- public static void sortByMath(ExamRecord5[] ra)
- public static void sortByTotal5(ExamRecord5[] ra)
これらの役割をよく考え、以下のような動作検証用の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++){
// 省略
}
}
}
手順
指定した箇所で必ずテストを行うこと。
- パッケージ j2.lesson02_2 にクラス ExamRecord5 を作成
- テスト項目「ExamRecord5に対する骨格テスト」をパス
- テスト項目「ExamRecord5に対する単体テスト」をパス
- ExamRecord5Action を作成
- テスト項目「ExamRecord5Actionに対する骨格テスト」をパス
- テスト項目「ExamRecord5Actionに対する機能テスト」をパス