我正在制作一个Addition Tutoring样本,但我找不到检查用户输入的方法。我知道有些方法可以对小事进行比较对比,例如,当学生的成绩为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();
}
但我希望能够检查用户的答案。有人会为我提供一个如何实现这一目标的方法吗?我将非常感谢任何人都能给我的暗示。
答案 0 :(得分: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.");
}
}
}
答案 1 :(得分: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!");
}
}
我假设您有一个名为txtAnswer
的TextBox,其中用户键入其答案,并点击一个名为Answer
的按钮以确认答案