- IN220, TP n°5 -
Mon Super Journal Intime à moi

 


C'est l'anniversaire de votre petite nièce de 12 ans, et vous lui avez demandé ce qu'elle souhaitait pour son anniversaire... La charmante petite pré-ado vous a répondu, sur un ton assez dédaigneux (comme elle est mignonne) qu'elle voulait un Super Journal Intime Bratz pour son PC, que ça la changerait de vos cadeaux complètement nazes.

Etant donné que vous adorez cette petite, vous décidez de ne pas dépenser un centime pour son cadeau, et de programmer vous-même le journal intime...

 

  > Définir les structures qui seront utiles

Dans une première partie, nous allons définir les structures qui seront utiles à la suite de ce projet. Nous allons jouer un peu avec le programme afin de se faire une idée de quelles structures il faudra définir.

1) Téléchargez les fichiers du projet ici. Vous possédez alors deux fichiers, compilez le fichier Main.java, et exécutez le programme.

Dans la suite, vous n'aurez jamais besoin de regarder à l'intérieur du fichier MonJournalIntime.java.

2) L'interface qui s'affiche montre trois éléments : un champ de texte pour le message, un champ de texte pour le sujet, et un champ de texte pour la date. Vous voyez dans le main différentes fonctions qui permettent de modifier les champs. Essayez d'afficher un message de votre choix, avec le sujet que vous voulez, à la date que vous voulez (regardez les fonctions du fichier Main.java afin de comprendre comment y parvenir).

3) Dans la suite, vous devrez créer deux nouvelles structures : un structure Date, qui contiendra les données que vous jugerez nécessaires, et une structure MessageSecret qui contiendra aussi les données que vous jugerez nécessaires (un indice, la structure MessageSecret contient un champ de type Date).

Attention : vous aurez besoin de listes chaînées pour gérer correctement les messages du journal (étant donné qu'on pourra ajouter, supprimer, et parcourir les messages). Quelle structure devra être mise sous forme de liste chaînée ?

4) Ecrivez les fonctions NouvelleDate et NouveauMessageSecret (dans Main.java), qui permettent respectivement de créer une nouvelle structure de type Date et une nouvelle structure de type MessageSecret (réfléchissez bien aux paramètres des fonctions et à leur type de retour).


 

  > Parcourir les messages dans un sens...

Nous allons tout d'abord parcourir les messages dans un sens.

1) Dans la fonction Main du fichier Main.java, construisez une liste de cinq messages :

Sujet : Trop cool  | Message : Le prof d'algorithmique é tro génial | Date : le 9/03/2011, à 11h00
Sujet : Pas cool   | Message : Les Mac, cé tro nul                  | Date : le 6/02/2011, à 15h00
Sujet : Cool       | Message : Il est cool Fonzie                   | Date : le 7/02/2011, à 16h25
Sujet : Mon voisin | Message : Mon voisin de table est vraiment nul | Date : le 9/03/2011, à 13h30
Sujet : Le Java    | Message : J'adore le Java                      | Date : le 20/11/2010, à 11h10

Liez les messages, et testez (avec des affichages à l'écran) si votre liste fonctionne bien (vous pouvez désactiver, le temps des tests, l'affichage de la fenêtre à l'écran).

2) La fonction AfficherMessageSuivant est appelée à chaque fois que l'utilisateur appuie sur le bouton "Suivant". Faîtes en sorte qu'au début, le premier message de la liste soit affiché sur la fenêtre, et qu'à chaque fois que l'utilisateur appuie sur "Suivant", le message suivant de la liste soit affiché. Que faire losqu'on arrive au dernier message (à vous de décider en fait, mais faîtes en sorte que votre programme ne s'arrête pas subitement).

Attention : Vous ne pouvez pas modifier les paramètres de la fonction AfficherMessageSuivant, ni son type de retour. Si vous avez besoin de données supplémentaires, vous pouvez rendre certaines variables communes à toutes les fonctions en les déclarant hors de toute fonction.


 

  > ...et dans l'autre sens

1) La fonction AfficherMessagePrecedent est appelée à chaque fois que l'on appuie sur le bouton précédent. Comment implémenter cette fonctionnalité (devez-vous modifier votre structure de liste) ? Implémentez la fonctionnalité d'affichage des messages précédents et testez.


 

  > Implémenter les autres fonctions

On termine en implémentant toutes les fonctions demandées.

1) La fonction AfficherTousLesMessages est exécutée à chaque fois que le bouton correspondant est activé. Ecrivez le code de la fonction afin d'afficher, dans le champ de message principal de l'interface graphique, tous les messages, sujets et dates contenus dans la liste (ne rien mettre dans le champ date, et mettre "Affichage de tous les messages" dans le champ sujet).

2) Ecrivez le code de la fonction EffacerLeMessageCourant.

3) Ecrivez le code de la fonction AjouterUnMessage (des fonctions existent, dans Main.java, vous permettant de récupérer les données écrites dans l'interface graphique).


Maintenant que vous avez terminé de coder tout ça, votre chère nièce vous fait remarquer qu'un journal intime Bratz, c'est pour les bébés, et qu'elle préfèrerait un GPS Justin Bieber (suite au prochain TP).