メンバ変数、コンストラクタ、メンバメソッドを使用し水量表示する

メンバ変数、コンストラクタ、メンバメソッドを使用し水量表示する

練習問題10の6

プールを表すクラスPoolを作成し、各操作ができるプログラムを作成する

 

クラス:Pool
メンバ変数:
private double water 現在の水量
コンストラクタ:
public Pool() 水量を0.0立方メートルにしてインスタンスを生成する
メンバメソッド:
feedWater 機能:引数として渡された水量だけ給水する
   ただし満水(600.0立方メートル)を超える分は給水しない
drainWater 機能:引数として渡された水量だけ排水する
   ただし空(0.0立方メートル)になるとそれ以上排水しない
display 機能:現在の水量を表示する

 

実行画面

操作を入力して下さい

給水(1), 排水(2), 表示(3), 終了(他)>3
現在の水量は0.0立方メートルです。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>1
給水する水量を入力して下さい > 500
500.0立方メートル給水しました。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>3
現在の水量は500.0立方メートルです。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>1
給水する水量を入力して下さい > 300
100.0立方メートル給水しました。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>3
現在の水量は600.0立方メートルです。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>2
排水する水量を入力して下さい > 400
400.0立方メートル排水しました。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>3
現在の水量は200.0立方メートルです。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>2
排水する水量を入力して下さい > 300
200.0立方メートル排水しました。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>3
現在の水量は0.0立方メートルです。

 

操作を入力して下さい
給水(1), 排水(2), 表示(3), 終了(他)>0

解答例

class Pool {

private double water;

 

public Pool() {
water = 0.0;
}

 

public void feedWater(double w) {
if(water+w > 600.0) {
System.out.println( (600.0 - water) + "立方メートル給水しました。");
water = 600.0;
}
else {
water += w;
System.out.println( (w) + "立方メートル給水しました。");
}
}

 

public void drainWater(double w) {
if(water-w < 0.0) {
System.out.println( water + "立方メートル排水しました。");
water = 0.0;
}
else {
water -= w;
System.out.println( w + "立方メートル排水しました。");
}
}

 

public void display() {
System.out.println("現在の水量は" + water + "立方メートルです。");
}

 

}

import java.io.*;

 

public class ren10_6 {

 

public static void main(String[] args) throws IOException {
BufferedReader br
= new BufferedReader( new InputStreamReader(System.in) );

 

Pool pool = new Pool();

 

System.out.println("操作を入力して下さい");
System.out.print("給水(1), 排水(2), 表示(3), 終了(他)>");
int n = Integer.parseInt(br.readLine());
while( 1 <= n && n <= 3) {
switch( n ) {
case 1:
System.out.print("給水する水量を入力して下さい > ");
pool.feedWater(Double.parseDouble(br.readLine()));
break;
case 2:
System.out.print("排水する水量を入力して下さい > ");
pool.drainWater(Double.parseDouble(br.readLine()));
break;
case 3:
pool.display();
break;

}
System.out.println();
System.out.println("操作を入力して下さい");
System.out.print("給水(1), 排水(2), 表示(3), 終了(他)>");
n = Integer.parseInt(br.readLine());
}
}

 

}

 

メンバ変数、コンストラクタ、メンバメソッドを使用し水量表示する関連ページ

連続して表示するメソッドを作る for文使用
メソッドを使用して、横幅高さの長方形を表示する
2つの整数の差を計算して表示する メソッド
3つの整数の最小値を返す メソッド
整数nの階乗を計算して表示する メソッド
整数の2乗を表示する メソッド
2乗と4乗を表示するメソッド
4つの整数の中で最小値を表示するメソッド
配列を宣言し、整数逆順に表示する メソッド
クラスを作成し、インスタンスに記憶し表示する
クラスにメソッドを使用する
クラスを作成し、インスタンスに記憶しメソッドを介して表示する
クラスを作成し、メインメソッドを実行し表示を確認する
コンストラクタやメソッドで時計表示
コンストラクタやメソッドで時計表示し何秒か時間を進めたり戻す
メンバ変数、コンストラクタ、メンバメソッドを使用し枚数表示する
メンバ変数、コンストラクタ、メンバメソッドを使用し位置表示する
メンバ変数、コンストラクタ、メンバメソッドを使用し財布の中身残量表示する
インスタンス配列を使用して、集計表示を行う コンストラクタ
フィールド変数がprivateで直接参照できないときに返すメソッド
インスタンスを2個生成し操作する
privateを使用して、操作する
インスタンスを複数生成し、操作する