概要
目標
特定の地域の天気予報のデータが与えられる. そのデータを読み,指定の分析を行い,結果を出力するプログラムを作成する. 各ステップで異なる分析を行う.
この課題に必要な内容
- クラス定義の基本形
- 参照の一致性と値の一致性
- コマンドライン引数
- 文字列から
Integer
型への変換 - 文字列から
Double
型への変換 - 配列と
List
- ユーザ定義型
- 例外機構
- ファイルを扱う型
- 典型的なファイルからのデータの読み込み方法
- 典型的なファイルへのデータの書き込み方法
Map
(連想配列)- 文字列を特定の文字で区切る(
split
)
課題の進め方
この課題は大きく6つのステップに分けられます.
それぞれのステップで,プログラムを作成します.
各ステップで作成するプログラムのファイル名はWeatherAnalyzer1.java
〜WeatherAnalyzer6.java
とします.
以下のことを念頭に課題を進めてください.
- ステップ1からステップ2,ステップ3 と順番に課題を進めてください. 途中のステップを抜かすことはできません.
- ステップ1で作成した内容を元に,
ステップ2を作成してください.
- ステップ3以降も同様に,前のステップで作成した内容を全て含めて当該ステップに取り組んでください.
- プログラムを作成するとき,一つ前のステップのプログラムをコピーして始めると良いでしょう.
- ただし,
main
メソッドの内容を修正することを忘れないようにしましょう. main
メソッドで異なる型をnew
するバグはなかなか気付きません.
- ただし,
- ステップ3までが必須で,ステップ4,ステップ5,ステップ6がチャレンジ問題です.
課題の提出方法
この課題は6つのステップに分けられています.
各ステップでWeatherAnalyzer1.java
〜WeatherAnalyzer6.java
を作成します.
具体的に指示はしていませんが,独自の型を作成する必要もあるでしょう.
それら全てのソースファイルを Moodle に提出してください.
- 提出期限は 2022-02-07 (Mon) 9:00です.
- 提出先は Moodle の【2022/02/07 (Mon) 9:00〆切】最終課題提出場所 です.
- 次のチェックリストを提出前に確認してください.
- 提出したファイルのみがあるディレクトリでコンパイルできるか.
- 全てのソースファイルにコメントとして,自分の学生証番号,名前が記載されているか.
課題のデータ
課題のデータ(天気予報データ)は,次からダウンロードしてください. なお,評価には,ここでダウンロードできるデータとは異なるデータを用います. データの形式は同じですが,記載されているデータや量は異なります. そのため,しっかりとデータを読み,適切な分析を行うようにしてください. 多少の計算誤差は許容されます.
なお,与えられるデータは日付順にソートされているものとして扱って構いません.
- 以下は,京都府京都市の天気データで,気象庁からダウンロードしました.
評価のポイント
以下の点を満たしていれば,加点されます. また,それぞれのステップで確認事項があります.それぞれを満たすことで加点されていきます.
- インデントがずれている部分がないこと.
- 少しでもインデントがずれているとNG.
- ループ制御変数以外で1文字の変数名を利用していないこと.
- ローカル変数を5つ以上宣言していないこと(メソッドの引数は含まない).
- フィールド変数を5つ以上宣言していないこと.
- 1つのメソッドが10行以内であること.
- メソッド開始の
{
と終了の}
は含まない.
- メソッド開始の
- 3つ以上のネストが存在しないこと.
- 2重ループ内の条件分岐はアウト.別のメソッドに切り出しましょう.
- 配列を使っていないこと.ただし,以下の部分は除きます.
main
メソッドの引数,及びその変数を他のメソッドに渡した時の引数,split
メソッドの返り値.
- クラス定義の基本形に従ってプログラムを書いている.