[英]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.