Javaの学習を始めて22日くらいの人のための問題集

Java

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

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

import java.util.*;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.print("最初に給紙する枚数を入力してください>>");
		int paper = sc.nextInt();
		CopyMachine cm = new CopyMachine(paper);
		while(true){
			System.out.print("1. 給紙 / 2. コピー / 3. 表示 / 4. 終了>>");
			int select = sc.nextInt();
			switch(select){
				case 1 -> {
					System.out.print("給紙する枚数を入力してください>>");
					paper = sc.nextInt();
					cm.feedPaper(paper);
				}
				case 2 -> {
					System.out.print("コピーする枚数を入力してください>>");
					paper = sc.nextInt();
					cm.copy(paper);
				}
				case 3 -> cm.display();
				default ->{
					System.out.println("アプリケーションを終了します");
					return;
				}
			}
		}
	}
}
class CopyMachine{
	int paper;
	public CopyMachine(int sheet){
		this.paper = sheet > 0 ? sheet:0;
	}
	public void feedPaper(int sheet){
		System.out.printf("%d枚給紙しました%n",sheet);
		this.paper += sheet;
	}
	public void copy(int sheet){
			int copied = Math.min(sheet,this.paper);
			System.out.printf("%d枚コピーしました%n",copied);
			this.paper -= copied;
	}
	public void display(){
		System.out.printf("コピー可能な枚数は%d枚です%n",this.paper);
	}
}

コメント

タイトルとURLをコピーしました