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; } } } }
コメント