簡體   English   中英

C#測驗應用程序運行成績

[英]c# quiz application running score

我正在開發一個可以保持成績的測驗應用程序。 例如:錯誤答案給出-1,正確答案給出+1。 它工作正常,但是我遇到了最后一個問題。 我希望將我的“下一個”按鈕更改為表單上的“結果”按鈕,然后在單擊時顯示一個消息框,其中顯示包含分數和消息的消息。

僅當對最后一個問題提交答案時,我才可以實現此按鈕更改(因為我在此刻遇到異常)?

這是我的代碼:

    int score = 0;
    int i = -1;
    int a = 0;

    string[] questions = new string[] 
    {
        "Question 1?", 
        "Question 2", 
        "Question 3",
        "Question 4", 
    };

    string[] answers = new string[] 
    {
        "incorrect","correct","incorrect","incorrect",
        "correct","incorrect","incorrect","incorrect",
        "incorrect","incorrect","incorrect","correct",
       "incorrect","incorrect","correct","incorrect"
    };

    string[] quizAnswers = new string[] { "correct", "correct", "correct", "correct" }; 

    public FrmQuestion2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Tutorial3 t3 = new Tutorial3();
        t3.Show(); 
    }

    private void FrmQuestion2_Load(object sender, EventArgs e)
    {
    }

    private void Sbutton_Click(object sender, EventArgs e)
    {
        try
        {
            if (i < questions.Length)
                i++;
            txtQuestion.Text = questions[i];

            RadA.Text = answers[a];
            a++;
            RadB.Text = answers[a];
            a++;
            RadC.Text = answers[a];
            a++;
            RadD.Text = answers[a];
            a++;
            Sbutton.Visible = true;
            Sbutton.Enabled = true;
            Sbutton.Text = "Submit"; 
           // Subutton.Visible = true;
           // Subutton.Enabled = true;

        }
        catch (Exception ex)
        {
            MessageBox.Show("Only 4 questions available: Your Score is: " + score + " You need at least a score of 3 to progress");
        }
        if (score >= 3)
        {
            nxtbutton.Visible = true;
            nxtbutton.Enabled = true;
        }
        else if (score < 3)
        {
            nxtbutton.Visible = false;
            nxtbutton.Enabled = false;
            RetryButton.Visible = true;
            RetryButton.Enabled = true; 
        }
    }

    private void Subutton_Click(object sender, EventArgs e)
    {
        try
        {
            if (getSelected().Equals(quizAnswers[i]))
            {
                MessageBox.Show("Correct");
                score++;

                txtScore.Text = Convert.ToString("Score:" + score);
                Subutton.Enabled = false; 
                Subutton.Visible = false;
                Sbutton.Visible = true;
                Sbutton.Enabled = true;
                Sbutton.Text = "Next";
            }
            else
            {
                MessageBox.Show("Incorrect");
                score--;

                txtScore.Text = Convert.ToString("Score:" + score);
                Subutton.Enabled = false;
                Subutton.Visible = false;
                Sbutton.Visible = true;
                Sbutton.Enabled = true;
                Sbutton.Text = "Next";
            }
        }
        catch (Exception ex) 
        {
            MessageBox.Show("Please start the quiz"); 

        }
    }

    string getSelected()
    {
        if (RadA.Checked)
            return RadA.Text.ToString();
        if (RadB.Checked)
            return RadB.Text.ToString();
        if (RadC.Checked)
            return RadC.Text.ToString();
        if (RadD.Checked)
            return RadD.Text.ToString();
        return "";
    }

    private void RetryButton_Click(object sender, EventArgs e)
    {
        this.Hide();
        FrmQuestion2 q2 = new FrmQuestion2();
        q2.Show(); 
    }

關於這個答案的一些假設...

我猜你的nextButton的click事件是Sbutton_Click(),還有一個submitButton的click事件是Subutton_Click()。

我不認為您的Sbutton_Click()事件不應該進行任何分數檢查,它應該只顯示下一個問題,是否有一個要顯示的問題。 您的Subutton_Click()可以檢查選定的答案,然后決定顯示nextButton或resultsButton,因為您的程序應該知道是否已回答了最后一個問題。

然后,當單擊結果按鈕時,您可以檢查並顯示分數,並確定是否顯示/啟用了重試按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM