Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. def roundGrade(grades):
  2. gradesRounded = []
  3. for grade in grades:
  4. grade = round(grade)
  5. if grade < -1.5:
  6. grade = -3
  7. elif grade < 1:
  8. grade = 0
  9. elif grade < 3:
  10. grade = 2
  11. elif grade < 5.5:
  12. grade = 4
  13. elif grade < 8.5:
  14. grade = 7
  15. elif grade < 11:
  16. grade = 10
  17. else:
  18. grade = 12
  19. gradesRounded.append(grade)
  20. return gradesRounded
  21.  
  22. def computeFinalGrades(grades):
  23. moreThanOneAssignment = True
  24. gradesFinal = []
  25. for student in grades:
  26. if -3 in student:
  27. gradesFinal.append(-3)
  28. elif len(student) > 1:
  29. studentSum = 0
  30. for individualGrade in sorted(student)[1:]:
  31. studentSum += int(individualGrade)
  32. studentSum = float(studentSum) / float(len(student)-1)
  33. gradesFinal.append(studentSum)
  34. else:
  35. gradesFinal.append(student[0])
  36. return gradesFinal
  37.  
  38. vector = [[3,4,5],
  39. [2,3,4],
  40. [9,11,8],
  41. [-3,4,6]]
  42.  
  43. def gradesPlot(grades):
  44. # Final grades
  45. plt.hist(roundGrade(computeFinalGrades(grades)))
  46. plt.show()
  47.  
  48. def loadCSV(file):
  49. file = list(csv.reader(open(file)))
  50. return file
  51. def checkDataErrors(data):
  52. error = False
  53. #Multiple students
  54. studentList = []
  55. for student in data:
  56. studentList.append(student[0])
  57. for student in studentList:
  58. count = studentList.count(student)
  59. if count > 1:
  60. print ("There are " + str(count) + " students with the ID: " + str(student))
  61. error = True
  62. if error == False:
  63. print ("There are no known errors in the data.")
  64.  
  65. def fileToVector(data):
  66. gradeVector = []
  67. for student in data[1:]:
  68. results = list(map(int, student[2:]))
  69. gradeVector.append(results)
  70. return gradeVector
  71.  
  72. def displayListOfGrades(data):
  73.  
  74. # Display grades for assignment
  75. assignments = len(data[0])-2
  76. for i in range(assignments):
  77. gradeList = []
  78. for student in data[1:]:
  79. gradeList.append(student[i+2])
  80. print ("Assignment " + str(i) + ": " + str(gradeList))
  81. print ("")
  82.  
  83. finalGrades = roundGrade(computeFinalGrades(fileToVector(data)))
  84.  
  85. print ("")
  86.  
  87. studentList = []
  88. for student in data[1:]:
  89. studentList.append(student[1])
  90.  
  91. studentDict = {}
  92. for i in range(len(studentList)):
  93. studentDict[studentList[i]] = finalGrades[i]
  94.  
  95. for name in sorted(studentDict.keys()):
  96. print (name + ": " + str(studentDict[name]))
  97.  
  98. print ("Welcome to my program!")
  99. dataLoaded = False
  100. shouldRun = True
  101. file = loadCSV("exam2.csv")
  102. while shouldRun:
  103.  
  104. print ("***Options***")
  105. print ("1: Load data")
  106. print ("2: Check for data errors")
  107. print ("3: Generate plots")
  108. print ("4: Display list of grades")
  109. print ("0: Quit")
  110.  
  111. var = input("Command: ")
  112. isANumber = False
  113. try:
  114. var = int(var)
  115. isANumber = True
  116. except:
  117. print ("Input not a number.")
  118. isANumber = False
  119.  
  120. if isANumber:
  121. if int(var) == 0:
  122. print ("You quit the script")
  123. break
  124. elif int(var) == 1:
  125. fileName = input("CSV file name (remember .csv): ")
  126. file = loadCSV(fileName)
  127. print (file)
  128. elif int(var) == 2:
  129. checkDataErrors(file)
  130. elif int(var) == 3:
  131. gradesPlot(fileToVector(file))
  132. elif int(var) == 4:
  133. displayListOfGrades(file)
  134. else:
  135. print ("Input not valid.")
  136.  
  137. print ("")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement