ScoreEvaluation.pyをダウンロードする際にファイルが開けない、またはセキュリティの観点からWebサイトからファイルをダウンロードして開きたくない場合、下記のソースコードのテキストをコピーして使用してください。なお、プログラミング言語は、Python 3.9.5で動作します(Windows 10環境上で、動作確認済み)。
#
# プログラム:単位取得判定プログラム(ScoreEvaluation.py)
# 作成者:T.Yamaura, Y.Ohmori
#
import csv
import sys
from os import write
studentNum = [] #学籍番号
midScore = [] #中間テストの点数
finalScore = [] #期末試験の点数
count = 0 #カウンタ用変数
#Score.csvを開き、データを代入する
try:
with open('score.csv') as f:
reader = csv.reader(f)
for row in reader:
if int(row[0].isdigit()) == True and int(row[1].isdigit()) == True and int(row[2].isdigit()) == True:
if len(row[0]) == 8 and int(row[0]) >= 0 and int(row[0]) <= 99999999:
studentNum.append(int(row[0]))
else:
print('入力エラー')
sys.exit()
if int(row[1]) >= 0 and int(row[1]) <= 100:
midScore.append(int(row[1]))
else:
print('入力エラー')
sys.exit()
if int(row[2]) >= 0 and int(row[2]) <= 100:
finalScore.append(int(row[2]))
else:
print('入力エラー')
sys.exit()
else:
print('入力エラー')
sys.exit()
count = count + 1
except Exception as e:
print('例外が発生したので、プログラムを終了します')
#評価結果をResult.csvに出力する
try:
with open('Result.csv','w', newline="") as f:
writer = csv.writer(f)
for i in range(count):
#中間テストと期末テストを加算し、成績評価をする
Score = int(midScore[i]) + int(finalScore[i])
if Score >= 180:
Grade = 'S'
elif Score >= 160 and Score <= 179:
Grade = 'A'
elif Score >= 140 and Score <= 159:
Grade = 'B'
elif Score > 120 and Score <= 139:
Grade = 'C'
else:
Grade = '/'
#評価結果を入力データの末尾に追加する
writer.writerow([studentNum[i], midScore[i], finalScore[i], Grade])
except Exception as e:
print('例外が発生したので、プログラムを終了します')
前シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
テストでバグ発見!(2)自動販売機シミュレーターのバグを見つけろ!
テストでバグ発見!(1)まずは成人判定プログラムでチュートリアル
ソフトウェア技術者のためのバグ百科事典(21)【総まとめ】バグの特定手順を解説
ソフトウェア技術者のためのバグ百科事典(20)みずほ銀行は人ごとではない!? システム刷新のバグ
ソフトウェア技術者のためのバグ百科事典(19)複雑怪奇な通信系プログラムのバグCopyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク
よく読まれている編集記者コラム