グラフィックス基礎及び実習 2020年度 第14回課題A,B †[edit]
課題A,Bのための準備 †[edit]
- サンプルをダウンロードして実行してみよう
- Graphics2020 フォルダ/ディレクトリ使ってるひとは,以下をそこへダウンロード
- gr2020 プロジェクトのひとは,以下をダウンロードして gr2020/lib に置く(実行はしなくてよい)
- HW3Sample クラスの動作確認は,以下のプログラムでやったらよい.
public class Test4HW3Sample {
public static void main(String[] args){
HW3Sample p1 = new HW3Sample();
System.out.println("名前: " + p1.getName());
System.out.println("身長(cm): " + p1.getHeight());
System.out.println("体重(kg): "+p1.getWeight());
System.out.println("BMI: " + String.format("%.2f", p1.calcBMI()));
System.out.println("判定: " + HW3Sample.getMessage(p1.calcBMI()));
System.out.println();
HW3Sample p2 = new HW3Sample("ふがよ", 234.5, 50.0);
System.out.println("名前: " + p2.getName());
System.out.println("身長(cm): " + p2.getHeight());
System.out.println("体重(kg): "+p2.getWeight());
System.out.println("BMI: " + String.format("%.2f", p2.calcBMI()));
System.out.println("判定: " + HW3Sample.getMessage(p2.calcBMI()));
System.out.println();
}
}
- 以下の内容のファイル G14HW3.java を作ろう.
import javafx.application.Application;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
public class G14HW3 extends Application {
@Override
public void start(Stage pstage) {
HW3PaneSample hw3pane1 = new HW3PaneSample();
HW3PaneSample hw3pane2 = new HW3PaneSample();
HBox root = new HBox(hw3pane1, hw3pane2);
root.getStyleClass().add("myPane");
Scene scene = new Scene(root);
scene.getStylesheets().add("hw3pane.css");
pstage.setScene(scene);
pstage.setTitle("G14HW3");
pstage.sizeToScene();
pstage.show();
}
public static void main(String[] args) {
launch(args);
}
}
- G14HW3 を実行してみましょう.テキストフィールドに適当な文字・数字を入力して動作確認しよう.
ちなみに,3つのクラスの関係は下図のようになってます(Sampleのついてないクラス名で説明しています).

提出期限: 0710金 16:50
以下のAPI仕様を満たす HW3 クラスを作ろう
- 以前に類似のクラス(HWやHW2)を作っているが,それらとは別に(拡張するのではなく)新規に作成すればよい.
- 練習のため,HW2.java などを見ないで一から作ってみることをおすすめします.
- 適切な動作確認ができるように,main メソッドの中身を自分で考えて定義すること
完成したプログラムのソースファイル(HW3.java だけ)をこの科目の Moodle コース上の当該の場所へ提出してください.このファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意すること.ファイル名の間違い(大文字小文字も)に注意.
HW3 クラスのAPI仕様 †[edit]
- コンストラクタ
- HW3()
- 名前 "ほげお",身長 170.0[cm],体重 62.0[kg]のインスタンスを生成.
- HW3(String n, double h, double w)
- 名前 n,身長 h[cm],体重 w[kg]のインスタンスを生成.
- メソッド
- void setName(String n)
- このインスタンスの名前を n にする.
- void setHeight(double h)
- このインスタンスの身長を h にする.
- void setWeight(double w)
- このインスタンスの体重を w にする.
- String getName()
- このインスタンスの名前の値を返す.
- double getHeight()
- このインスタンスの身長の値を返す.
- double getWeight()
- このインスタンスの体重の値を返す.
- double calcBMI()
- このインスタンスのBMIを計算して返す. \( \textrm{BMI} = (\mbox{体重[kg]}) / (\mbox{身長[cm]}/100)^2 \)
- static String getMessage(double bmi)
- bmi が Border1 未満,Border1 以上 Border2 未満,Border2 以上の三つの場合に応じた文字列を返す.戻り値は,順に "やせてんなぁ","ふつー","太ってる…かな?".
- フィールド
- static double Border1
- BMIの境界値のうち小さい方.初期値は 20.
- static double Border2
- BMIの境界値のうち大きい方.初期値は 25.
- 提出期限: 0717金 16:20(この課題の提出方法は,いつもとは違う形です.詳しくは授業中に説明します)
- 課題Aのチェックを受けてokをもらったひとだけが提出できます
次のことをやりましょう.
- HW3PaneSample と同様の動作をするプログラムを作る.クラス名は HW3Pane とする
- G14HW3 で HW3PaneSample を使っているところを HW3Pane に書き換えて動作確認する
次のことに注意