// つぎのような貯水槽の機能を表現するクラスがあるとします。 // 以下の記述に引数で指定した量だけ水を加えるメソッドaddを付加し、その機能を確認できる // ようmainメソッドを変更し実行させなさい。 // ただし、水は最大貯水量を超えては入れられないようにしなさい。最大量に達した場合は、 // 警告メッセージを表示するようにしなさい。 // // import java.io.*; class WaterTank { double capacity = 100.0; // 最大貯水量(初期値が100リットル) double meter = 0.0; // 水量計の値 void show() { System.out.println("現在の貯水量は" + meter + "リットルです。\n"); } void add(double val) { double remain = capacity - meter; if (remain >= val) { meter += val; if (remain == val) { System.out.println("現在の貯水量は" + meter + "リットル,満水です。"); System.exit(0); } } else { System.out.println("警告 : あと" + remain + "リットルしか入りません。減らしてください。"); return; } } } class Sample21 { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); double amount = 0; WaterTank tank = new WaterTank(); do { System.out.print("加える水の量を指定してください。 : "); try { amount = Double.parseDouble(br.readLine()); } catch (NumberFormatException e) { System.out.println("入力データが不正です"); System.exit(1); } catch (IOException e) { System.out.println("入力時にエラーがありました"); System.exit(1); } tank.add(amount); tank.show(); } while (true); } }