キーボードから入力した情報に基づいて三角形や四角形のインスタンスを生成し、その面積を表示するプログラム
練習問題7
練習4において、メインのクラス(ren14_4→ren14_7)だけを書き換えて、キーボードから入力した情報に基づいて三角形や四角形のインスタンスを生成し、その面積を表示するプログラムを作成する。ただし、図形の種類に1, 2以外の値が入力された場合には再入力を促し、処理の途中で何らかのExceptionが発生した場合には「例外が発生しました。」と表示してプログラムを終了してください。
実行画面
図形の種類を入力して下さい(1:三角形, 2:四角形) > 3【enterキー】
図形の種類を入力して下さい(1:三角形, 2:四角形) > 1【enterキー】
底辺の長さを入力して下さい > 4【enterキー】
高さを入力して下さい > 2【enterキー】
図形の種類を入力して下さい(1:三角形, 2:四角形) > 2【enterキー】
よこの長さを入力して下さい > 5【enterキー】
たての長さを入力して下さい > 3【enterキー】
図形の種類を入力して下さい(1:三角形, 2:四角形) > 1【enterキー】
底辺の長さを入力して下さい > 6【enterキー】
高さを入力して下さい > 8【enterキー】
三角形 底辺=4.0 高さ=2.0 面積=4.0
四角形 よこ=5.0 たて=3.0 面積=15.0
三角形 底辺=6.0 高さ=8.0 面積=24.0
図形の種類を入力して下さい(1:三角形, 2:四角形) > 1【enterキー】
底辺の長さを入力して下さい > 4【enterキー】
高さを入力して下さい > 6【enterキー】
図形の種類を入力して下さい(1:三角形, 2:四角形) > 2【enterキー】
よこの長さを入力して下さい > a【enterキー】
例外が発生しました。
クラス:ren14_7(メインのクラス)
キーボードから読み込んだ個数を要素数とするFigure型の配列を作成し、キーボードからの入力にしたがって三角形や四角形のインスタンスを生成する。
解答例
void dislayArea();
}
public double width, height;
public Rectangle(double w, double h) {
width = w;
height = h;
}
public void dislayArea() {
System.out.print("四角形 よこ=" + width + " たて=" + height);
System.out.println(" 面積=" + (width * height) );
}
}
public double bottom, height;
public Triangle(double b, double h) {
bottom = b;
height = h;
}
public void dislayArea() {
System.out.print("三角形 底辺=" + bottom + " 高さ=" + height);
System.out.println(" 面積=" + (bottom * height / 2.0) );
}
}
public class ren14_7{
public static void main(String[] args) {
int num, type;
double width, height;
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
try {
System.out.print("図形の個数を入力して下さい > ");
num = Integer.parseInt(br.readLine());
Figure figure[] = new Figure[num];
for(int i=0; i
type = Integer.parseInt(br.readLine());
switch(type) {
case 1:
System.out.print("底辺の長さを入力して下さい > ");
width = Double.parseDouble(br.readLine());
System.out.print("高さを入力して下さい > ");
height = Double.parseDouble(br.readLine());
figure[i] = new Triangle(width, height);
break;
case 2:
System.out.print("よこの長さを入力して下さい > ");
width = Double.parseDouble(br.readLine());
System.out.print("たての長さを入力して下さい > ");
height = Double.parseDouble(br.readLine());
figure[i] = new Rectangle(width, height);
break;
default:
i--;
continue;
}
}
for(int i = 0; i < figure.length; i++) {
figure[i].dislayArea();
}
}
catch (Exception e) {
System.out.println("例外が発生しました。");
}
}
}
キーボードから入力した情報に基づいて三角形や四角形のインスタンスを生成し、その面積を表示するプログラム関連ページ
- try〜catch文を用いて、不正表示をだして、終了するプログラムを作成
- try 〜 catch文を用いて、整数の入力のときに、整数以外が入力されると、何度でも入力し直すようにするプログラム
- インタフェースに書き換えたプログラム
- キーボードから割られる数と割る数を読み込んで、割り算の商と余りを表示するプログラム
- キーボードから整数の個数と各整数の値を読み込んで配列に格納し、指定された要素番号(添字)の値を表示するプログラム
- 平面図形を表す抽象クラス、正三角形を表すサブクラス、正方形を表すサブクラスを作成し、図形の面積を表示するプログラム
- 立体図形を表すインタフェース、立方体を表すクラス、球を表すクラスを作成し、図形の体積と表面積を表示するプログラムを作成