【发布时间】:2020-06-13 04:42:16
【问题描述】:
我有一个作业要做,这个作业是一个简单的测验程序,用户需要回答数据库中的 10 个问题(但我目前有 3 个问题显示在一个框架中,因为我使用了 jscrollpane..)。在测验结束时,我想显示用户的分数,而不是显示“3 分中的 3 分”,而是显示“3 分中的 6 分”。我真的在近 3 天的时间里尽我最大的努力来弄清楚找出原因。
谁能给我解决这个问题的方法?
我正在使用 NetBeans。
public class Quiz extends javax.swing.JFrame {
ArrayList<Question> list = new ArrayList<>();
String answer = "";
String answer1 = "";
String answer2 = "";
int percent;
int score = 0;
String correct;
try {
ResultSet rs = stmt.executeQuery("Select * from Questions");
while (rs.next()) {
Question x = new Question(rs.getInt("ExamCode"), rs.getString("Category"),
rs.getString("Question"), rs.getString("ChoiceA"), rs.getString("ChoiceB"),
rs.getString("ChoiceC"), rs.getString("ChoiceD"), rs.getString("Answer"));
list.add(x);
for (int i = 0; i < list.size(); i++) {
correct = list.get(i).getAnswer();
if (correct.equalsIgnoreCase(answer)) {
score++;
System.out.print(score);
}
if (correct.equalsIgnoreCase(answer1)) {
score++;
System.out.print(score);
}
if (correct.equalsIgnoreCase(answer2)) {
score++;
System.out.print(score);
}
}
new Result(score, list).setVisible(true);
this.dispose();
}
} catch (SQLException ex) {
Logger.getLogger(Category.class.getName()).log(Level.SEVERE, null, ex);
}
//code in my resultform
public Result() {
initComponents();
}
public Result(int score, ArrayList<Question> list) {
initComponents();
labelResult.setText(String.valueOf(score + " out of " + list.size() + "!"));
}
【问题讨论】:
-
你在哪里初始化变量“answer”、“answer1”和“answer2”。特别是如果在你的 for 循环中任何一个是相等的,那么你可以在每次迭代中增加一个以上的分数。
标签: java netbeans-8.2