Tout d'abord, petite dédicace à mon prof d'info, je le remercie pour ses efforts pour me supporter

.
Nous passons à un mini-TP pour utiliser les évènements et ce que nous avons vu précédemment.
Cahier des charges
Bon, voici mes consignes : je voudrais que vous créiez un programme qui va calculer le coût de revient d'un voyage en voiture.
Il prendra en compte
- La consommation de la voiture (l/100km)
- le nombre de kilomètres
- le prix de l'essence (en euros)
Que l'utilisateur entrera dans des textbox et l'appui sur un bouton affichera le résultat.
Je ne sais pas quoi vous dire de plus ?
Non, n'insistez pas vous n'aurez pas la fonction qui calcule ce coût, c'est à vous de faire un peut marcher vos méninges, c'est aussi ça la programmation !
Et je veux que ce programme réagisse aussi aux utilisateurs qui s'amusent a entrer n'importe quoi

.
Bonne chance !
Correction
J'espère que vous avez trouvé tous seuls, je vous avais tout expliqués ! Bon je vous montre !
Tout d'abord les résultats :
Bon l'explication des objets : j'ai placé 3 textbox, une pour chaque valeur a entrer.
Leurs noms sont respectivement
TXT_CONSOMMATION, TXT_NBKM, TXT_PRIXESS.
Puis des labels pour expliquer à quoi elles correspondent (je n'ai pas donné de noms particuliers aux labels puisque je n'agirais pas dessus pendant le programme, alors autant laisser comme ils sont.
Ensuite je leur ai attribués une propriété
text, pour afficher le texte que vous voyez. Idem pour le titre sauf que j'ai modifié sa propriété
font size pour le grossir.
Côté bouton, son nom est
BT_CALCUL, j'ai écrit le texte "calculer" dedans.
Il reste 2 labels : un écrit en rouge qui est là pour les erreurs : j'ai caché ce label en utilisant la propriété
visible = false, je ne le ferai apparaître que lors des erreurs.
Le dernier est celui qui contiendra le résultat, j'ai nommé ...
LBL_COUT
Voilà pour ce qui est du design, passons au VB !
Secret (cliquez pour afficher)Code : VB.NET 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 | Public Class Form1
Private Sub BT_CALCUL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_CALCUL.Click
If Verification() Then
Me.LBL_COUT.Text = "Le cout du voyage sera de " & Calcul(Me.TXT_CONSOMMATION.Text, Me.TXT_NBKM.Text, Me.TXT_PRIXESS.Text) & "?"
Else
Me.LBL_ERR.Visible = True
End If
End Sub
''' <summary>
''' Verifie les 3 textbox de la page, regarde si elles sont remplies et si des nombres ont été entrés
''' </summary>
''' <returns>Vrai si pas d'erreur, faux si une erreur</returns>
''' <remarks></remarks>
Function Verification() As Boolean
Dim Bon As Boolean = True
If Me.TXT_CONSOMMATION.Text Is Nothing Or Not IsNumeric(Me.TXT_CONSOMMATION.Text) Then
Bon = False
End If
If Me.TXT_NBKM.Text Is Nothing Or Not IsNumeric(Me.TXT_NBKM.Text) Then
Bon = False
End If
If Me.TXT_PRIXESS.Text Is Nothing Or Not IsNumeric(Me.TXT_PRIXESS.Text) Then
Bon = False
End If
Return Bon
End Function
''' <summary>
''' Calcule le prix d'un voyage en fonction de la consommation, du prix de l'essence, et du nb de kilomètres
''' </summary>
''' <param name="Consommation">Consommation</param>
''' <param name="NbKm">Distance parcourue</param>
''' <param name="PrixEss">Prix du kérosène</param>
''' <returns>Le cout en double</returns>
''' <remarks></remarks>
Function Calcul(ByVal Consommation As Double, ByVal NbKm As Double, ByVal PrixEss As Double) As Double
Dim Cout As Double
Cout = ((NbKm / 100) * Consommation) * PrixEss
Return Cout
End Function
End Class
|
Examinons notre évènement : l'appui sur le bouton. Évènement que j'ai crée grâce à l'assistant, en double cliquant dessus.
Dans cet évènement j'utilise ma fonction Verification(), si le résultat est vrai, j'utilise ma fonction calcul() en lui passant comme arguments les valeurs des 3 textbox et j'écris le résultat sous la forme "Le cout du voyage sera de XX?".
Si la fonction Verification() renvoie faux, j'affiche le message d'erreur.
Passons donc aux fonctions :
La fonction Vérification(), cette fonction est spécifique à ce programme, je ne pourrai pas l'utiliser ailleurs, pourquoi ? Tout simplement car dedans j'accède à des objets qui sont sur cette feuille uniquement :
Code : VB.NET | Dim Bon As Boolean = True
If Me.TXT_CONSOMMATION.Text Is Nothing Or Not IsNumeric(Me.TXT_CONSOMMATION.Text) Then
Bon = False
End If
|
Ce code crée un booleen à true au début, il vérifie si le texte entré
is nothing donc est nul ou
not isnumeric() donc si ce n'est pas un numérique.
Si l'une de ces 2 conditions est présente (autrement dit une erreur lors de l'entrée des caractères), le booléen passe à false. Ce booléen est finalement retourné.
Passons à la fonction calcul, fonction qui effectue uniquement le calcul nécessaire, cette fonction pourra être réutilisée puisque elle a une forme universelle. Je m'explique : on lui passe les valeurs nécessaire et elle effectue le calcul, ce n'est pas elle qui va chercher les valeurs dans les textbox, donc on peut l'utiliser pour lui donner d'autres valeurs.
la ligne essentielle :
Code : VB.NET | Cout = ((NbKm / 100) * Consommation) * PrixEss
|
Pourquoi toutes les valeurs numériques que tu utilises sont en double ?
Eh bien parce que le type
integer ne prends pas en compte les virgules et donc dans un programme comme celui-ci le
double est nécessaire.
Voilà, j'espère que ce TP n'était pas trop dur !
Si vous n'avez pas le même code que moi, pas de panique ! Il y a une infinité de possibilité d'arriver au même résultat sans faire les mêmes choses.
Vous pourriez le faire évoluer ce programme par exemple
- Gérer un message d'erreur pour chaque txtbox
- Message d'erreur personnalisé (vide ou mauvaise valeur)
- Un bouton "effacer" qui remet à 0 toutes les valeurs et cache les message d'erreurs
Dites vous que ce programme est déjà très bien, il vous apprend à interagir avec les contrôles, utiliser les fonctions, arguments, retours et réaction à une possible erreur. Vous avancez vite !