オブジェクト指向基本問題。

Q1
コピー機を表すクラスCopyMachineを作成し、
各操作ができるプログラムを作成する。

<フィールド変数>
・コピー可能な枚数 … -paper : int

<コンストラクタ>
public CopyMachine(int sheet)
… 最初に給紙する枚数を指定する。
枚数がマイナスの場合は0枚に設定する

<一般メソッド>
public void feedPaper(int sheet)
… 引数として渡された枚数だけ給紙する
public void copy(int sheet)
… 引数として渡された枚数をコピーする
  すべてをコピーできない場合は可能な枚数だけコピーする
public void display()
… コピー可能な枚数を表示する

2.
CopyMachineAppクラスにおいて,実行例となるように処理を記述せよ。

[実行例]

最初に給紙する枚数を入力して下さい >20
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>3
コピー可能な枚数は20枚です。
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>1
給紙する枚数を入力して下さい >10
10枚給紙しました。
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>3
コピー可能な枚数は30枚です。
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>2
コピーする枚数を入力して下さい >15
15枚コピーしました。 
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>3
コピー可能な枚数は15枚です。
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>2
コピーする枚数を入力して下さい >30
15枚コピーしました。 
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>3
コピー可能な枚数は0枚です。
1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>4
アプリケーションを終了します。

CopyMachine

public class CopyMachine {
	private int paper;
	public CopyMachine(int sheet){
		this.paper=sheet > 0 ? sheet : 0;
	}
	public void feedPaper(int sheet){
		this.paper+=sheet;
		System.out.printf("%d枚給紙しました。%n",sheet);
	}
	public void copy(int sheet){
		int num=this.paper > sheet ? sheet : this.paper;
		this.paper-=num;
		System.out.printf("%d枚コピーしました。 %n",num);
	}
	public void display(){
		System.out.printf("コピー可能な枚数は%d枚です。%n",this.paper);
	}
}

CopyMachineApp

public class CopyMachineApp {
	public static void main(String[] args) {
		System.out.print("最初に給紙する枚数を入力して下さい >");
		Scanner s=new Scanner(System.in);
		int num=s.nextInt();
		CopyMachine cm=new CopyMachine(num);
		
		while(true){
			System.out.print("1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>");
			int select=s.nextInt();
			switch(select){
			case 1:
				System.out.print("給紙する枚数を入力して下さい >");
				num=s.nextInt();
				cm.feedPaper(num);
				break;
			case 2:
				System.out.print("コピーする枚数を入力して下さい >");
				num=s.nextInt();
				cm.copy(num);
				break;
			case 3:
				cm.display();
				break;
			default:
				System.out.println("アプリケーションを終了します。");
				return;	
			}
		}
	}
}