Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def roundGrade(grades):
- gradesRounded = []
- for grade in grades:
- grade = round(grade)
- if grade < -1.5:
- grade = -3
- elif grade < 1:
- grade = 0
- elif grade < 3:
- grade = 2
- elif grade < 5.5:
- grade = 4
- elif grade < 8.5:
- grade = 7
- elif grade < 11:
- grade = 10
- else:
- grade = 12
- gradesRounded.append(grade)
- return gradesRounded
- def computeFinalGrades(grades):
- moreThanOneAssignment = True
- gradesFinal = []
- for student in grades:
- if -3 in student:
- gradesFinal.append(-3)
- elif len(student) > 1:
- studentSum = 0
- for individualGrade in sorted(student)[1:]:
- studentSum += int(individualGrade)
- studentSum = float(studentSum) / float(len(student)-1)
- gradesFinal.append(studentSum)
- else:
- gradesFinal.append(student[0])
- return gradesFinal
- vector = [[3,4,5],
- [2,3,4],
- [9,11,8],
- [-3,4,6]]
- def gradesPlot(grades):
- # Final grades
- plt.hist(roundGrade(computeFinalGrades(grades)))
- plt.show()
- def loadCSV(file):
- file = list(csv.reader(open(file)))
- return file
- def checkDataErrors(data):
- error = False
- #Multiple students
- studentList = []
- for student in data:
- studentList.append(student[0])
- for student in studentList:
- count = studentList.count(student)
- if count > 1:
- print ("There are " + str(count) + " students with the ID: " + str(student))
- error = True
- if error == False:
- print ("There are no known errors in the data.")
- def fileToVector(data):
- gradeVector = []
- for student in data[1:]:
- results = list(map(int, student[2:]))
- gradeVector.append(results)
- return gradeVector
- def displayListOfGrades(data):
- # Display grades for assignment
- assignments = len(data[0])-2
- for i in range(assignments):
- gradeList = []
- for student in data[1:]:
- gradeList.append(student[i+2])
- print ("Assignment " + str(i) + ": " + str(gradeList))
- print ("")
- finalGrades = roundGrade(computeFinalGrades(fileToVector(data)))
- print ("")
- studentList = []
- for student in data[1:]:
- studentList.append(student[1])
- studentDict = {}
- for i in range(len(studentList)):
- studentDict[studentList[i]] = finalGrades[i]
- for name in sorted(studentDict.keys()):
- print (name + ": " + str(studentDict[name]))
- print ("Welcome to my program!")
- dataLoaded = False
- shouldRun = True
- file = loadCSV("exam2.csv")
- while shouldRun:
- print ("***Options***")
- print ("1: Load data")
- print ("2: Check for data errors")
- print ("3: Generate plots")
- print ("4: Display list of grades")
- print ("0: Quit")
- var = input("Command: ")
- isANumber = False
- try:
- var = int(var)
- isANumber = True
- except:
- print ("Input not a number.")
- isANumber = False
- if isANumber:
- if int(var) == 0:
- print ("You quit the script")
- break
- elif int(var) == 1:
- fileName = input("CSV file name (remember .csv): ")
- file = loadCSV(fileName)
- print (file)
- elif int(var) == 2:
- checkDataErrors(file)
- elif int(var) == 3:
- gradesPlot(fileToVector(file))
- elif int(var) == 4:
- displayListOfGrades(file)
- else:
- print ("Input not valid.")
- print ("")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement