課題 (05:スプレッドシート)
作業について
今回の課題は以下のパッケージに作成してください。
パッケージの名前 |
---|
j1.lesson05 |
作成するクラスの名前は問題ごとに指示があります。下記を参照してください
課題の提出方法については下記を参照してください。
また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。
新しい内容
今回、スプレッドシートに関する新しい内容はありません。
問題
作成するクラスの名前 |
---|
GradingS1 |
4人の出席、中間試験、期末試験に関する得点の一覧を元に、様々な成績を算出するプログラムを作成してください。この一連の課題では、db05-1.txtのファイルからデータを読み出して利用してください。
また、同じ構造で得点だけ異なるdb05-2.txt, db05-3.txtを利用してプログラムの動作を確認してください。
名前 | 出席 | 中間 | 期末 | |
Alice | 70.0 | 80.0 | 65.0 | |
Bob | 0.0 | 100.0 | 100.0 | |
Charley | 40.0 | 60.0 | 79.0 | |
David | 100.0 | 80.0 | 20.0 |
a. 平均点の計算
出席、中間試験、期末試験に関する4人の平均点をそれぞれ列ごとに計算してください。それを利用して、Davidの次の行にそれぞれの列の平均点を表示してください。正しく動作すると次のようになるはずです。
名前 | 出席 | 中間 | 期末 | |
Alice | 70.0 | 80.0 | 65.0 | |
Bob | 0.0 | 100.0 | 100.0 | |
Charley | 40.0 | 60.0 | 79.0 | |
David | 100.0 | 80.0 | 20.0 | |
平均 | 52.5 | 80.0 | 66.0 |
ヒント
「X列目の平均点を計算する」というメソッドをひとつ作成すると楽です。たとえば出席の平均点はX=2となって、2行目から5行目までの2列目(X列目)の合計を計算したあとに、さらにそれを4で割ると平均点が求まります。
b. 総合点の計算
次に、出席、中間試験、期末試験を総合した得点を計算してください。これは単純に合計すればいいのではなく、それぞれに係数を掛けてから合計します。係数は出席が0.2, 中間試験が0.3, 期末試験が0.5で、それぞれの得点が順に50.0, 70.0, 40.0である場合、「50.0 * 0.2 + 70.0 * 0.3 + 40.0 * 0.5 = 66.0」と計算できます。
このとき、「指定した行の総合点を返す」というメソッドを作成しておいてください(あとで使います)。それを利用して、期末の次の列にそれぞれの行の総合点を表示してください。正しく動作すると次のようになるはずです。
名前 | 出席 | 中間 | 期末 | 総合 |
Alice | 70.0 | 80.0 | 65.0 | 70.5 |
Bob | 0.0 | 100.0 | 100.0 | 80.0 |
Charley | 40.0 | 60.0 | 79.0 | 65.5 |
David | 100.0 | 80.0 | 20.0 | 54.0 |
平均 | 52.5 | 80.0 | 66.0 |
c. 合否の判定
次は、総合点の代わりに合否を表示するように書き換えて下さい。先ほど計算した総合点が60点以上ならば合格、そうでなければ不合格となります。このとき、「指定した行の人が合格ならtrue、不合格ならfalseを返す」というメソッドを作成しておいてください(あとで使います)。
それを利用して、期末の次の列(先ほど総合点を表示していた行)に合格の場合のみ「合格」と表示してください (不合格の場合はなにも表示しないでください)。正しく動作すると次のようになるはずです。
名前 | 出席 | 中間 | 期末 | 合否 |
Alice | 70.0 | 80.0 | 65.0 | 合格 |
Bob | 0.0 | 100.0 | 100.0 | 合格 |
Charley | 40.0 | 60.0 | 79.0 | 合格 |
David | 100.0 | 80.0 | 20.0 | |
平均 | 52.5 | 80.0 | 66.0 |
d. 合格者数の表示
最後に、全体の合格者数をメッセージダイアログに表示してください。たとえば、db05-1.txtでは「合格者は3人でした」と表示します。
ヒント
「合否の判定」で宣言したメソッドを活用しましょう。合格者を見つけるたびに「total = total + 1;」というように変数に1ずつ加算していくと、全員の判定が終わったころには上記の「total」には合格者数が計算されています。