解答例 - j2.lesson05.PrismAction

package j2.lesson05;

import java.io.*;

/**
 * 課題1802 - 解答例.
 {@link Prism}を扱うクラス.
 @author arakawa
 @version $Id: PrismAction_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class PrismAction {

    /**
     {@link Prism}を扱うプログラム。
     @param args 無視される
     @throws IOException 入力時に例外が発生した場合
     */
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        
        // type = 0
        int type = 0;
        // while type が 1 でも 2 でもない
        while (type != && type != 2) {
            // print "底面の図形を入力(1-三角形,2-長方形):"
            System.out.print("底面の図形を入力(1-三角形,2-長方形):");
            // type = コンソール入力 (int)
            type = Integer.parseInt(reader.readLine());
        }
        
        // Polygon 型で base を宣言
        Polygon base;
        // if 三角形が選択された (type = 1)
        if (type == 1) {
            // print "三角形が選択されました。", 改行
            System.out.println("三角形が選択されました。");
            // print "三角形の辺aの長さを入力:"
            System.out.print("三角形の辺aの長さを入力:");
            // a = コンソール入力 (double)
            double a = Double.parseDouble(reader.readLine());
            // print "三角形の辺aの長さを入力:"
            System.out.print("三角形の辺bの長さを入力:");
            // b = コンソール入力 (double)
            double b = Double.parseDouble(reader.readLine());
            // print "三角形の辺aの長さを入力:"
            System.out.print("三角形の辺cの長さを入力:");
            // c = コンソール入力 (double)
            double c = Double.parseDouble(reader.readLine());
            // base = 辺 a, b, c を持つ新しい三角形インスタンス
            base = new Triangle(a, b, c);
        }
        // else
        else {
            // print "長方形が選択されました。", 改行
            System.out.println("長方形が選択されました。");
            // print "長方形の底辺の長さを入力:"
            System.out.print("長方形の底辺の長さを入力:");
            // width = コンソール入力 (double)
            double width = Double.parseDouble(reader.readLine());
            // print "長方形の高さを入力:"
            System.out.print("長方形の高さを入力:");
            // height = コンソール入力 (double)
            double height = Double.parseDouble(reader.readLine());
            // base = width, height を持つ新しい長方形インスタンス
            base = new Rectangle(width, height);
        }
        // print "角柱の高さを入力:"
        System.out.print("角柱の高さを入力:");
        // height = コンソール入力 (double)
        double height = Double.parseDouble(reader.readLine());
        // prism = base, height を持つ新しい角柱インスタンス
        Prism prism = new Prism(base, height);
        
        // print prism, 改行
        System.out.println(prism);
        // print "体積は" + prism.volume(), 改行
        System.out.println("体積は" + prism.volume());
        // print "表面積は" + prism.surfaceArea(), 改行
        System.out.println("表面積は" + prism.surfaceArea());
    }
}