📄 exam.java
字号:
package exec.day1002.exam;
import java.util.*;
/**
* Exam类 考试类
* 属性: 若干学生 一张考卷
* 提示:学生采用HashSet存放
* @author new
*/
public class Exam {
private HashSet students;//若干学生
private Paper paper;//考卷
public Exam(Paper paper) {
students = new HashSet();
this.paper = paper;
}
public void addStudent(Student s){
students.add(s);
}
public Paper getPaper() {
return paper;
}
public HashSet getStudents() {
return students;
}
/**
* 为所有学生评卷
*/
public void judge(){
if(students!=null){
//遍历所有学生,找到每一个同学
for(Object obj:students){
Student stu = (Student)obj;
//获取该同学的答卷上的所有试题及答案
HashMap answersMap = stu.getAnswerSheet().getAnswersMap();
//获取所有题号的集合
Set set = answersMap.keySet();
//对题号遍历
for(Object o:set){
String queNum = (String)o;
//获取该同学对于该题目的答案
String answer = (String)answersMap.get(o);
//获取该题号对应的试题对象
Question q = (Question)stu.getPaper().getQuestionMap().get(queNum);
//获取该题号对应的正确答案
String rightAnswer = q.getRightAnswer();
//校验答案是否正确
if(answer.equals(rightAnswer)){
stu.setScore(stu.getScore()+5);
}
}
}
}
}
/**
* 打印成绩排名
*/
public void print(){
TreeSet set = new TreeSet(students);
for(Object obj:set){
Student s = (Student)obj;
System.out.println(s.getName()+": "+
s.getScore());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -