メンバ変数、コンストラクタ、メンバメソッドを使用し枚数表示する
練習問題10の5
コピー機を表すクラスCopyMachineを作成し、各操作ができるプログラムを作成する。クラス:CopyMachine
メンバ変数:
private int paper コピー可能な枚数
コンストラクタ:
public CopyMachine(int sheet) 最初に給紙する枚数を指定する
枚数がマイナスの場合は0枚に設定する
メンバメソッド:
feedPaper 機能:引数として渡された枚数だけ給紙する
copy 機能:引数として渡された枚数をコピーする
すべてをコピーできない場合は可能な枚数だけコピーする
display 機能:コピー可能な枚数を表示する
実行画面
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>3
コピー可能な枚数は20枚です。
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>1
給紙する枚数を入力して下さい > 10
10枚給紙しました。
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>3
コピー可能な枚数は30枚です。
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>2
コピーする枚数を入力して下さい > 15
15枚コピーしました。
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>3
コピー可能な枚数は15枚です。
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>2
コピーする枚数を入力して下さい > 30
15枚コピーしました。
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>3
コピー可能な枚数は0枚です。
操作を入力して下さい
給紙(1), コピー(2), 表示(3), 終了(他)>0
解答例
private int paper;
public CopyMachine(int sheet) {
if(sheet<0) paper = 0;
else paper = sheet;
}
public void feedPaper(int sheet) {
paper += sheet;
System.out.println( sheet + "枚給紙しました。");
}
public void copy(int sheet) {
if(paper < sheet) {
System.out.println( paper + "枚コピーしました。");
paper = 0;
}
else {
System.out.println( sheet + "枚コピーしました。");
paper -= sheet;
}
}
public void display() {
System.out.println("コピー可能な枚数は" + paper + "枚です。");
}
}
public class ren10_5 {
public static void main(String[] args) throws IOException {
BufferedReader br
= new BufferedReader( new InputStreamReader(System.in) );
System.out.print("最初に給紙する枚数を入力して下さい > ");
CopyMachine machine = new CopyMachine(Integer.parseInt(br.readLine()));
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("給紙する枚数を入力して下さい > ");
machine.feedPaper(Integer.parseInt(br.readLine()));
break;
case 2:
System.out.print("コピーする枚数を入力して下さい > ");
machine.copy(Integer.parseInt(br.readLine()));
break;
case 3:
machine.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を使用して、操作する
- インスタンスを複数生成し、操作する