测验的类图

时间:2013-05-22 13:20:42

标签: c# inheritance

我想在C#中进行 Year Question Quiz 游戏。我需要帮助解决如何在不同类别中提问的问题。

测验包含问题和答案。但是,我想说我希望测验有不同的类别。我想要的类别是体育历史

我该如何设计此测验的类图?解决问题的最佳方法是什么? 下面的类图是关于我如何解决问题的。但我不认为我的解决方案是好的。 而且我不知道为什么类体育历史应继承自Quiz以及这些类应包含哪些实例变量?我可以在没有继承的情况下解决问题但我正在做的任务说它是使用继承的要求。

enter image description here

2 个答案:

答案 0 :(得分:2)

到目前为止看起来不错,不过我会添加一些像这样的方法和类:

interface IQuiz {
      public List<Question> getQuestions();
      public float scoreQuiz();
}

class Answer { string answer; }
class Question { 
      List<Answer> potentialAnswers;
      Answer correctAnswer;
}

class SportsQuiz : IQuiz { }
class PeopleQuiz : IQuiz { }
class HistoryQuiz : IQuiz { }

答案 1 :(得分:1)

一种可能的(简单)方法:

public class Quiz
{
    public string Question { get; private set; }
    public string Answer { get; private set;}

    public Quiz(string question, string answer)
    {
        Question = question;
        Answer = answer;
    }
}

然后是:

// Create a dictionary
Dictionary<string, List<Quiz>> quizDictionary = new Dictionary<string, List<Quiz>>();

// Create a category
List<Quiz> sportsQuiz = new List<Quiz>();
// Add questions & answers to the category
sportsQuiz.Add(new Quiz("Whats the question?", "It's the answer"));

// Add the category to your quiz dictionary
quizDictionary.Add("Sports", sportsQuiz);

// Select a category
List<Quiz> randomQuiz = quizDictionary["Sports"];

// Do something with the category
Quiz randomQA = randomQuiz[0];

Ask(randomQA.Question);
if (answer == randomQA.Answer)
    // correct answer
else
    // wrong answer