About Me

My photo
Hello, I'm a technology geek looking to upgrade my programming skills. These are some of the things I'm learning along my journey.

Thursday, July 19, 2012

Create a Basic Quiz Engine (part 2)

This is a continuation of "Create a Basic Quiz Engine (part1)".

Start by creating some extra criteria for your new enhanced quiz engine.

Example:

Quiz Engine Requirements
User is greeted by splash page.
Quizzes are multiple choice. One question per screen.
User can see the results on the screen in a detailed grid.
Results are stored in a SQL Server Database.
The user can exit the program before the quiz is finished.




List the pages, controls, files and databases necessary to complete the project.

Example:

    Welcome Page
    Question Page
    SQL Server Database

    -Welcome Page
    --button to navigate to question page
    -Question page
    --question description label
    --results description label
    --total score label
    --3 radio buttons with 3 descriptions
    --GridView
    --submit button
    --exit button
    -Quiz Database
    --Quiz Table
    ---question id
    ---question description
    ---question answer1 ID
    ---question answer1 Description
    ---question answer2 ID
    ---question answer2 Description
    ---question answer3 ID
    ---question answer3 Description
    ---question correct answer ID
    --UserScore Table
    ---RowID
    ---UserID
    ---UserName
    ---QuestionDescription
    ---UserAnswerID
    ---UserAnswerDescription
    ---QuizCorrectQuestionID
    ---QuizCorrectQuestionDescription
    ---UserQuestionScore



Use the code from "Create a Basic Quiz Engine (part1)" to create a new project. Add a "UserScore" table to the Quiz database.

Create a new class for the new "UserScore" list.

Example:
    class UserScore
    {
        public int intRowID { get; set; }
        public int intUserID { get; set; }
        public string strUserName { get; set; }
        public string strQuestionDescription { get; set; }
        public int intUserAnswerID { get; set; }
        public string strUserAnswerDescription { get; set; }
        public int intQuizCorrectQuestionID { get; set; }
        public string strQuizCorrectDescription { get; set; }
        public int intUserQuestionScore { get; set; }
    }


Hard code the user name and ID for this version.

Example:
int intUserID = 1;
string strUserName = "harry";


Load the questions and uncheck the radio buttons.
Populate the radio buttons and description label with the first question.

Example:
public QuestionPage()
{
    InitializeComponent();
    ClearUserScoreTable();
    ReadQuestionTable();

    foreach (Question objQuestion in QuestionRowList)
    {
        if (objQuestion.intQuestionID == intTestQuestionNumber)
        {
            lblQuestion.Text = objQuestion.strQuestionDescription;
            strQuestionDescription = objQuestion.strQuestionDescription;
            radioButton1.Text = objQuestion.strAnswer1Description;
            radioButton2.Text = objQuestion.strAnswer2Description;
            radioButton3.Text = objQuestion.strAnswer3Description;
            intCorrectQuestionID = objQuestion.intCorrectAnswerID;
            strCorrectQuestionDescription = objQuestion.strCorrectAnswerDescription;

        }
    }// end foreach

    radioButton1.Checked = false;
    radioButton2.Checked = false;
    radioButton3.Checked = false;

}// end QuestionPage()



Click here for the project code. Just create a SQL Server database with test data, edit the connection string and run it.

No comments:

Post a Comment