1

我正在制作一个加法辅导示例,但我找不到检查用户输入的方法。我知道有一些方法可以对一些小事情进行比较对比,例如,当学生的成绩为 90-100 时,也许你可以应用一个MessageBox.Show表明该学生的成绩在大多数情况下被视为 A 的方法。但是,当您检查加法的总和时,我无法弄清楚使用哪种尝试。就像,下面的代码片段会为用户产生新的问题。

private void Newproblem_Click(object sender, EventArgs e)
{
  Random Numbers = new Random();
  int number1;
  int number2;
  int Sum;

  number1 = Numbers.Next(400) + 101;
  number2 = Numbers.Next(400) + 101;
  theproblemLabel.Text = number1 + "  +  " + number2.ToString();
}

但我也希望能够检查用户的答案。有人会为我提供如何实现这一目标的方法吗?我将非常感谢任何人可以给我的任何提示。

4

2 回答 2

3

更好的方法是对问题使用一个文本框,对答案使用另一个文本框。

顺便说一句,如果您以前使用过属性,则可以使用属性:ReadOnly并将其设置为 true,因此用户无法修改问题。

不同情况下的布局: 不是数字 不正确 正确的

例子:

//Declare variables so you can use them globally
int number1, number2, sum, userSolution;
Random numbers;

private void btnProblem_Click(object sender, EventArgs e)
{
  numbers = new Random();
  number1 = numbers.Next(400) + 101;
  number2 = numbers.Next(400) + 101;

  sum = number1 + number2;
  txtProblem.Text = number1 + "  +  " + number2;
}

private void btnSolution_Click(object sender, EventArgs e)
{
  // You try to parse the text to a integer,
  // if it works its stored in userSolution,
  // If it fails, it shows the messagebox
  if (!int.TryParse(txtSolution.Text, out userSolution))
  {
    MessageBox.Show("Input is not a valid number.");
  }
  else
  {
    // Check user solution and compare it to the sum
    if (userSolution == sum)
    {
      MessageBox.Show("Correct!", "Problem Solved!");
    }
    else
    {
      MessageBox.Show("Not Correct.", "Please try again.");
    }
  }
}
于 2013-03-09T21:29:15.267 回答
1

您可以将答案存储在文本框的 Tag 属性中

number1 = Numbers.Next(400) + 101;
number2 = Numbers.Next(400) + 101;
int answer = number1 + number2;

theproblemLabel.Text = string.Format("{0} + {1}", number1, number2);
theproblemLabel.Tag = answer;

然后,当用户单击按钮以确认其答案时,您检查存储的标签

private void Answer_Click(object sender, EventArgs e)
{
  int userAnswer;
  if(!Int32.TryParse(txtAnswer.Text, out userAnswer))
    MessageBox.Show("Please enter a number!");
  else
  {
    if(userAnswer == Convert.ToInt32(theproblemLabel.Tag))
      MessageBox.Show("Correct answer!");
    else
      MessageBox.Show("Wrong answer, try againg!");
  }
}

我假设您有一个名为 TextBoxtxtAnswer的用户输入答案的地方,以及一个名为Answerclicked 的按钮以确认答案

于 2013-03-09T21:14:33.537 回答