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や書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.