#
# プログラム：単位取得判定プログラム(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('例外が発生したので、プログラムを終了します')

    
   
