解答例 - j2.lesson01.PersonAction

package j2.lesson01;

import java.io.*;

/**
 * 課題1403 (2) - 解答例.
 {@link Person} を操作するクラス.
 @author arakawa
 @version $Id: PersonAction_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class PersonAction {
    
    /**
     * 理想体重と Body Mass Index (BMI) 指数を計算するプログラム。
     @param args 無視される
     @throws IOException 入力時に例外が発生した場合
     */
    // プログラム全体
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        // person = 新しいPersonインスタンス
        Person person = new Person();
        
        // print "名前を入力:"
        System.out.print("名前を入力:");
        
        // person の名前 = 入力(String)
        person.name = reader.readLine();
        
        // print "身長を入力(cm):"
        System.out.print("身長を入力(cm):");
        
        // person の身長 = 入力 (double) を メートルに変換したもの
        person.height = Double.parseDouble(reader.readLine()) 100;
        
        // print "体重を入力(kg):"
        System.out.print("体重を入力(kg):");
        
        // person の体重 = 入力 (double)
        person.weight = Double.parseDouble(reader.readLine());
        
        // print (personの名前) + "さん" 改行
        System.out.println(person.name + "さん");
        
        // print "理想体重は" + idel-weight-of(person) + "kg" 改行
        System.out.println("理想体重は" + idealWeightOf(person"kg");
        
        // print "BMI指数は" + BMI-of(person) 改行
        System.out.println("BMI指数は" + bmiOf(person));
    }
    
    /**
     * BMI 指数を計算する。
     @param p BMIを計算する対象の人
     @return BMI指数
     */
    // BMI-of(p)
    public static double bmiOf(Person p) {
        // BMI指数 = 体重(kg) / 身長(m)の2乗
        return p.weight / (p.height * p.height);
    }
    
    /**
     * 理想体重を計算する。
     @param p 理想体重を計算する対象の人
     @return 理想体重
     */
    // idel-weight-of(p)
    public static double idealWeightOf(Person p) {
        // 理想体重 = 身長(m)の2乗 * 22
        return p.height * p.height * 22;
    }
}