概要

目標

特定の地域の天気予報のデータが与えられる. そのデータを読み,指定の分析を行い,結果を出力するプログラムを作成する. 各ステップで異なる分析を行う.

この課題に必要な内容

課題の進め方

この課題は大きく6つのステップに分けられます. それぞれのステップで,プログラムを作成します. 各ステップで作成するプログラムのファイル名はWeatherAnalyzer1.javaWeatherAnalyzer6.javaとします. 以下のことを念頭に課題を進めてください.

  • ステップ1からステップ2ステップ3 と順番に課題を進めてください. 途中のステップを抜かすことはできません.
  • ステップ1で作成した内容を元に, ステップ2を作成してください.
    • ステップ3以降も同様に,前のステップで作成した内容を全て含めて当該ステップに取り組んでください.
    • プログラムを作成するとき,一つ前のステップのプログラムをコピーして始めると良いでしょう.
      • ただし,mainメソッドの内容を修正することを忘れないようにしましょう.
      • mainメソッドで異なる型をnewするバグはなかなか気付きません.
  • ステップ3までが必須で,ステップ4ステップ5ステップ6がチャレンジ問題です.
    • ただし,必須問題しか完成させていない場合,試験で失敗すると単位取得が厳しくなります.
    • ステップ4までを完成させていれば,たとえ試験で失敗したとしても単位取得が現実的になります.
      • もちろん,失敗の度合いもありますし,ステップ4まで完成させたつもりが完成できていないこともありますので,確実に単位取得を保証する訳ではありません.

課題の提出方法

この課題は6つのステップに分けられています. 各ステップでWeatherAnalyzer1.javaWeatherAnalyzer6.javaを作成します. 具体的に指示はしていませんが,独自の型を作成する必要もあるでしょう. それら全てのソースファイルを zip 圧縮し,zipファイルを Moodle に提出してください.

  • 学生証番号(6桁)のディレクトリを作成し,そこに全てのソースファイルをいれてください.
  • 自分の学生証番号が 123456 の場合,展開すると次のようになっているようにしてください. *
$ ls
123456.zip
$ unzip 123456.zip
$ ls
123456.zip      123456
$ tree 123456
123456
... # 必要なファイル
├── WeatherAnalyzer1.java
├── WeatherAnalyzer2.java
... # 必要なファイル
└── WeatherAnalyzer6.java
  • 提出期限は 2020年2月3日(月)9:00です.
  • 提出先は Moodle の【〆切 2020/2/3 9:00】最終課題 です.
  • 次のチェックリストを提出前に確認してください.
    • zipファイルを空のディレクトリに展開したとき,上記のような構造になっているか.
    • その状態でコンパイルに成功するか.
    • 全てのソースファイルにコメントとして,自分の学生証番号,名前が記載されているか.

課題のデータ

課題のデータ(天気予報データ)は,次からダウンロードしてください. なお,評価には,ここでダウンロードできるデータとは異なるデータを用います. データの形式は同じですが,記載されているデータや量は異なります. そのため,しっかりとデータを読み,適切な分析を行うようにしてください. 多少の計算誤差は許容されます.

なお,与えられるデータは日付順にソートされているものとして構いません.

評価のポイント

以下の点を満たしていれば,加点されます. また,それぞれのステップで確認事項があります.それぞれを満たすことで加点されていきます.

  • インデントがずれている部分がないこと.
    • 少しでもインデントがずれているとNG.
  • ループ制御変数以外で1文字の変数名を利用していないこと.
  • 1つのメソッドが10行以内であること.
    • メソッド開始の{と終了の}は含まない.
  • 3つ以上のネストが存在しないこと.
    • 2重ループ内の条件分岐はアウト.別のメソッドに切り出しましょう.
  • 配列を使っていないこと.ただし,以下の部分は除きます.
    • mainメソッドの引数,及びその変数を他のメソッドに渡した時の引数,
    • splitメソッドの返り値.
  • クラス定義の基本形に従ってプログラムを書いている.