連載
» 2021年09月16日 10時00分 公開

テストでバグ発見!(3)単位取得判定プログラムに潜むファイル入力のバグ山浦恒央の“くみこみ”な話(145)(2/4 ページ)

[山浦恒央 東海大学 大学院 組込み技術研究科 非常勤講師(工学博士),MONOist]

3.2 詳細

3.2.1 ファイル入力

 プログラム起動時に、点数データ(Score.csv)を入力する。

 Score.csvのデータのフォーマットは、後の表2に示す点数データを参照すること。また、形式に合致しない場合は、「入力エラー」と表示し、プログラムを終了する。

3.2.2 成績評価

 成績評価は、グレード(S、A、B、C、/)で判定する。なお、評価基準は表1に従うこと。

グレード 評価基準 備考
S (中間テスト+期末テスト)が180〜200点 中間テストと期末テストのそれぞれの最高得点は100点として考える
A (中間テスト+期末テスト)が160〜179点
B (中間テスト+期末テスト)が140〜159点
C (中間テスト+期末テスト)が120〜139点
/ (中間テスト*期末テスト)が119点以下
表1 評価基準

3.2.3 成績評価の出力結果

 出力結果は、入力ファイルの末尾にグレード(S、A、B、C、/)を追記し、Result.csvとして出力する。

3.3 データ設計

3.3.1 点数データ

 データ設計を表2に示す。

No. 項目 形式 入出力
1 学籍番号 int型 半角数字8桁 入力・出力
2 中間テストの点数 int型 0〜100 入力・出力
3 期末テストの点数 int型 0〜100 入力・出力
4 グレード 文字型 半角英数字1文字 出力
表2 点数データ

3.3.2 入力ファイル(Score.csv)

 入力ファイルの例を以下に示す(リスト1)。

#学籍番号,中間テストの点数,期末テストの点数
12345678,100,100
リスト1 入力ファイルの例(実際のファイルには1行目は含めないこと)

3.3.3 出力ファイル(Result.csv)

 出力ファイルの例を以下に示す(リスト2)。

#学籍番号,中間テストの点数,期末テストの点数,グレード
12345678,100,100,S
リスト2 出力ファイルの例(実際のファイルには1行目は含めないこと)

3.4 制限事項

 問題の都合上、下記の制限に従うこと。

  1. 入力するCSVファイルのデータは1列のみとする(解答が説明しにくくなるため)
  2. 入力するCSVファイルのディレクトリパスは、必ずプログラムの直下で、ファイル名は「Score.csv」とする
  3. 成績の判定方法はさまざまあるだろうが、問題の都合上、3.2.2に従うものとする
  4. 入力するScore.csvは、必ずカンマ区切りのデータを入力し、文字コードはシフトJISで、改行コードはCRLFとすること

Copyright © ITmedia, Inc. All Rights Reserved.