obtenir l`énoncé

publicité
634.1 – Composants & Patterns Contrôle continu pratique de programmation du 27.05.2013 Modalités  Tout accès au réseau est formellement interdit.  Durée : 135 minutes.  Documentation : tous documents personnels, quel qu’en soit le support.  Il ne sera répondu qu’à des questions publiques et d’intérêt général lors d’une séance officielle qui aura lieu environ 30 minutes après le début du travail. Connexion et poste de travail  Nom d’utilisateur : NomMachine\heguser (exemple : si la machine est HEG868 : HEG868\heguser). Mot de passe : heguser  Les éléments fournis pour ce contrôle sont déjà installés dans le répertoire D:\Users\Prog634.1‐CC2 Vous y trouverez les projets NetBeans 634.1‐CC2‐QuestionQcm et 634.1‐CC2‐TestQuestionQcm que vous devez compléter.  Vous ne copierez aucun fichier personnel dans ce répertoire ; tous vos documents privés éventuels doivent être stockés ailleurs dans D:\Users.  Vous effectuerez le travail requis par ce contrôle exclusivement dans le répertoire D:\Users\Prog634.1‐CC2. Nous évaluerons uniquement le contenu des projets NetBeans 634.1‐CC2‐QuestionQcm et 634.1‐CC2‐TestQuestionQcm qui se trouvent en D:\Users\Prog634.1‐CC2. Énoncé 1. Concevoir un composant graphique my.awt.QuestionQcm représentant une question d'un QCM. La question est définie par un numéro et un libellé ; il y a 3 réponses possibles et une seule qui est correcte. Ce composant est construit en assemblant les composants suivants dans un java.awt.Panel : ‐ un java.awt.Label qui définit le numéro et le libellé de la question ; ‐ trois java.awt.Checkboxes (regroupées dans un java.awt.CheckboxGroup) qui sont les trois boutons radio définissant les trois réponses possibles ; ‐ un java.awt.Button permettant de valider la réponse. Au composant est associé le listener QuestionQcmListener qui rend compte des changements d’état du composant en déclenchant l’événement choixFait lorsque l’utilisateur a validé la réponse. La mémoire de l’événement est modélisée par la classe QuestionQcmEvent (voir spécifications du composant plus bas). 2. Réaliser une application de test qui vérifie le fonctionnement du composant développé. Spécifications du composant  Le numéro de la question et le libellé sont définis par des propriétés.  Les trois réponses possibles sont définies par des propriétés. Aucune réponse n’est sélectionnée.  Le numéro de la réponse correcte (1, 2 ou 3) est défini par une propriété.  Le bouton effectué. Peter DAEHNE & Johann SIEVERING est actif si et seulement si un choix de réponse a été  Lors de l’appui sur le bouton , l’événement choixFait est déclenché et le bouton ainsi que les trois boutons radio sont rendus inactifs. 1 / 3 Version 1.0 Propriétés  numero : Le numéro de la question.  libelle : Le libellé de la question. Le libellé de la réponse 1.  libRep1 : Le libellé de la réponse 2.  libRep2 : Le libellé de la réponse 3.  libRep3 :  numRepCorrecte : Le numéro de la réponse correcte. Le setter de cette propriété doit être conçu de telle sorte qu’on ait toujours 1  numRepCorrecte  3. Si le client ne respecte pas cette contrainte, le setter modifie la valeur affectée pour que la contrainte soit respectée, sans autre avertissement pour le client (ni message, ni Exception). Événement  L’événement choixFait est déclenché après appui sur le bouton . L’instance de QuestionQcmEvent transmise à choixFait mémorise le numéro de la question et une valeur boolean indiquant si le choix qui a été fait était correct ou non (true = choix correct, false = choix faux). Spécifications de l’application de test Le composant my.awt.QuestionQcm est mis en œuvre dans le cadre d’une application de test permettant d’en vérifier le fonctionnement (comportement, propriétés, événement). L’application consiste en un QCM constitué de deux questions. Tant que les deux questions ne sont pas validées, le texte « Test en cours … » est affiché. Dès que les deux choix ont été effectués, le résultat du test est affiché (0/2, 1/2 ou 2/2). Dans le cas où les deux réponses sont correctes, le message « Bravo ! » est également affiché. Les copies d’écran ci‐dessous définissent la maquette de la fenêtre que vous devez réaliser et présentent également quelques états possibles de cette fenêtre. Peter DAEHNE & Johann SIEVERING 2 / 3 Version 1.0 Éléments fournis  Le projet NetBeans 634.1‐CC2‐QuestionQcm qui contient le composant à développer. Le squelette de la classe à développer a déjà été défini et le design du java.awt.Panel a déjà été effectué.  Le projet NetBeans 634.1‐CC2‐TestQuestionQcm qui contient l’application de test. Le design de la fenêtre a déjà été effectué (sans les composants représentant les questions, bien sûr).  Le fichier texte Questions&Réponses.txt qui contient les libellés et les réponses des deux questions du programme de test. Vous pouvez ainsi ouvrir ce fichier avec un éditeur de texte et copier/coller ces libellés dans les propriétés des composants (cela vous évitera une dactylographie fastidieuse). À faire - Inscrivez vos nom et prénom ainsi que le numéro du poste de travail que vous occupez à l’endroit prévu à cet effet dans le commentaire d’entête des deux classes que vous devez compléter. - Inscrivez vos nom et prénom ainsi que le numéro du poste de travail que vous occupez dans le commentaire d’entête de toutes les classes supplémentaires que vous créez. - Implantez le composant my.awt.QuestionQcm en respectant les spécifications données plus haut. - Implantez l’application de test (classe presentation.TestQcm) en respectant les spécifications ci‐dessus. - Contraintes impératives :  Dans la classe my.awt.QuestionQcm, vous n’avez le droit de modifier ni la disposition des composants, ni leur visibilité, ni leur nom.  Dans la classe presentation.TestQcm, vous n’avez le droit de modifier ni la disposition des composants existants, ni leur visibilité, ni leur nom. Vous devrez par contre ajouter deux composants my.awt.QuestionQcm.  Tout au long du développement de votre application, vous mettrez en œuvre les conventions et les bonnes pratiques de programmation ainsi que les principes de la programmation objet que vous avez étudiés. Indication - Au cours du développement de l’application de test, assurez‐vous de toujours disposer de la dernière version du composant. Après d’importantes modifications du composant my.awt.QuestionQcm, n’hésitez pas à supprimer les composants de l’application de test avant de les remettre (vous êtes ainsi certains qu’il s’agit de la dernière version du composant qui est représenté dans l’IDE). Peter DAEHNE & Johann SIEVERING 3 / 3 Version 1.0 
Téléchargement