Q.
1.以下のフィールドを持つPencilクラスを作成せよ。なおペンの長さの初期値は5とする。
フィールド
color:色を表す
penLength:長さを表す
2.実行例を実現できるようにコンストラクタやメソッドを追記する。
3.mainメソッドを持つPencilAppクラスを作成し以下の処理を実現せよ。
鉛筆の長さが3の場合は+++>とプラス記号3つと>で表すこととする。
[実行例]
何色の鉛筆を作りますか>:赤
操作を入力してください1…書く,2…情報を見る,3…終了>2
色:赤
+++++>
操作を入力してください1…書く,2…情報を見る,3…終了>1
赤で書いた!
操作を入力してください1…書く,2…情報を見る,3…終了>2
色:赤
++++>
操作を入力してください1…書く,2…情報を見る,3…終了>1
赤で書いた!
操作を入力してください1…書く,2…情報を見る,3…終了>1
赤で書いた!
操作を入力してください1…書く,2…情報を見る,3…終了>1
赤で書いた!
操作を入力してください1…書く,2…情報を見る,3…終了>2
色:赤
+>
操作を入力してください1…書く,2…情報を見る,3…終了>1
赤で書いた!
操作を入力してください1…書く,2…情報を見る,3…終了>2
色:赤
>
操作を入力してください1…書く,2…情報を見る,3…終了>1
もう書けません!
操作を入力してください1…書く,2…情報を見る,3…終了>3
アプリケーションを終了します。
[実行例]
●Pencilクラス
public class Pencil {
public String color;
public int penLength=5;
public Pencil(String color){
this.color=color;
}
public void write(){
if(this.penLength <=0){
System.out.println("もう書けません!");
return;
}
System.out.println(this.color+"で書いた!");
this.penLength--;
}
public void showStatus(){
System.out.println("色:"+this.color);
for(int i=0;i<this.penLength;i++){
System.out.print('+');
}
System.out.println('>');
}
}
●PencilAppクラス
import java.util.Scanner;
public class PencilApp {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.print("何色の鉛筆を作りますか>:");
String color=scan.next();
Pencil pen=new Pencil(color);
while(true){
System.out.print("操作を入力してください1...書く,2...情報を見る,3...終了>");
int select =scan.nextInt();
switch(select){
case 1:
pen.write();
break;
case 2:
pen.showStatus();
break;
default:
System.out.println("アプリケーションを終了します。");
scan.close();
return;
}
}
}
}
Q2
Pencilクラスを用い、新しく以下のアプリケーションを作成せよ。
[実行例]
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>2
まず鉛筆をつくってください!
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
まず鉛筆を持ってください!
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>1
何色の鉛筆を作りますか>赤
赤色の鉛筆を作りました。
色:赤
+++++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>1
何色の鉛筆を作りますか>青
青色の鉛筆を作りました。
色:青
+++++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>2
0…赤
1…青
何番の鉛筆を持ちますか>1
青の鉛筆を持った
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
青で書いた!
色:青
++++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>2
0…赤
1…青
何番の鉛筆を持ちますか>0
赤の鉛筆を持った
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
赤で書いた!
色:赤
++++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>1
何色の鉛筆を作りますか>黄
黄色の鉛筆を作りました。
色:黄
+++++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>2
0…赤
1…青
2…黄
何番の鉛筆を持ちますか>2
黄の鉛筆を持った
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
黄で書いた!
色:黄
++++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
黄で書いた!
色:黄
+++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
黄で書いた!
色:黄
++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
黄で書いた!
色:黄
+>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
黄で書いた!
色:黄
>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
もう書けません!
色:黄
>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>2
0…赤
1…青
2…黄
何番の鉛筆を持ちますか>0
赤の鉛筆を持った
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>3
赤で書いた!
色:赤
+++>
操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>4
アプリケーションを終了します
[解答例]
import java.util.ArrayList;
import java.util.Scanner;
public class PencilApp {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
ArrayList<Pencil> list=new ArrayList<>();
Pencil pen=null;//今もっているペン(最初はなし)
while(true) {
System.out.print("操作を入力してください 1…鉛筆をつくる 2…鉛筆を持つ 3…鉛筆で書く 4…終了>");
int select=scan.nextInt();
switch(select) {
case 1:
System.out.print("何色の鉛筆を作りますか>");
String color=scan.next();
Pencil pencil=new Pencil(color);
list.add(pencil);
System.out.println(pencil.color+"色の鉛筆を作りました。");
pencil.showStatus();
break;
case 2:
if(list.size()==0) {
System.out.println("まず鉛筆をつくってください!");
break;
}
for(int i=0;i<list.size();i++) {
System.out.println(i+"..."+list.get(i).color);
}
System.out.print("何番の鉛筆を持ちますか>");
int num=scan.nextInt();
pen=list.get(num);
System.out.println(pen.color+"の鉛筆を持った");
break;
case 3:
if(pen==null) {
System.out.println("まず鉛筆を持ってください!");
break;
}
pen.write();
pen.showStatus();
break;
default:
System.out.println("アプリケーションを終了します");
scan.close();
return;
}
}
}
}
コメント