【发布时间】:2013-11-11 15:58:29
【问题描述】:
我是 Java 新手,需要帮助来理解一些事情。这是我设计用于在测验中返回多个分数的类的代码。
import java.util.ArrayList;
import java.util.ArrayList;
/**Contains methods to create an ArrayList of possible answers ask a question and mark it accordingly
* @author Ben Fowler
* @version
*/
public class ExamQuestionNumerical extends ExamQuestion{
public ExamQuestionNumerical(String question, int maximalMark, int correctAnswer) {
super(question, maximalMark);
// TODO Auto-generated constructor stub
}
ArrayList<Integer> answer = new ArrayList<Integer>();
ExamQuestionNumerical q1 = new ExamQuestionNumerical("10 - 6 = ?", 3, 1);
private int addAnswer(){
/**Adds 3 possible answers to the ArrayList
* @returns void
*/
answer.add(3);
answer.add(4);
answer.add(5);
}
private int returnMarks(correctAnswer){
/**
* @returns either max marks for a correct answer or 0 for incorrect.
*/
if (q1.answer = 1){
return maximalMark;
}else {return 0;}
}
现在,显然问题出在底部方法上,我只需要为问题返回一个标记。我(想我)已经在 ArrayList 中存储了 3 个可能的答案,并且需要一种方法来根据是否选择了正确的答案来返回分数。我知道我缺少结构/语法/更多的基本知识,但请帮忙,我可以花几个小时的研究在圈子里或在一些指导下,实际上到达某个地方。谢谢
【问题讨论】:
-
您能否包含一个运行此类的主要方法,以及所需的和实际的输出。也可能是ExamQuestion。如果可以将其缩减为一个独立的小型示例,那就太好了
-
if (q1.answer = 1)这部分是我们正在研究的,是吗?据我所知,答案是一个 ArrayList(将其设置为 1 不会运行)。您有一个答案列表和正确答案(可能是索引或整数)。您的“目标”应该是评估correctAnswer是否与 q1 答案一致。您还需要一个输入/字段来存储学生的回答。 -
一些注意事项: 1. 在构造函数中,你传递了正确答案,但不做任何事情?当然,您应该将其存储在某个地方。 2. addAnswer 应该返回一个 int。您希望此方法的功能是什么? 3. returnMarks(correctAnswer) 语法无效,必须指定参数的类型。 4. (q1.answer = 1) 无效 -> 在 Java 中,比较运算符是 '=='。此外,您正在将 int 与 List 进行比较