>> Électroniques Technologie >  >> Maison intelligente >> Vie intelligente

Comment créer une calculatrice avec Visual Basic

Microsoft Visual Basic est un langage de programmation basé sur le langage BASIC, développé à l'origine pour faciliter l'apprentissage de la programmation. Visual Basic prend les commandes familières de BASIC et ajoute des outils et des interfaces orientés objet pour concevoir des applications Windows et des contrôles Web de type WYSIWYG, parmi de nombreuses autres améliorations. Un projet d'apprentissage relativement simple pour Visual Basic est la création d'une calculatrice Windows.

Étape 1

Ouvrez Visual Basic 6 et sélectionnez "Standard EXE" dans le nouveau menu de projet. Vous verrez un formulaire vierge apparaître à l'écran.

Étape 2

Renommez votre projet et votre formulaire en cliquant sur "Projet1" sur le côté droit de l'écran, dans la liste des projets, et en entrant un nouveau nom dans la ligne "Nom" de la boîte Propriétés, qui devrait apparaître sous la liste des projets en défaut. Appuyez sur "Entrée" pour accepter le nouveau nom. Faites de même pour votre formulaire (un nom de formulaire suggéré est "CalculatorUI"), en veillant à saisir également un nom similaire dans la propriété "Caption", ce qui modifiera le texte dans la barre supérieure du formulaire. Enregistrez le projet dans un nouveau dossier sur votre ordinateur.

Étape 3

Ajoutez des boutons et une zone de texte au formulaire. Tout d'abord, ajoutez une zone de texte, qui sera l'endroit où les nombres entrés dans la calculatrice apparaîtront, ainsi que les résultats des calculs. Pour ce faire, sélectionnez le bouton TextBox dans la barre d'outils sur le côté gauche de l'écran, puis faites glisser avec votre souris la taille et l'emplacement souhaités pour le TextBox. Une fois que vous avez placé le TextBox, vous pouvez modifier la taille et l'emplacement en le faisant glisser vers un autre emplacement du formulaire ou en faisant glisser les poignées (les petits carrés) le long de la bordure du TextBox. Assurez-vous de modifier les lignes suivantes dans la fenêtre Propriétés, avec le TextBox sélectionné :"(Name)" =tbResult, "Alignment" =1- Right Justify, "Data Format" =(cliquez sur le bouton "..." pour sélectionnez) Nombre, "Verrouillé" =Vrai et "Texte" =0.

Étape 4

Sélectionnez l'icône CommandButton dans la barre d'outils et créez le premier bouton de la même manière que vous avez créé le TextBox pour ajouter des boutons. Pour référence, utilisez la calculatrice Windows dans la vue standard (Programmes> Accessoires> Calculatrice) comme base pour la disposition de votre calculatrice, en omettant les boutons « MC », « MR », « MS » et « M+ ». Sur chaque bouton, modifiez les propriétés suivantes (en utilisant le bouton "+" comme exemple) :"(Name)" =btnPlus, "Caption" =+. Faites de même pour le reste des boutons de la calculatrice, puis enregistrez votre travail. Votre formulaire devrait maintenant ressembler à l'exemple présenté ici.

Étape 5

Ajoutez le code. Notez que si vos boutons et votre zone de texte ne portent pas le même nom que le code indiqué ici, vous devrez modifier les noms pour qu'ils correspondent à vos boutons et à votre zone de texte, ou modifier vos boutons et votre zone de texte pour qu'ils correspondent à ce code. Nous devons d'abord créer quelques variables pour traiter l'entrée de la calculatrice :

Dim sLeft As String, sRight As String, sOperator As String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean

Chaque calcul se compose de quatre parties :un nombre à gauche de l'opérateur (sLeft, iLeft), un opérateur (sOperator), un nombre à droite de l'opérateur (sRight, iRight) et un résultat (iResult). Afin de savoir si l'utilisateur saisit le numéro de gauche ou de droite, nous devons créer une variable booléenne, bLeft. Si bLeft est vrai, le côté gauche du calcul est saisi; si bLeft est faux, le côté droit est saisi.

Étape 6

Initialisez la variable bLeft. Pour ce faire, nous créons une sous-routine Form_Load, que vous pouvez soit taper comme indiqué ici, soit créer automatiquement en double-cliquant sur n'importe quelle partie du formulaire non couverte par un bouton ou une zone de texte. Dans la fonction, nous devons définir bLeft sur True, car le premier nombre saisi sera la partie gauche :

Private Sub Form_Load() bLeft =True End Sub

Étape 7

Créez une sous-routine qui gérera le clic sur l'un des boutons numériques. Nous créons cela en tant que sous-programme car nous utilisons un code identique pour chaque bouton, et l'utilisation d'un sous-programme signifie ne pas avoir à répéter le même code dix fois. Entrez ce qui suit sous la ligne End Sub de la sous-routine Form_Load :

Private Sub AddNumber(sNumber As String) If bLeft Then sLeft =sLeft + sNumber tbResult.Text =sLeft Else sRight =sRight + sNumber tbResult.Text =sRight End If End Sub

Comme vous pouvez le voir, cette fonction prend un paramètre de chaîne, sNumber, qui contiendra le numéro sur lequel l'utilisateur a cliqué. Si bLeft est vrai, ce nombre est ajouté à la chaîne qui représente le nombre saisi, sLeft, et la zone de texte, tbResult, est mise à jour pour afficher le nouveau nombre. Si bLeft est faux, la même opération est effectuée en utilisant sRight à la place.

Enfin, créez une fonction d'événement Click pour chaque numéro qui appelle notre sous-routine AddNumber. Vous pouvez le faire facilement en double-cliquant sur chaque bouton numérique, ce qui créera la structure du sous-programme pour vous. Ajoutez ensuite l'appel à AddNumber, en remplaçant le numéro entre guillemets par le numéro associé au bouton. Pour le bouton zéro, votre code ressemblera à ceci :

Sous-titre privé btn0_Click() AddNumber ("0") End Sub

De même, pour le bouton unique, votre code ressemblera à ceci :

Sous-titre privé btn1_Click() AddNumber ("1") End Sub

Étape 8

Manipulez les opérateurs :plus, moins, fois et diviser. Nous ferons cela comme la dernière étape, en créant une sous-routine qui est appelée dans les événements Click pour les boutons de l'opérateur. La sous-routine ressemblera à ceci :

Private Sub AddOperator(sNewOperator As String) If bLeft Then sOperator =sNewOperator bLeft =False Else btnEquals_Click sOperator =sNewOperator sRight ="" bLeft =False End If End Sub

Si bLeft est vrai, ce qui signifie que l'utilisateur vient d'entrer la partie gauche du calcul, cette sous-routine définit la variable sOperator que nous avons créée à l'étape 5 pour qu'elle soit égale à l'opérateur entré, qui est transmis à AddOperator sous la forme de la chaîne sNewOperator. La deuxième étape consiste à définir bLeft sur False, car la saisie d'un opérateur signifie que l'utilisateur a fini de saisir le côté gauche de l'équation. Afin de gérer les entrées qui enchaînent plusieurs opérateurs, comme 9 * 3 * 2 * 6, nous devons également vérifier si bLeft est faux, ce qui signifie que l'utilisateur a entré un opérateur là où nous attendions un égal. Nous appelons d'abord l'événement Click pour le bouton égal (décrit à l'étape suivante), qui effectue le calcul et définit tbResult sur le résultat de ce qui a déjà été saisi. Ensuite, nous effaçons sRight pour que l'utilisateur puisse saisir le nombre suivant, et définissons bLeft sur False pour que le programme sache que nous entrons ensuite dans la partie droite du calcul.

Enfin, ajoutez un appel AddOperator à l'événement Click de chaque bouton d'opérateur, en utilisant la même méthode que celle utilisée à l'étape 7 pour créer les événements Click pour les boutons numériques. Votre code pour le bouton plus ressemblera à ceci :

Sous-titre privé btnPlus_Click() AddOperator ("+") End Sub

De même, le code du bouton moins ressemblera à ceci :

Sous-titre privé btnMinus_Click() AddOperator ("-") End Sub

Étape 9

Créez l'événement Click pour le bouton égal, qui est le code le plus complexe de ce programme. Créez la structure de la sous-routine comme vous l'avez fait pour les autres boutons, en double-cliquant sur le bouton égal de votre formulaire. Votre sous-programme ressemblera à ceci lorsque vous aurez saisi le code :

Private Sub btnEquals_Click() If sLeft <> "" And sRight ="" And sOperator <> "" Then sRight =sLeft End If

If sLeft &amp;lt;&amp;gt; "" And sRight &amp;lt;&amp;gt; "" And sOperator &amp;lt;&amp;gt; "" Then
 iLeft = sLeft
 iRight = sRight

 Select Case sOperator
 Case "+"
 iResult = iLeft + iRight
 Case "-"
 iResult = iLeft - iRight
 Case "/"
 iResult = iLeft / iRight
 Case "*"
 iResult = iLeft * iRight
 End Select

 tbResult.Text = iResult

 sLeft = iResult
 sRight = ""
 bLeft = True
End If

Fin du sous-titre

Les trois premières lignes de code vérifient si les deux côtés du calcul ont été entrés avec un opérateur. Si seuls le côté gauche et un opérateur sont entrés, la valeur du côté gauche est copiée vers la droite, nous pouvons donc imiter le comportement standard de la calculatrice pour gérer une entrée comme 9 * =, qui multiplie 9 par lui-même pour obtenir un résultat de 81. Le reste du code ne s'exécutera que si gauche, droite et opérateur sont entrés, et commence par copier les chaînes de nombres dans nos variables à double typage iLeft et iRight, qui peuvent effectuer les calculs réels. L'instruction Select Case nous permet d'exécuter un code différent en fonction de l'opérateur saisi et d'effectuer le calcul réel, en plaçant le résultat dans iResult. Enfin, nous mettons à jour la zone de texte avec le résultat, copions le résultat dans sLeft, réinitialisons sRight et définissons bLeft =True. Ces dernières lignes nous permettent de prendre le résultat du calcul et de l'utiliser pour effectuer un autre calcul.

Étape 10

Gérez les trois derniers boutons d'opération :sqrt, % et 1/x. Pour l'événement Click du bouton racine carrée, votre code ressemblera à ceci :

Private Sub btnSqrt_Click() If sLeft <> "" Then iLeft =sLeft Else iLeft =0 End If

If sRight &amp;lt;&amp;gt; "" Then
 iRight = sRight
Else
 iRight = 0
End If

If bLeft Then
 iLeft = Math.Sqr(iLeft)
 tbResult.Text = iLeft
Else
 iRight = Math.Sqr(iLeft)
 tbResult.Text = iRight
End If

If iLeft &amp;lt;&amp;gt; 0 Then
 sLeft = iLeft
Else
 sLeft = ""
End If

If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
Else
 sRight = ""
End If

Fin du sous-titre

Les 11 premières lignes de code garantissent que si aucune valeur n'est entrée pour l'un ou l'autre côté de l'équation, nous substituons zéro au lieu d'essayer de copier une chaîne vide dans iLeft ou iRight, ce qui générera une erreur. Les lignes médianes exécutent la fonction racine carrée sur la partie actuelle du calcul, soit à gauche, soit à droite. Enfin, nous inversons les vérifications que nous avons faites au début afin qu'un zéro soit copié en tant que chaîne vide dans sLeft et sRight.

Pour le bouton de pourcentage, le code est similaire, à une exception près :l'opération de pourcentage ne peut être effectuée que si les côtés gauche et droit sont saisis.

Private Sub btnPercent_Click() If Not bLeft Then If sRight <> "" Then iRight =sRight Else iRight =0 End If

iRight = iRight * (iLeft / 100)
 tbResult.Text = iRight

 If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
 Else
 sRight = ""
 End If
End If

Fin du sous-titre

Enfin, l'événement 1/x, ou fraction, Click, qui est très similaire au code ci-dessus :

Private Sub btnFraction_Click() If sLeft <> "" Then iLeft =sLeft Else iLeft =0 End If

If sRight &amp;lt;&amp;gt; "" Then
 iRight = sRight
Else
 iRight = 0
End If

If bLeft Then
 iLeft = 1 / iLeft
 tbResult.Text = iLeft
Else
 iRight = 1 / iRight
 tbResult.Text = iRight
End If

If iLeft &amp;lt;&amp;gt; 0 Then
 sLeft = iLeft
Else
 sLeft = ""
End If

If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
Else
 sRight = ""
End If

Fin du sous-titre

Étape 11

Ajoutez du code pour gérer les boutons C et CE. C efface toutes les entrées de la calculatrice, tandis que CE efface uniquement le nombre en cours de saisie.

Private Sub btnC_Click() sLeft ="" sRight ="" sOperator ="" tbResult.Text ="0" bLeft =True End Sub

Private Sub btnCE_Click() If bLeft Then sLeft ="" Else sRight ="" End If tbResult.Text ="0" End Sub

Étape 12

Exécutez votre programme de calculatrice et effectuez tous les calculs que vous souhaitez. Cette calculatrice peut être facilement étendue pour gérer plus d'opérations, des calculs plus complexes ou même pour être une calculatrice scientifique avec un peu de travail supplémentaire.

Astuce

Si vous rencontrez des erreurs, vérifiez votre code ligne par ligne, en vous concentrant sur les lignes que VB a appelées comme contenant des erreurs, et comparez-les au code ci-dessus. Le code contenu dans cet article a été entièrement testé pour être sans erreur, donc le copier fidèlement se traduira par un programme fonctionnel. Si vous utilisez une version précédente de Visual Basic, vous pouvez rencontrer des problèmes où des modifications ont été apportées à la langue d'une version à l'autre. Les versions précédentes de VB, par exemple, utilisaient Math.Sqrt() au lieu de Math.Sqr() pour effectuer une opération de racine carrée. Vérifiez les références de votre version spécifique pour voir si des modifications sont nécessaires.


Vie intelligente