程序中有5个数组, userAnswer[],correctAnswer[],selectQuestionID[],errorQuestion[]
userAnswerID ==selectQuestionID
errorQuestion != selectQuestionID
问题:现在要建立起errorQuestion与正确答案和用户答案的信息
求教如何实现这个功能
userAnswerID ==selectQuestionID
errorQuestion != selectQuestionID
问题:现在要建立起errorQuestion与正确答案和用户答案的信息
求教如何实现这个功能
userAnswerID ==selectQuestionID
errorQuestion != selectQuestionID
解释下。
逻辑解释一下。
程序运行起来 自动抽选试题放到selectQuesionID当中,同时把正确答案也给抽取出来
所以这里关系是
selectQuestionID ==correctAnswer
用户进行作答的时候记录用户回答的信息放到userAnswer中 userAnswer是一个字符数组
当用户回答错误的时候记录用户那道题目回答错了放到errorQuestionID中最后要求输出回答错误的题目信息,与用户回答和正确答案的信息
Object[][] map = new String[errorQuestion.length][3];
for(int i = 0;i<errorQuestion.length;i++){
map[i][0] = errorQuestion[0]; map[i][1] = correctAnswer[selectQuesionID[errorQuestionID[i]]];
map[i][2] = userAnswer[i];
}
如果errorQuestionID存的是源题目的编号。
Map map = new HashMap();
for(int i = 0;i < selectQuestionID.length;i++ ){
if(!userAnswer[i].equals(correctAnswer[i])){
map.put(selectQuestionID[i],correctAnswer[i],userAnswer[i]);
}
}
或者
Map map = new HashMap();
int count = 0;
for(int i = 0;i < errorQuestionID.length;i++ ){
map.put(errorQuestionID[i],correctAnswer[errorQuestionID[i]],userAnswer[errorQuestionID[i]]);
}
}
这样是错的因为correctAnswer数组的长度是确定了的
而selectQuestionID里面存放的是问题的ID 返回过来会超出correctAnswer的长度
如果errorQuestionID存的是你选择的selectQuesionID的数组的下标.
Object[][] map = new String[errorQuestion.length][3];
for(int i = 0;i<errorQuestion.length;i++){
map[i][0] = selectQuestionID[errorQuestion[i]];
map[i][1] = correctAnswer[errorQuestion[i]];
map[i][2] = userAnswer[errorQuestion[i]];
}最好还是贴下数据样本吧,一个示例就好。