IFT 1170 Énoncé du T.P. #3 Session automne 2009 Chargé de cours: Michel Reid Préparation: chez-vous, à partir de la semaine du 9 novembre. Réalisation: durant vos démonstrations, les périodes de pratique libre (P.L.). Dépannage : par votre démonstrateur (lors des démonstrations), les surveillants des périodes de pratique libre. Questions sur le TP3 : envoyez un courriel à [email protected] Date de remise : jeudi 10 décembre. Pénalité de retard : Chaque jour de retard entraînera une pénalité de 10 points (sur 40) par jour. Note : Le travail en équipe de deux (au maximum) est permis. Vous ne remettez alors qu'un travail par équipe. Barème : corrigé sur 40 points. Assurez-vous d’avoir écrit vos coordonnées (nom et nom d’usager) ainsi que ceux de votre coéquipier (s’il y a lieu) en commentaires au début de chaque programme. Les équipes de 2 personnes ne doivent remettre qu’une seule copie du T.P. Les équipes de 3 étudiants et plus sont interdites. Le travail doit être remis en version électronique. Pénalité si vous ne faites pas de remise électronique : Pénalité si vous oubliez d’indiquez votre nom, ou celui de votre coéquipier - 40 points - 5 points Conseil amical N’attendez pas la semaine précédant la remise avant de commencer... vous n’aurez pas le temps! Comme il ne vous reste qu’environ 6 semaines avant Noël, vous décidez d’écrire un programme Java, utilisant des listes chaînées (LinkedList) pour gérer votre liste de cadeaux de Noël. Le traitement de votre programme est expliqué en 3 parties. Partie 1 ( Héritage) Voici la description de quelques classes dont vous aurez besoin : Cadeau : (classe abstraite) attributs : nom du produit prix de base méthodes : prixTotal : retourne un double, cette méthode est abstraite. equals : retourne true ou false selon que l’objet reçu en paramètre est identique au cadeau. toString : retourne une chaîne avec le nom du produit. IFT 1170 : Programmation JAVA et applications (TP3 : / 40 points, automne 2009) 1 Pers : attributs : prénom de la personne cadeau acheté (ou suggéré) méthodes : cout : retourne un double, le coût total (taxes et frais inclus) du cadeau. equals : retourne true ou false selon que l’objet reçu en paramètre est une personne ayant le même nom. toString : retourne une chaîne avec le prénom, le cadeau et le coût. Vous devez écrire 3 classes dérivées de Cadeau : CadeauGeneral : CadeauLivre : CadeauBillet : Un Cadeau dont le prix total est : prix de base + TPS + TVQ Un Cadeau dont le prix total est : prix de base + TPS Un Cadeau dont le prix total est : prix de base + frais + TPS + TVQ Note : Les frais, lorsque applicables sont de 7.50$. La TPS, est calculée comme suit : (prix de base + frais (s’il y a lieu)) * .05 La TVQ, est calculée comme suit : (prix de base + frais (s’il y a lieu) + TPS) * .075 Des méthodes supplémentaires seront nécessaires pour permettre les traitements des parties à venir. Partie 2 (Linked List et Fichier Texte) Votre programme devra utiliser 2 listes : listePers : Une liste contenant les personnes et le cadeau acheté. listeSuggestions : Une liste contenant les suggestions de cadeaux pour toutes les personnes. Pour remplir listeSuggestions, vous disposez du fichier suggestions.txt dont la structure est comme suit : Une suggestion par ligne : prénom (car. 0 à 9) type (car.10) : G pour général, L pour un livre ou B pour un billet de spectacle. prix de base (car.12 à 18) le nom du produit (la fin de la ligne) exemple de contenu du fichier : Marie Jean Valerie ... G B L 123.45 72.45 15.00 Imprimante HP Deskjet 7200 Canadiens de Montréal Harry Potter et les reliques de la mort IFT 1170 : Programmation JAVA et applications (TP3 : / 40 points, automne 2009) 2 La liste listePers sera remplie à partir de manipulations sur listeSuggestions. Partie 3 (Linked List et boîtes de dialogue) Après la lecture du fichier, vous affichez une boîte de dialogue affichant un menu comme suit : Selon le choix de l’usager, votre programme va : 1 : Afficher le contenu de la liste listeSuggestions dans la console (avec System.out.println) 4 : Afficher le contenu de la liste listePers dans la console. 5 : Se terminer 2 : Votre programme va d’abord afficher une boîte dialogue pour saisir le prénom de la personne comme suit : de Par la suite, le programme va chercher tous les éléments dans listeSuggestions correspondant à ce prénom et les afficher dans une boîte de dialogue semblable à celle-ci : IFT 1170 : Programmation JAVA et applications (TP3 : / 40 points, automne 2009) 3 Si le choix est 3, votre programme va d’abord afficher une boîte de dialogue pour saisir le prénom de la personne, ensuite, le programme va afficher, une après l’autre, les éléments de la liste listeSuggestions correspondant à ce prénom, dans une boîte de dialogue comme suit, tant que l’usager n’a pas répondu oui, et qu’il reste d’autres éléments pour ce prénom. Si l’usager répond oui à l’une de ces suggestions, votre programme va transférer l’élément correspondant dans la liste listePers, puis supprimer cet élément ainsi que tous les autres éléments correspondant à ce prénom de la liste listeSuggestions. Donc, un prénom peut se retrouver plusieurs fois dans listeSuggestions, mais une seule fois dans la liste listePers. Par contre, un prénom ne peut se trouver à la fois dans listeSuggestions et dans listePers. Barème de correction du TP3: 1. Classe Cadeau 2. Classe Pers 3. Classes dérivées (3 x 2 points) 4. Lire le fichier et remplir listeSuggestions 5. Affichage et traitement du menu 6. Traitements choix 1et 4 (2 x 2 points) 7. Traitement du choix 2 8. Traitement du choix 3 9. Traitement du choix 5 10. Commentaires : 5 points : 4 points : 6 points : 7 points : 1 point : 4 points : 4 points : 7 points : 1 point : 1 point Bonne chance et bon succès! Équipe du IFT 1170, automne 2009. IFT 1170 : Programmation JAVA et applications (TP3 : / 40 points, automne 2009) 4