驾驶执照考试(获得遗漏问题的随机数字)



在我的JAVA课上有一些家庭作业,必须为驾照考试编写程序。它必须有以下方法:

通过。如果学生通过了考试,则返回true,或者如果学生未通过,则为false

totalCorrect。返回正确回答的总数问题

总计错误。错误地返回的总数回答问题

问题已忽略。包含问题编号的int数组学生错过的问题

到目前为止,我们都做得很好,直到我到达遗漏的问题部分。我们应该回忆起错误的更正,但当我打电话给它时,我得到了一个奇怪的号码[I@55f96302。在过去的两个小时里,我一直在看这个节目,我不确定我把什么搞砸了。如果有任何帮助,我将不胜感激。谢谢

public class DLE {
 private char[] key = { 'B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D',
                        'B', 'C', 'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A' };
 private char[] answers;

 public DLE(char[] ans)
 {
    answers = ans;
 }
 public boolean passed ()
 {
  return (totalCorrect() > 14);
 }
 public int totalCorrect()
 {
  int correct = 0;
  for (int i = 0; i < key.length; i++)
 {
 if (key[i] == answers[i])
  correct++;
 }
 return correct;
 }
 public int totalMissed()
 {
    int tmissed = 0;
    tmissed = key.length - totalCorrect();
    return tmissed;
 }
 public int[] questionsMissed()
 {
  int size = key.length - totalCorrect();
  int[] missed = {};
  if (size < 1)
  return missed;
  else
  missed = new int [size];
  int pos = 0;
  for (int i = 0; i < key.length; i++)
  {
   if (key[i] != answers[i])
   {
    missed[pos] = (i + 1);
    pos = pos + 1;
   }
  }
  return missed;
 }
}

//驱动

public class driver
{
     public static void main(String[] args)
     {
      // accept keyboard input
       Scanner keyboard = new Scanner(System.in);
      System.out.println("Enter your answers below.n");
      char[] answers = new char[20];
      // request an answer for each question
      for(int i = 0; i < answers.length; i++)
      {
            // get input until input is valid
            char input;
            do
            {
                  System.out.print(i + 1 + ". ");
                  // get character and make it upper case
                  input = Character.toUpperCase(keyboard.next().charAt(0));
            }
            while(input < 'A' || input >'D');
            // store answer
            answers[i] = input;
      }
      // print output here
      DLE driver = new DLE(answers) {};
      System.out.println();
      System.out.println("You "+(driver.passed()?"passed" : "did not pass") + ".n");
      System.out.println("Correct: " + driver.totalCorrect() + "n");
      System.out.println("Incorrect: " + driver.totalMissed() + "n");
      System.out.println("Questions missed: " + driver.questionsMissed());
  }
}

使用Arrays.toString()实用程序方法打印整数数组。

import java.util.Arrays;
...
System.out.println(Arrays.toString(driver.questionsMissed()));

最新更新