如何使用数组存储问题和答案以进行测验

时间:2016-12-14 00:23:07

标签: java arrays class methods

我正在编写一个基于Java教科书中关于数组的章节中的一个论文,该文章说:

  

使用第5章中的Question类定义Quiz类。测验最多可包含25个问题。定义Quiz类的add方法以向测验添加问题。定义Quiz类的giveQuiz方法以向测验添加问题。定义Quiz类的giveQuiz方法,依次向用户显示每个问题,接受每个问题的答案,并跟踪结果。使用主方法定义一个名为QuizTime的类,该方法为测验选择问题,向用户提供测验,收集和检查答案,并打印最终结果。

我正在考虑的这项任务的程序开发计划可能是否正确:

  
    
        
  1. 创建测验类

  2.     
  3. 在测验类中创建添加方法,以向测验添加问题

  4.     
  5. 在Quiz类中定义giveQuiz方法,向用户提出问题

  6.     
  7. 让它接受每个问题的答案,

  8.               

    5.跟踪答案结果

             

    6.创建另一个名为QuizTime的类

             
          
    1. 创建主要方法。
    2.               

      8.允许将问题作为数组输入到方法

      的参数中的方法          

      9.存储并检查答案

               
            
      1. 打印结果。
      2.        

在我看来,它总是要求总共3个班级和一个主要方法。

但是,我觉得为什么需要这么多课程感到困惑。下面给出的Question类中的方法似乎有一些方法可以执行赋值给程序员的操作,但方法看起来是空的并且没有用处。我也对#6-10的程序开发计划感到困惑。我不确定如何制作一个数组来将问题和答案存储到方法中。

以下是Java教科书中已经给出的Question类:

    //********************************************************************
    //  Question.java       Author: Lewis/Loftus/Cocking
    //
    //  Represents a question (and its answer).
    //********************************************************************

    public class Question implements Complexity
    {
       private String question, answer;
       private int complexityLevel;

       //-----------------------------------------------------------------
       //  Sets up the question with a default complexity.
       //-----------------------------------------------------------------
       public Question (String query, String result)
       {
          question = query;
          answer = result;
          complexityLevel = 1;
       }

       //-----------------------------------------------------------------
       //  Sets the complexity level for this question.
       //-----------------------------------------------------------------
       public void setComplexity (int level)
       {
          complexityLevel = level;
       }

       //-----------------------------------------------------------------
       //  Returns the complexity level for this question.
       //-----------------------------------------------------------------
       public int getComplexity()
       {
          return complexityLevel;
       }

       //-----------------------------------------------------------------
       //  Returns the question.
       //-----------------------------------------------------------------
       public String getQuestion()
       {
          return question;
       }
       //-----------------------------------------------------------------
       //  Returns the answer to this question.
       //-----------------------------------------------------------------
       public String getAnswer()
       {
          return answer;
       }

       //-----------------------------------------------------------------
       //  Returns true if the candidate answer matches the answer.
       //-----------------------------------------------------------------
       public boolean answerCorrect (String candidateAnswer)
       {
          return answer.equals(candidateAnswer);
       }

       //-----------------------------------------------------------------
       //  Returns this question (and its answer) as a string.
       //-----------------------------------------------------------------
       public String toString()
       {
          return question + "\n" + answer;
       }
    }
  

这是我创建的测验类,我没有参与过   得多。

public class Quiz
{
    private String add;

    public String addQuest (String addQ)//adds questions to quiz
    {
        add = addQ;
        return add;//returninng the question
    }

    public String giveQuiz ()//give the quiz to the user
    {
        //accept and store each answer
        return;
    }
}

QuizTime类:

public class QuizTime
{
    private String question; 

    public String[] Quiz() {
    }
    public String toString(String quest)
    {
        question = quest;
        for (int i = 0; i < 25; i++)
            Quiz[i] = new Quiz (question);
    }

    public String presents ()
    {
        for (int i = 0; i < 25; i++)
            return quest[i];
    }
}

我还没有制作主要方法,因为我仍然不知道这些类的开发是如何工作的。我为我在课堂和数组中的低技能道歉,因为我刚刚学会了它们。我非常感谢你们的帮助。

对于Quiz类,在第一个方法中,我尝试使用main方法插入可以存储在方法中的问题的参数。但我想知道是否有更简单的方法可以在方法内存储25个测验问题参数,如果可能的话。我正在尝试如果我在正确的轨道上,请告诉我。非常感谢你。

1 个答案:

答案 0 :(得分:1)

  

但我想知道是否有更简单的方法可以在方法中存储25个测验问题参数(如果可能的话)

不需要 有25个测验问题参数。这就是为什么你应该使用你学校的阵列。

看起来像这样:

public Question[] getQuestions(){
    return questions;
}

如果您需要通过某种方法传递所有问题,原因如下:

public void sendQuestions(Question[] ques){
    //do whatever
}