立体図形を表すインタフェース、立方体を表すクラス、球を表すクラスを作成し、図形の体積と表面積を表示するプログラムを作成
練習問題9
立体図形を表すインタフェースSolidFigure、立方体を表すクラスCube、球を表すクラスSphereを作成し、図形の体積と表面積を表示するプログラムを作成する。
ただし、立体図形の種類に1, 2以外の値が入力された場合には再入力を促し、処理の途中で何らかのExceptionが発生した場合には「例外が発生しました。」と表示してプログラムを終了してください。
実行画面
立体図形の種類を入力して下さい(1:立方体, 2:球) > 1【enterキー】
1辺の長さを入力して下さい > 5【enterキー】
立体図形の種類を入力して下さい(1:立方体, 2:球) > 3【enterキー】
立体図形の種類を入力して下さい(1:立方体, 2:球) > 2【enterキー】
半径を入力して下さい > 10【enterキー】
立体図形の種類を入力して下さい(1:立方体, 2:球) > 1【enterキー】
1辺の長さを入力して下さい > 6【enterキー】
立方体 1辺の長さ=5.0 体積=125.0 表面積=150.0
球 半径=10.0 体積=4188.790204786391 表面=1256.6370614359173
立方体 1辺の長さ=6.0 体積=216.0 表面積=216.0
例外が発生しました。
インタフェース:SolidFigure
クラス:Cube (implements SolidFigure)
※立方体の1辺の長さをsとすると、体積はs3、表面積は 6×s2 となる。
クラス:Sphere (implements SolidFigure)
※球の半径をrとすると、体積は (4 / 3)×πr3、表面積は 4πr2 となる。
クラス:ren14_9(メインのクラス)
キーボードから読み込んだ個数を要素数とするSolidFigure型の配列を作成し、キーボードからの入力にしたがって立方体や球のインスタンスを生成する。
解答例
void dislayInfo();
}
public double side;
public Cube(double s) {
side = s;
}
public void dislayInfo() {
System.out.print("立方体 1辺の長さ=" + side);
System.out.print(" 体積=" + Math.pow(side, 3.0) );
System.out.println(" 表面積=" + 6*Math.pow(side, 2.0));
}
}
public double radius;
public Sphere(double r) {
radius = r;
}
public void dislayInfo() {
System.out.print("球 半径=" + radius);
System.out.print(" 体積=" + (Math.PI * Math.pow(radius, 3.0) * 4.0 / 3.0) );
System.out.println(" 表面積=" + (Math.PI * Math.pow(radius, 2.0) * 4.0) );
}
}
public class ren14_9{
public static void main(String[] args) {
int num, type;
double side, radius;
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
try {
System.out.print("立体図形の個数を入力して下さい > ");
num = Integer.parseInt(br.readLine());
SolidFigure solidFigure[] = new SolidFigure[num];
for(int i=0; i
type = Integer.parseInt(br.readLine());
switch(type) {
case 1:
System.out.print("1辺の長さを入力して下さい > ");
side = Double.parseDouble(br.readLine());
solidFigure[i] = new Cube(side);
break;
case 2:
System.out.print("半径を入力して下さい > ");
radius = Double.parseDouble(br.readLine());
solidFigure[i] = new Sphere(radius);
break;
default:
i--;
continue;
}
}
for(int i = 0; i < solidFigure.length; i++) {
solidFigure[i].dislayInfo();
}
}
catch (Exception e) {
System.out.println("例外が発生しました。");
}
}
}
立体図形を表すインタフェース、立方体を表すクラス、球を表すクラスを作成し、図形の体積と表面積を表示するプログラムを作成関連ページ
- try〜catch文を用いて、不正表示をだして、終了するプログラムを作成
- try 〜 catch文を用いて、整数の入力のときに、整数以外が入力されると、何度でも入力し直すようにするプログラム
- インタフェースに書き換えたプログラム
- キーボードから割られる数と割る数を読み込んで、割り算の商と余りを表示するプログラム
- キーボードから整数の個数と各整数の値を読み込んで配列に格納し、指定された要素番号(添字)の値を表示するプログラム
- キーボードから入力した情報に基づいて三角形や四角形のインスタンスを生成し、その面積を表示するプログラム
- 平面図形を表す抽象クラス、正三角形を表すサブクラス、正方形を表すサブクラスを作成し、図形の面積を表示するプログラム