右のようなクラス図のクラスがあるとして、入力商品コードの最小値を求めています。 赤が入力です。 以前に作成した最小値のプログラムと比較ください
D:\Java>java Rec3InputMinimum 1件目です。Recordの選択入力>>3 商品コード>>D05 数量>>50 単価>>200 2件目です。Recordの選択入力>>2 商品コード>>B10 数量>>90 3件目です。Recordの選択入力>>3 商品コード>>B05 数量>>75 単価>>1000 4件目です。Recordの選択入力>>2 商品コード>>C01 数量>>45 5件目です。Recordの選択入力>>2 商品コード>>Z99 数量>>0 入力で、最小(辞書並び)の商品コード のレコードは次の通りです。 3番目レコード 商品コード:B05 数量:75 単価:1000 D:\Java> |
入力範囲の上限が分かっている場合の流れ図は、次のようになります。
上記の実行ができるプログラムを以下に示します。
■■■■の部分を正しく直して完成させましょう。
←正しく修正してからクリックください。
←わからない場合は、クリック
//キーのデータ入力用で、initメソッド使ったコード例です。 import rec.Record2; import rec.Record3; public class Rec3InputMinimum { public static void main(String[] arg){ java.util.Scanner stdin = new java.util.Scanner(System.in); Record2 recMin = new Record2(Record2.HIGH_VALUE, 0); //最小レコード憶用 Record2 recHi = new Record2(Record2.HIGH_VALUE, 0); //データとして存在しない最大値用 Record2 rec; int n = 0; // 入力データ個数用 int iMin = 0; do{ n++; System.out.print(n + "件目です。Recordの選択入力>>"); String op = stdin.nextLine(); if (op.equals("2")) { rec = new Record2(); }else{ rec = new Record3(); } rec.init(stdin);//ポリモーフィズム利用 if (rec.compareTo(recMin) < 0){//入力データの方が小さい recMin = rec; iMin = n; } } while (rec.compareTo(recHi) != 0); System.out.println("入力で、最小(辞書並び)の商品コード\n のレコードは次の通りです。"); recMin.display(iMin);//ポリモーフィズム利用 } }