因此,我創建了一個具有getExamScore(Student a,int examId)方法的考試分級系統。此方法將檢索指定考試的答案關鍵字,該答案是該考試的學生答卷,並評估學生獲得的點數。這是它做什麼的粗略草圖。計算arrayList中相同元素的數量
Exam toIterate = database.get(examId);
Map<Integer, Question> map = toIterate.getMap();
for(Map.Entry<Integer, Question> entry : map.entrySet()){
answerKey.add(entry.getAnswer());
points.add(entry.getPoints());
}
System.out.println(answerKey);
System.out.println(points);
//Outputs
[False, True, False]
[2.0, 4.0, 3.0]
現在我有了一個獨立的方法,可以在arraylist中添加所有學生對該考試的答案。
Student s = new Student();
AnswerSheet as = s.getAnswerSheet(int examId);
ArrayList<String> studentAnswers = as.getAnswers(int examId);
System.out.println(studentAnswers);
//Ouputs
[False, True, False]
現在我想比較answerKey到studentAnswers如果答案匹配從點ArrayList中的相應指標的綜合得分在其中添加點。我嘗試了下面的代碼,它可以工作,但它有點難以理解。有沒有更好的方法來做到這一點?我願意提出改變我的設計的建議。我只是認爲這將是最簡單的方法。
int i = 0;
for(String s: studentAnswer){
if(s.equals(answerKey.get(i))){
score += points.get(i);
}
i++;
}