在C#中的数组创建一个多项选择题测验 [英] Create a Multiple Choice Quiz with arrays in C#

查看:101
本文介绍了在C#中的数组创建一个多项选择题测验的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要创建使用字符串数组测验和运行的分数将显示,将有增加每答对一次减去每答错点一个点。我已经得到了第一个问题,工作正常,我只是不知道如何做到这一点在未来的。我只有这样所有的code关于第一个问题连接到按钮一次提交按钮。我该如何使它所以当你提交你的第二个答案它告诉你它的正确然后移动?
有人告诉我一个for循环将这项工作很好,但我不知道如何实现它。

  INT得分= 0;
INT I = -1;
INT A = 0;字符串[] =问题新的String [] {
    什么是9立方?
    什么是6 + 3?
    什么类型的动物是金枪鱼三明治做的?
    什么是18向后? };字符串[] =解答新的String [] {
9,81,729,2,4,2,
9,1,斑马,土豚,
鱼,GNU,31,
81,91,88};私人无效btnStart_Click(对象发件人,EventArgs的发送)
{
    如果(ⅰ&下; questions.Length)
    我++;
    //txtScore.Text =得分;    lblQuestion.Text =问题[I]    radA.Text =答案[A];
    一个++;
    radB.Text =答案[A];
    一个++;
    radC.Text =答案[A];
    一个++;
    radD.Text =答案[A];
    一个++;    btnStart.Visible = FALSE;
    btnStart.Enabled = FALSE;
    btnSubmit.Visible =真;
    btnSubmit.Enabled = TRUE;}私人无效btnSubmit_Click(对象发件人,EventArgs的发送)
{
    {
        如果(我== 0安培;&安培; radB.Checked)
        {
            MessageBox.Show(正确);
            得分++;
            txtScore.Text = Convert.ToString(分);
            btnSubmit.Enabled = FALSE;
            btnSubmit.Visible = FALSE;
            btnStart.Visible =真;
            btnStart.Enabled = TRUE;
            btnStart.Text =下一步;
        }        其他
        {
            MessageBox.Show(不正确);
            得分了 - ;
        }


解决方案

问题:
在这里,你有如下单选按钮B值硬codeD答案:

 如果(我== 0安培;&安培; radB.Checked)

这将只检查无线电按钮B答案,只会对第一个问题的工作。

你是不是继续对问题的其余部分这个过程。

解决方案:
我添加了一个strng阵列,它包含您的问题的所有测验答案。
因此,当用户preSS提交按钮,它会验证与各自的答案,并继续相同的过程,直到结束。

code如下:

  INT得分= 0;
INT I = -1;
INT A = 0;字符串[] =问题新的String []
{
    什么是9立方?,什么是6 + 3?
    什么类型的动物是金枪鱼三明治做的?
    什么是18向后?
};字符串[] =解答新的String [] {
   9,81,729,2,
   4,2,9,1,
   斑马,土豚,鱼,GNU
   31,81,91,88
};字符串[] = quizAnswers新的字符串[] {729,9,土豚,81};
私人无效btnStart_Click(对象发件人,EventArgs的发送)
{
    如果(ⅰ&下; questions.Length)
    我++;
    //txtScore.Text =得分;    lblQuestion.Text =问题[I]    radA.Text =答案[A];
    一个++;
    radB.Text =答案[A];
    一个++;
    radC.Text =答案[A];
    一个++;
    radD.Text =答案[A];
    一个++;    btnStart.Visible = FALSE;
    btnStart.Enabled = FALSE;
    btnSubmit.Visible =真;
    btnSubmit.Enabled = TRUE;}私人无效btnSubmit_Click(对象发件人,EventArgs的发送){
    如果(getSelectedAnswer()。等于(quizAnswers [I]))
    {
        MessageBox.Show(正确);
        得分++;
        txtScore.Text = Convert.ToString(分);
        btnSubmit.Enabled = FALSE;
        btnSubmit.Visible = FALSE;
        btnStart.Visible =真;
        btnStart.Enabled = TRUE;
        btnStart.Text =下一步;
    }    其他
    {
        MessageBox.Show(不正确);
        得分了 - ;
        txtScore.Text = Convert.ToString(分);
        btnSubmit.Enabled = FALSE;
        btnSubmit.Visible = FALSE;
        btnStart.Visible =真;
        btnStart.Enabled = TRUE;
        btnStart.Text =下一步;
    }
}
串getSelectedAnswer()
{
    如果(radA.Checked)
    返回radA.Text.ToString();
    如果(radB.Checked)
    返回radB.Text.ToString();
    如果(radC.Checked)
    返回radC.Text.ToString();
    如果(radD.Checked)
    返回radD.Text.ToString();
    返回;
}

I have to create a quiz using a string array and a running score will be displayed, there will be one point added for each correct answer and once point subtracted for each wrong answer. I've got the first question working fine I just don't know how to do it for the next ones. I only have one submit button so all the code for the first question is connected to that button. How do I make it so when you submit your second answer it tells you its correct then moves on? I have been told a for loop would work well with this but I don't know how to implement it.

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

string[] questions = new string[] { 
    "What is 9 cubed?", 
    "What is 6+3?", 
    "What type of animal is tuna sandwiches made from?", 
    "What is 18 backwards?" };

string[] answers = new string[] { 
"9", "81", "729", "2", "4", "2", 
"9", "1", "zebra", "aardvark", 
"fish", "gnu", "31", 
"81", "91", "88" };

private void btnStart_Click(object sender, EventArgs e)
{
    if (i < questions.Length)
    i++;
    //txtScore.Text = score;

    lblQuestion.Text = questions[i];

    radA.Text = answers[a];
    a++;
    radB.Text = answers[a];
    a++;
    radC.Text = answers[a];
    a++;
    radD.Text = answers[a];
    a++;

    btnStart.Visible = false;
    btnStart.Enabled = false;
    btnSubmit.Visible = true;
    btnSubmit.Enabled = true;

}

private void btnSubmit_Click(object sender, EventArgs e)
{
    {
        if (i == 0 && radB.Checked)
        {
            MessageBox.Show("Correct");
            score++;
            txtScore.Text = Convert.ToString(score);
            btnSubmit.Enabled = false;
            btnSubmit.Visible = false;
            btnStart.Visible = true;
            btnStart.Enabled = true;
            btnStart.Text = "Next";
        }

        else
        {
            MessageBox.Show("Incorrect");
            score--;
        }

解决方案

problems : here you have hardcoded answer with radio button b value as below:

if (i == 0 && radB.Checked)

it will only check answer with radio button b and it will only work for first question.

you are not continuing this process for rest of the Questions.

solution: i have added one strng array which contain all quiz answers for your questions. so when user press submit button it will verify with respective answer and continue the same process till the end.

code as below:

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

string[] questions = new string[]
{
    "What is 9 cubed?", "What is 6+3?", 
    "What type of animal is tuna sandwiches made from?",
    "What is 18 backwards?"
};

string[] answers = new string[] {
   "9", "81", "729", "2", 
   "4", "2", "9", "1", 
   "zebra", "aardvark", "fish", "gnu", 
   "31", "81", "91", "88"
};

string [] quizAnswers=new string[]{"729","9","aardvark","81"};
private     void btnStart_Click(object sender, EventArgs e)
{
    if (i < questions.Length)
    i++;
    //txtScore.Text = score;

    lblQuestion.Text = questions[i];

    radA.Text = answers[a];
    a++;
    radB.Text = answers[a];
    a++;
    radC.Text = answers[a];
    a++;
    radD.Text = answers[a];
    a++;

    btnStart.Visible = false;
    btnStart.Enabled = false;
    btnSubmit.Visible = true;
    btnSubmit.Enabled = true;

}

private void btnSubmit_Click(object sender, EventArgs e){


    if(getSelectedAnswer().Equals(quizAnswers[i]))
    {
        MessageBox.Show("Correct");
        score++;
        txtScore.Text = Convert.ToString(score);
        btnSubmit.Enabled = false;
        btnSubmit.Visible = false;
        btnStart.Visible = true;
        btnStart.Enabled = true;
        btnStart.Text = "Next";
    }

    else
    {
        MessageBox.Show("Incorrect");
        score--;
        txtScore.Text = Convert.ToString(score);
        btnSubmit.Enabled = false;
        btnSubmit.Visible = false;
        btnStart.Visible = true;
        btnStart.Enabled = true;
        btnStart.Text = "Next";
    }
}
string getSelectedAnswer()
{
    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 "";
}

这篇关于在C#中的数组创建一个多项选择题测验的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆