一个用Additional指导用户的程序

时间:2018-10-05 04:09:03

标签: c#

enter image description here我正在创建一个C#应用程序,该应用程序会生成两个介于100到500之间的随机整数。数字应执行加法运算,使得

           247 + 129 = ?

该表单具有一个文本框,供用户输入问题的答案。单击按钮时,应用程序应执行以下操作:

检查用户的输入,并显示一条消息,指出是否正确的答案。 生成两个新的随机数,并在表单上的新问题中显示它们  添加一个名为“将分数保存到文件”的按钮。

单击时,此按钮应写出问题总数,正确答案的数量以及正确回答问题的百分比。

代码:

InitializeComponent();

        Random rand = new Random();
        {
            int number1;

            number1 = rand.Next(400) + 100;

            numberLabel1.Text = Convert.ToString(number1);
        }
        {

            int number2;

            number2 = rand.Next(400) + 100;
            numberLabel2.Text = Convert.ToString(number2);
        }
    }

    private void checkButton_Click(object sender, EventArgs e)
    {

        int correctAnswer;
        correctAnswer = int.Parse(numberLabel1.Text) + int.Parse(numberLabel2.Text);
        int userAnswer;
        userAnswer = Convert.ToInt32(userInputBox.Text);

        if (userAnswer == correctAnswer)
        {
            MessageBox.Show("Your Answer is Correct");
        }
        else
        {
            MessageBox.Show("Your Answer is Incorrect");
        }
    }
    private void clearButton_Click(object sender, EventArgs e)
    {

        numberLabel1.Text = "";
        numberLabel2.Text = "";
        userInputBox.Text = "";
    }

    private void exitButton_Click(object sender, EventArgs e)
    {

        this.Close();
    }

    private void answerBox_TextChanged(object sender, EventArgs e)
    {

               }
}

}

我的问题是:如何获得输出?该消息框未显示,我每次都正确回答问题。之后,如何生成两个新的随机数并将其显示在表单上的新问题中,请添加一个名为“将分数保存到文件”的按钮。

单击后,此按钮应写出问题总数,正确答案的数量以及正确回答问题的百分比。

3 个答案:

答案 0 :(得分:0)

  

生成两个新的随机数,并在表格中以新问题显示它们

只需复制粘贴即可完成您已经编写的工作的代码。通过方法进行操作会更好:

添加此方法:

private void GenerateNewQuestion()
{
       Random rand = new Random();
       {
            int number1;

            number1 = rand.Next(400) + 100;

            numberLabel1.Text = Convert.ToString(number1);
       }
       {

            int number2;

            number2 = rand.Next(400) + 100;
            numberLabel2.Text = Convert.ToString(number2);
       }
}

,然后在任何需要的地方使用它:

if (userAnswer == correctAnswer)
{
     MessageBox.Show("Your Answer is Correct");

     GenerateNewQuestion();
}
  

添加一个名为“将分数保存到文件”的按钮。

您无需在运行时为问题添加按钮。相反,您可以:

  1. 在表单上添加按钮
  2. 将其设置为可见属性错误

(您可以使用设计器完成此操作,也可以将saveScoreButton.Visible = false;添加到您的Form构造函数中)

  1. 在任何地方显示它

在您的情况下:

if (userAnswer == correctAnswer)
{
      MessageBox.Show("Your Answer is Correct");

      GenerateNewQuestion();
      saveScoreButton.Visible = true;
}
  

单击后,此按钮应写出问题总数,正确答案的数量以及正确回答问题的百分比。

您可以添加计数器以获取正确和错误的答案,然后使用它们:

将此添加到您的表单字段:

int totalNumberOfProblems = 1; //when the form is opened a question will be already asked
int correctAnswers = 0;
int wrongAnswers = 0;
在您的checkButton_Click中收到答案时,

增加correctAnswerswrongAnswers

if (userAnswer == correctAnswer)
{
      MessageBox.Show("Your Answer is Correct");

      GenerateNewQuestion();
      saveScoreButton.Visible = true;
      correctAnswers++;
      totalNumberOfProblems++;

}
else
{
      MessageBox.Show("Your Answer is Incorrect");
      GenerateNewQuestion();
      saveScoreButton.Visible = true;
      wrongAnswers++;
      totalNumberOfProblems++;
}

然后执行写入文件部分:

private void saveScoreButton_Click(object sender, EventArgs e)
{
    using (StreamWriter writer = new StreamWriter(@"C:\Users\Hüseyin\Desktop\saved scores.txt", true))
    {
        string text = $"Total number of problems: {totalNumberOfProblems-1}\r\nNumber of correct answers: {correctAnswers}\r\n";
        double ratio = (double)correctAnswers / (double)totalNumberOfProblems-1;
        text += $"Percentage: {ratio:P2}";
        writer.WriteLine(text);
        MessageBox.Show("File Saved");
    }
}

答案 1 :(得分:0)

private static Random rand = new Random();
private void checkButton_Click(object sender, EventArgs e)
{
    int num1 = rand.Next(400) + 100;
    int num2 = rand.Next(400) + 100;
    label1.Text = num1.ToString();
    label2.Text = num2.ToString();
    int correctAnswer = num1 + num2;
    int userAnswer = Convert.ToInt32(textBox1.Text);

        if (userAnswer == correctAnswer)
        {
            MessageBox.Show("Your Answer is Correct");
        }
        else
        {
            MessageBox.Show("Your Answer is Incorrect");
        }
}

答案 2 :(得分:-1)

[第一]

Console.WriteLine ( String.Format("Answer => " + userAnswer ) );

将在控制台窗口中显示

MessgeBox.Show( ( String.Format("Answer => {0}", userAnswer ) );

将其显示在MessageBox上。

我为您介绍了两种String.Format的使用方法:)

[第二]

您可以创建一个按钮来再次执行任务。

将生成的代码置于按钮功能下

[第三]

您需要研究StreamWriter