2007 Student Answer Sheet
<< 2007SelfDivisor | APQuestionsTrailIndex | 2007GameState >>
StudentAnswerSheet
import java.util.ArrayList; public class StudentAnswerSheet { private ArrayList<String> answers; // the list of the student's answers private String name; public StudentAnswerSheet(String nm, ArrayList<String> ans) { name = nm; answers = new ArrayList<String>(); for (String a : ans) answers.add(a); } /** @param key the list of correct answers, represented as strings of length one * Precondition: key.size() is equal to the number of answers in this answer sheet * @return this student's test score */ public double getScore(ArrayList<String> key) { //part a here } // accessor (or get) methods public String getName() { return name; } public ArrayList<String> getAnswers() { return answers; } }
TestResults
import java.util.ArrayList; public class TestResults { private ArrayList<StudentAnswerSheet> sheets; public TestResults(ArrayList<StudentAnswerSheet> shs) { sheets = new ArrayList<StudentAnswerSheet>(); for (StudentAnswerSheet s : shs) sheets.add(s); } /** Precondition: sheets.size() > 0; * all answer sheets in sheets have the same number of answers * @param key the list of correct answers represented as strings of length one * Precondition: key.size() is equal to the number of answers * in each of the answer sheets in sheets * @return the name of the student with the highest score */ public String highestScoringStudent(ArrayList<String> key) { //part b here } }
TestScoreDriver
import java.util.ArrayList; import java.util.Arrays; public class TestScoreDriver { public static void main(String[] args) { ArrayList<String> key = new ArrayList<String>(Arrays.asList( new String[] {"A", "C", "D", "E", "B", "C", "E", "B", "B", "C"})); ArrayList<String> answers1 = new ArrayList<String>(Arrays.asList( new String[] {"A", "B", "D", "E", "A", "C", "?", "B", "D", "C"})); ArrayList<String> answers2 = new ArrayList<String>(Arrays.asList( new String[] {"A", "?", "D", "E", "A", "C", "?", "B", "D", "C"})); ArrayList<String> answers3 = new ArrayList<String>(Arrays.asList( new String[] {"A", "?", "D", "E", "A", "C", "E", "B", "D", "C"})); ArrayList<String> answers4 = new ArrayList<String>(Arrays.asList( new String[] {"A", "C", "D", "E", "A", "C", "E", "B", "D", "C"})); StudentAnswerSheet alex=new StudentAnswerSheet("Alex", answers1); StudentAnswerSheet betty=new StudentAnswerSheet("Betty", answers2); System.out.println("The key is "+key); System.out.println("Alex chose "+alex.getAnswers()); System.out.println("Alex's score is (should be 5.25):"+alex.getScore(key)); ArrayList<StudentAnswerSheet> sheets = new ArrayList<StudentAnswerSheet>(); sheets.add(alex); sheets.add(betty); sheets.add(new StudentAnswerSheet("Clive", answers3)); sheets.add(new StudentAnswerSheet("Donna", answers4)); for (StudentAnswerSheet s : sheets) { System.out.println(s.getName() + ": " + s.getScore(key)); } TestResults results = new TestResults(sheets); System.out.println("Best is (should be Donna with a score of 7.5): " + results.highestScoringStudent(key)); } }