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