TP3 : Décaleur (Héritage)


But:
L'applet suivante qui permet d'afficher le message saisi dans un bandeau défilant à la taille saisie. Le troisième champs permet de saisir le temps de pause entre deux décalages en milliseconde.
a) Le décaleur:
Cet objet stocke une suite de L caractères (L>0). L est appelé largeur du décaleur. Initialement le décaleur comprend L espaces mais peut-être modifié par le constructeur. Il comprend 4 fonctionnalités et 2 constructeurs:
- Decaleur() et Decaleur(int largeur)
- getLargeur : retourne la largeur du décaleur.
- raz : remplace tous les caractères par des espaces.
- decale : décalage vers la gauche de sa suite de caractères. Le caractère le plus à gauche de la suite est supprimé et retourné par la méthode. Le caractère le plus à droite est remplacé par le paramètre de la méthode.
- ToString :retourne sous forme de string le contenu de la suite de caractères.
Ecrire la classe au format UML et la coder en C#. Tester la classe tout de suite.
Exemple d'IHM après saisie de 5 A, 2 B et 1 C :
b)Les afficheurs lumineux :
Il ne peut afficher qu’un nombre N de caractères. Il possède un décaleur et un message à afficher (celui-ci peut-être supérieur ou inférieur au décaleur, mais pas nul). Le message défile dans l’afficheur en se décalant vers la gauche à chaque top (une seconde).L’affichage bouclera alors. Il comporte trois méthodes et deux constructeurs :
- Afficheur( )et Afficheur(string message, int taille) : taille du décaleur
- void setMessage(string message)
- String ToString() : retourne sous forme de string ce qui doit être affiché
- top() : décale ce qui doit être affiché.
Pour tester, il faudra utiliser les deux cas possibles : le message est plus petit que l’afficheur ou le message est plus grand que l’afficheur :
Afficheur afficheur = new Afficheur("Bonjour le monde",20);
Afficheur afficheur = new Afficheur("Bonjour le monde",6);
Ecrire les classes au format UML et les coder en C#. Tester la classe tout de suite
c) Afficheurs latents
On remarque dans l’exercice précédent qu’il est difficile de faire la différence entre la fin du message et le début du réaffichage. Pour éviter ce problème, on désire un autre type d’Afficheur, AfficheurLatent qui dérive de Afficheur et qui séparera de blancs les deux messages. Elle aura un nouveau constructeur (rajoutant le nombre de blancs)
- public AfficheurLatent(string message,int taille,int nbSpace)
Exemple d'IHM :
Remarque :
- Faire attention à la visibilité de la string (changer de private en protected).
- Incorporer un composant Timer dans la Form. Double cliquer dessus. La méthode timer_Tick est envoyée toutes les n us. Dans le bouton validation, initialiser le timer et démarrer le.
Aide
- Ecrire les classes au format UML et les coder en C#.
- Tester le résultat final.

