• Aucun résultat trouvé

IFT 1175 - TP 2B Classe «Ballon»

N/A
N/A
Protected

Academic year: 2022

Partager "IFT 1175 - TP 2B Classe «Ballon»"

Copied!
3
0
0

Texte intégral

(1)

IFT 1175 / E05 Page 1 TP2B

IFT 1175 - TP 2B

Classe «Ballon»

Le TP 2 consiste à appliquer les notions vues à la partie A pour réaliser une application similaire utilisant ces mêmes outils. Vous devrez définir une classe d'objets de type «Ballon» ayant les caractéristiques suivantes.

- La propriété «Titre», en lecture-écriture, est un texte quelconque inscrit sur le ballon.

- La propriété «Couleur» est de type String et est aussi en lecture-écriture. Elle est limitée aux valeurs Bleu, Rouge, Jaune ou Vert représentées par l'initiale.

- La variable privée «varVolume» est inaccessible. La valeur de cette variable est un entier

«court» qui représente le volume actuel du ballon. Elle est nulle lors de la création du ballon.

- La propriété «Volume_Min» est en lecture. Elle ne peut être définie qu'une fois lors de la création du ballon et ne peut ensuite être modifiée. Elle représente le volume d’air minimal permettant à un ballon de voler.

- La propriété «Volume_Max» est aussi en lecture unique et définie lors de la création. Elle représente le volume d’air maximal au-delà duquel le ballon éclate. Valeur maximum : 1000 unités.

- La méthode «Gonfler» est la procédure de gonflement du ballon avec un volume entier donné UnVolume (positif entre 0 et 5 unités). Sa fonction est de modifier le volume courant du ballon de la quantité UnVolume.

- La méthode «Perte» est une procédure qui simule la perte de 1 unité de volume due à l'échappement des gaz.

- L'événement «Vole» survient au moment où le volume requis pour voler est atteint ou dépassé.

- L'événement «Chute» survient au moment où le volume requis descend sous la limite minimale.

- L’événement «Éclate» est déclenché lorsque le volume dépasse le volume critique.

- L'événement «Change» survient chaque fois que le ballon augmente (Gonfler) ou diminue (Perte) de volume et transmet en paramètre le nouveau volume.

- La méthode-constructeur «New» reçoit en paramètres le nom, la couleur et les volumes mimimum et maximum du nouveau ballon.

Feuille de test

On veut tirer profit de la classe définie ci-dessus (et la vérifier en même temps). On crée donc une feuille de travail (Form1) contenant les contrôles pour lancer et suivre l'évolution de 3 ballons simultanément. Entre autres, on trouve au bas de la feuille

(2)

IFT 1175 / E05 Page 2 TP2B

• un bouton de commande affichant «Lancer un ballon», dont la fonction est de lancer un nouveau ballon s'il y en a pas d'actif;

• une zone de liste contenant les couleurs acceptables pour les ballons;

• une minuterie devant fonctionner à chaque période de 3 secondes.

• un bouton «Souffler» et un scrollbar (H ou V) pour indiquer de combien d'unités on gonfle le ballon.

• un bouton «Quitter».

Si on clique sur «cmdLancer»,

A) on demande à l'utilisateur le titre et les volumes minimum et maximum de vol B) le label (lblStatut) indique «Au sol»,

C) un ballon est créé auquel on donne les caractéristiques définies par l'utilisateur (titre, couleur et limites de volume)

D) la minuterie est activée et son intervalle défini.

À interruption de la minuterie, la méthode «Perte» est appelée car le ballon «fuit».

Chaque fois que l'utilisateur appuie sur le bouton «Souffler», le ballon se gonfle de la valeur inscrite sur le Scrollbar. Le message du label devra indiquer en tout temps l'état du ballon tel que reçu par les événements : «Au sol» ou «En vol». Quand le ballon a éclaté, le message «Boom» s’affiche.

Notez qu’une fois que le ballon a éclaté, cet objet est immédiatement supprimé et on peut relancer un nouveau ballon. Mais auparavant, une collection doit recueillir l'historique de chaque ballon : son titre et le temps de sa dernière période de vol.

Au moment de quitter, une zone de texte (multiligne) listera cet historique dans l'ordre inverse de la durée. Il faudra pour ce faire utiliser une deuxième collection qui recevra les éléments de la première dans l'ordre désiré comme suit : on retire le «meilleur ballon» de la première collection et on le place dans la deuxième.

Suggestions

Commencez par gérer un seul ballon à la fois. Sur votre feuille, définissez et utilisez un bouton de commande «Lancer un ballon», une zone de liste des couleurs, un bouton «Souffler», une barre de défilement horizontale, une minuterie et une étiquette pour afficher les informations sur le ballon.

Définissez la classe «clsBallon» avec tous ses membres.

Vérifiez votre projet SANS activer la minuterie qui fait perdre de l'air au ballon. Ainsi, il est plus facile de contrôler la quantité d'air dans le ballon qui ne dépend que de l'activation du bouton

«Souffler» et des valeurs mises dans les propriétés Minimum et Maximum.

Pour les couleurs, il faut tenir compte que les couleurs «Black» (noir), «LightYellow» (jaune pâle),

«LightBlue» (bleu pâle), «Pink» (rose) et «LightGreen» (vert pâle) appartiennent à un objet nommé

«Color». Donc, l'énoncé «MonContr.BackColor = Color.Black» place le noir en arrière plan du contrôle.

(3)

IFT 1175 / E05 Page 3 TP2B

Portez une attention spéciale à la possibilité que l'utilisateur ne choisisse pas de couleur. Vous pourriez alors utiliser le bleu (ou autre) par défaut.

Pour mesurer le temps écoulé entre l'envol (événement «Vole) et la crevaison (événement «Éclate»), utilisez la méthode «DateAndTime.Timer» (remplace la fonction Time() de VB6) qui renvoie une valeur réelle double représentant le nombre de secondes (et de millisecondes) depuis minuit.. Le calcul de la durée peut être effectué dans la feuille ou dans la classe. Dans ce dernier cas, la valeur de la durée peut être passée en paramètre de l'événement «Éclate».

Pour créer «l'historique» des ballons», il suffit d'ajouter le titre et la durée du ballon (donc deux éléments à la fois) à la collection «1». Puis à la fin, pour transférer les données de la collection «1»

vers la collection «2», il suffit de vérifier les durées inscrites dans la collection (indices pairs) pour trouver la plus longue. Puis on ajoute les deux valeurs à la deuxième collection et en supprimant les deux valeurs transférées. On boucle jusqu'à épuisement de la liste de la collection «1».

Une fois que l'application fonctionne «1 ballon à la fois», vous pouvez ajouter les deux autres ensembles de contrôles : bouton «Gonfler», barre de défilement et label d'affichage. ATTENTION aux utilisateurs de VB6 : VB.NET ne supporte pas les groupes de contrôles. Vous ne pouvez donc pas avoir trois contrôles nommés «MonBouton».

Vous pouvez donc «copier-coller» toutes vos procédures définies pour votre premier «kit» et ajuster les contrôles du deuxième et troisième ballon. Chaque événement sera traité dans sa propre procédure.

Ou alors vous pouvez utiliser la clause «Handles» :

Sub Bouton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _

Handles Bouton1.Click, Bouton2.Click, Bouton3.Click

Pour savoir quel bouton a provoqué l'événement, il suffit de vérifier la valeur de «sender.name» ou «sender.Text».

Fin

Références

Documents relatifs

- frapper le ballon vers le ciel pour se donner du temps pour se déplacer, - se placer en cercle autour du ballon et le frapper en direction des autres, - frapper fort pour

Celui qui est appelé doit vite rentrer dans la ronde, et essayé d'attraper le ballon avant qu'il ne tombe par terre (au début on peut autoriser un ou deux rebonds).. On gagne si

Familiarisation avec l'environnement de travail. Exercices dirigés et réalisation du travail pratique no 1. ▫ Gestions d’erreurs et débogage. ▫ Programmation

Certains membres (propriétés, méthodes. événements) communs à plusieurs contrôles ont été modifiés, soit dans leur nom, soit dans leur fonctionnement.. • L'événement

Cocher oui, cocher non (CheckBox nommé chkCoche) : la case à cocher manque ici complètement de réaction car elle n’a pas été programmée… Il en va de même pour la bulle

Il «ajoute» le poste du premier employé dans la zone de liste déroulante, puis, pour chacun des autres employés (du deuxième au dernier), il n'ajoute le poste à la liste

[r]

Vous devrez définir une classe d'objets de type «Ballon» et utiliser cette classe pour manier des objets de ce type dans une application. Le