右のようなクラス図のクラスがあるとして、入力商品コードの最小値を求めています。 赤が入力です。 以前に作成した最小値のプログラムと比較ください
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);//ポリモーフィズム利用
}
}