2017-10-05 8 views
-2

Ci-dessous le code pour un programme appelé "Addition Tutor". Le programme génère 2 nombres aléatoires et demande à l'utilisateur de répondre à l'addition des deux nombres aléatoires. Le problème est que chaque fois que je réponds correctement à la question, la boîte de message renvoie l'action else ("Incorrect"). Quel est le problème avec mon programme? Veuillez garder les réponses simples, mes connaissances et ma terminologie de programmation sont très limitées. Votre aide est grandement appréciée!Ajout Tutor Tutor ne fonctionne pas correctement *** lire la description ***

namespace Addition_Tutor 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 

      //Create a random object. 
      Random rand = new Random(); 
      { 
       //Declare an Integer 
       int number1; 

       //Generate a random integer and assign it to number1 
       number1 = rand.Next(400) + 100; 

       //Send random number to numberlabel1 
       numberLabel1.Text = Convert.ToString(number1); 
      } 
      { 
       //Declare an Int Variable 
       int number2; 

       //Generate a random integer and assign it to number2 
       number2 = rand.Next(400) + 100; 

       //Send random number to numberlabel2 
       numberLabel2.Text = Convert.ToString(number2); 
      } 
     } 

     private void checkButton_Click(object sender, EventArgs e) 
     { 

       //declare an Int Variable for Correct Answer 
       int correctAnswer; 
       correctAnswer = Convert.ToInt32("" + numberLabel1.Text + numberLabel2.Text); 

      //check to see if the userAnswer and correctAnswer match. 
      int userAnswer; 
      userAnswer = Convert.ToInt32(answerTextBox.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) 
     { 
      //clear the labels and textboxes. 
      numberLabel1.Text = ""; 
      numberLabel2.Text = ""; 
      answerTextBox.Text = ""; 
     } 

     private void exitButton_Click(object sender, EventArgs e) 
     { 
      //close the form 
      this.Close(); 
     } 
    } 
} 
+3

Alors dans quelle mesure avez-vous obtenu avec le diagnostic du problème vous-même? L'avez-vous exécuté dans un débogueur? Je suis sûr que vous trouverez le problème de cette façon. (Indice: qu'est-ce que vous attendez de Convert.ToInt32 ("" + "10" + "5") 'pour revenir? Ce n'est pas 15 ...) –

+4

(Notez que le temps passé à apprendre comment diagnostiquer les problèmes se rentabilisera beaucoup Je vous suggère de prendre un engagement envers vous-même pour trouver comment faire cela - vous économiserez énormément de temps à long terme.) –

+0

c'est le 8ème programme que j'ai créé depuis que j'ai pris l'initiative d'apprendre comment coder. Tous les problèmes que j'ai rencontrés avec mon code ont été diagnostiqués grâce à des recherches sur des questions similaires dans ce forum. Le morceau de code Convert.ToInt32 ("" + "10" + "5") a été utilisé à partir d'une autre question. – Relaxsingh

Répondre

0
correctAnswer = Convert.ToInt32("" + numberLabel1.Text + numberLabel2.Text); 

vous êtes "concatening" deux chiffres. Comme "1" + "2" = "12".

Vous devez les analyser en int avant de les additionner:

correctAnswer = int.Parse(numberLabel1.Text) + int.Parse(numberLabel2.Text); 
+0

Merci pour votre aide! – Relaxsingh