13 juin 2012

Examen Passage Pratique 2012 - TDI - Variante 6

Examen Passage Pratique 2012 - TDI - Variante 6


Dossier 1 : (1,5 pts)
a. Ecrire un programme dans un langage structuré permettant de saisir trois entiers positifs a, b et c (c>0) et d’afficher tous les multiples de c compris entre a et b. Exemples :
      pour a = 3, b = 30 et c = 5, les nombres obtenus sont : 5, 10, 15, 20, 25, 30
      et pour a = 0, b = 45 et c = 13, les nombres obtenus sont : 0, 13, 26, 39. (1 pt)
b. Modifier le programme précédent pour avoir les effets suivants :
Afficher un nombre par ligne et chaque fois que 10 de ces nombres (multiples de c) sont affichés, le programme affichera le message suivant « Tapez ENTREE pour continuer ». Quand l’utilisateur tape la touche « ENTREE », l’écran s’efface et on obtient une autre partie de ces nombres (s’il en reste). Le dit message s’affiche encore quand tous ces nombres ont été affichés. (0,5 pt)

Dossier 2 : (15,75 pts)
L’objet de cette application est la gestion informatisée des factures de clients, Elle doit permettre de mettre à jour la quantité stock de chaque accessoire facturé.
Recommandation : utiliser des listes génériques (List<T> : listes typées) de préférence. Mais vous pouvez utiliser des ArrayList ou des Collections.
1. Classe Client.  
      a. Définir une classe Client dont les caractéristiques sont : Code client, Raison sociale, Adresse, Tél, E-mail. (0,5 pt)
      b. Ecrire un constructeur à deux paramètres : Code client, Raison sociale. (0,5 pt)
      c. Écrire un deuxième constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs et la méthode toString() qui renverra la Raison sociale et l’adresse du client séparés par un retour à la ligne. (0,75 pt)
2. Classe Accessoire. 
      a. Définir une classe Accessoire dont les caractéristiques sont Référence, Intitulé, Prix unitaire, Quantité stock. (0,5 pt)
      b. Choisir des types adaptés aux champs. (0,25 pt)
      c. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs. (0,5 pt)
      e. Écrire la méthode toString() qui renverra les informations de cet accessoire séparées par tabulation mais sans la quantité stock. (0,5 pt)
3. Classe Facture.
      a. Définir une classe Facture dont les caractéristiques sont : (1 pt)
- Numéro facture : le numéro de la 1ère facture créée est 3001 et à chaque création d’une nouvelle facture, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données + code) pour y arriver.
- Date Facture : Date où la facture a été envoyée à Fclient. 
- Fclient : c’est le client qui recevra cette facture.
- une liste des accessoires facturés et une liste des quantités facturées. Ces deux dernières listes doivent toujours avoir le même nombre d’éléments : à chaque accessoire facturé correspond une quantité facturée dans la 2ème liste (même indice).
      b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro facture et d’affecter la date système à Date facture. (0,75 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra le numéro facture, la date facture et la raison sociale séparés par tabulation. (0,5 pt)
d. Ecrire la méthode TotalFacture () qui retourne le coût global de la facture = Somme des (Prix unitaire * Quantité facturée) pour l’instance en cours. (0,5 pt)
      e. Ecrire la méthode AjouterAccessoire() ayant comme paramètres l’accessoire à facturer et la quantité facturée correspondante. Elle doit permettre la mise à jour de la liste des accessoires facturés, la liste des quantités facturées et la quantité stock de cet accessoire ajouté (Nouvelle quantité stock = Ancienne quantité stock - quantité facturée). (1 pt)
      f. Ecrire une méthode AfficherFacture() qui permet d’imprimer sur l’écran les détails d’une facture de la manière suivante : (1 pt)


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI -V6


Indication : Montant est une donnée calculée = Prix unitaire * Qté. Facturée
4. Programme principal 
      a. Déclarer une liste de clients, une liste d’accessoires et une liste de factures accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherClient() qui recherche un client par son code. Si trouvé, elle retourne le client correspondant dans la liste des clients. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherAccessoire() qui recherche un accessoire par son intitulé. Si trouvé, elle retourne l’accessoire correspondant dans la liste des accessoires. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherFacture() qui recherche une facture par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des factures. Sinon, elle retourne la valeur  1. (0,5 pt)
      e. Ajouter par code (en mode conception) trois clients à la liste des clients. (0,5 pt)
      f. Ajouter par code trois accessoires à la liste des accessoires. (0,5 pt)
      g. Ajouter par code deux factures à la liste des factures. La 1ère contenant un accessoire et la 2ème deux accessoires. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,5 pt)
      h. Concevoir le menu suivant : (en tenant compte des indications ci-dessous)
1- Ajouter client. (0,5 pt)
2- Ajouter accessoire. (0,25 pt)
3- Ajouter facture. (0,75 pt)
4- Rechercher facture par numéro facture. (0,5 pt)
5- Rechercher les factures passées à une date. (0,75 pt)
6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
      • Ajouter facture :
      - Le numéro de la nouvelle facture est automatiquement affecté par programme et la date facture correspond à la date système.
      - Saisir le code du client qui doit correspondre à un client de la liste des clients et si trouvé, le client ainsi trouvé correspond à Fclient de la facture à ajouter, sinon le programme vous demandera de saisir un autre code client.
      - Pour chaque accessoire facturé, l’utilisateur saisira son intitulé à chercher dans la liste des accessoires (même principe que celui du code client). Si trouvé, l’accessoire ainsi trouvé sera ajouté à la liste des accessoires de la facture en cours.
      - Chaque fois que l’intitulé saisi est trouvé, saisir la quantité facturée correspondante à l’accessoire trouvé. Cette dernière sera soustraite de la quantité stock de cet accessoire.
      - Après la saisie de la quantité facturée, le programme demandera à l’utilisateur s’il souhaite saisir un autre accessoire pour la facture en cours.
      • Rechercher facture par numéro facture : saisir le numéro de la facture. Si trouvé, imprimer la facture comme précisé dans la question 3. f (méthode AfficherFacture()).Sinon, afficher un message adéquat pour avertir l’utilisateur de l’inexistence de cette facture.
      • Rechercher les factures passées à une date : Imprimer la liste des factures (Numéro facture, Date facture, Raison sociale) dont la date facture est égale à la date saisie. Si aucune facture ne correspond à cette date saisie, afficher un message adéquat.

Dossier 3 : (2,75 pts)
Dans cette partie, vous ferez appel à la classe Accessoire du dossier 2.
Soit l’interface suivante :


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI - V6


1- Réaliser l’interface Facture ci-dessus. (0,5 pt)
2- Ecrire une méthode possédant 2 paramètres de type ListBox, permettant d’ajouter l’élément sélectionné de la première liste à la fin de la deuxième et de supprimer cet élément de la première. (0,5pt)
3- Ecrire la procédure événementielle pour qu’au démarrage de l’application, la 1ère ListBox de l’interface Facture ci-dessus, soit chargée par les noms des accessoires contenus dans une liste d’accessoires et dont les éléments sont eux aussi ajoutés automatiquement par code. (0,75 pt)
4- Ecrire le code du 1er bouton (>) : Si un accessoire de la 1ère ListBox est sélectionné, il sera ajouté à la 2ème et son prix unitaire sera ajouté au total. Sinon un message adéquat est affiché. Utilisez une liste d’accessoires pour contenir les accessoires relatifs à la 2ème ListBox. (0,5 pt)
5- Ecrire le code du 2ème bouton (<) : Si un accessoire de la 2ème ListBox est sélectionné, il sera ajouté à la 1ère et son prix unitaire sera soustrait du total. Sinon un message adéquat est affiché. (0,5 pt)

Aucun commentaire:

Enregistrer un commentaire