我正在创建一个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)
{
}
}
}
我的问题是:如何获得输出?该消息框未显示,我每次都正确回答问题。之后,如何生成两个新的随机数并将其显示在表单上的新问题中,请添加一个名为“将分数保存到文件”的按钮。
单击后,此按钮应写出问题总数,正确答案的数量以及正确回答问题的百分比。
答案 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();
}
添加一个名为“将分数保存到文件”的按钮。
您无需在运行时为问题添加按钮。相反,您可以:
(您可以使用设计器完成此操作,也可以将saveScoreButton.Visible = false;
添加到您的Form构造函数中)
在您的情况下:
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中收到答案时,增加correctAnswers
和wrongAnswers
:
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