package exercise.choice; import java.io.*; import java.util.*; public class ChoiceEvaluator { public static ChoiceEvaluation evaluateSubmission(ChoiceSubmission submission) { String studentID = submission.getStudentID(); String exerciseID = submission.getExerciseID(); String submissionID = submission.getSubmissionID(); try { ChoiceSolution soln = ChoiceSolution.loadSolution(exerciseID); boolean[] solnChoices = soln.getCorrectChoices(); boolean[] subnChoices = submission.getSelectedChoices(); // Does the student pass? boolean passed = true; int numChoices = solnChoices.length; for (int i = 0; i < numChoices; i++) { if (solnChoices[i] != subnChoices[i]) { passed = false; break; } } ChoiceEvaluation eval = new ChoiceEvaluation( studentID, exerciseID, submissionID, passed); // Save the evaluation to the persistent store. try { ChoiceEvaluation.saveEvaluation(eval); } catch (Exception e) { System.err.println( "ChoiceEvaluator.evaluateSubmission(): " + "Unable to save evaluation."); } // Return the evaluation as feedback. return eval; } catch (IOException e) { System.err.println("ChoiceEvaluator.evaluateSubmission(): " + "Failed to load a solution; returning null."); return null; } } }