13 juin 2012

Examen Passage Pratique 2012 - TDI - Variante 5

Examen Passage Pratique 2012 - TDI - Variante 5

Dossier 1 : (1,5 pts)
a. Ecrire un programme dans un langage structuré permettant d’afficher tous les nombres compris entre 100 et 999 répondants au critère suivant : la somme de deux des trois chiffres qui composent ces nombres est égale au chiffre restant. Exemples de tels nombres : 101 (1+0=1), 286 (2+6=8), 268, 862, 633 (3+3=6). A l’exécution, les 5 premiers nombres affichés sont : 101, 110, 112, 121, 123…   (1 pt)
b. Modifier le programme précédent pour avoir les effets suivants :
Afficher un nombre par ligne et chaque fois que 15 de ces nombres 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 ventes de clients, Elle doit permettre de mettre à jour la quantité stock de chaque article vendu.
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 Article. 
      a. Définir une classe Article dont les caractéristiques sont Référence, Libellé, 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 article séparées par tabulation mais sans la quantité stock. (0,5 pt)
3. Classe Vente.
      a. Définir une classe Vente dont les caractéristiques sont : (1 pt)
- Numéro vente : le numéro de la 1ère vente créée est 5001 et à chaque création d’une nouvelle vente, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données + code) pour y arriver.
- Vclient : c’est le client qui a reçu les produits vendus.
- Date Vente : Date où a eu lieu cette vente au profit de Vclient.
- une liste des articles vendus et une liste des quantités vendues. Ces deux dernières listes doivent toujours avoir le même nombre d’éléments: 
à chaque article vendu correspond une quantité vendue 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 vente et d’affecter la date système à Date vente. (0,75 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra le numéro vente, la date vente et la raison sociale séparés par tabulation. (0,5 pt)
      d. Ecrire la méthode TotalVente () qui retourne le coût global de la vente = Somme des (Prix unitaire * Quantité vendue) pour l’instance en cours. (0,5 pt)
      e. Ecrire la méthode AjouterArticle() ayant comme paramètres l’article à vendre et la quantité vendue correspondante. Elle doit permettre la mise à jour de la liste des articles vendus, la liste des quantités vendues et la quantité stock de cet article ajouté (Nouvelle quantité stock = Ancienne quantité stock - quantité vendue). (1 pt)
      f. Ecrire une méthode AfficherVente() qui permet d’imprimer sur l’écran les détails d’une vente de la manière suivante : (1 pt)


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


Indication : Montant est une donnée calculée = Prix unitaire * Qté. Vendue
4. Programme principal
      a. Déclarer une liste de clients, une liste d’articles et une liste de ventes 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 rechercherArticle() qui recherche un article par son libellé. Si trouvé, elle retourne l’article correspondant dans la liste des articles. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherVente() qui recherche une vente par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des ventes. 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 articles à la liste des articles. (0,5 pt)
      g. Ajouter par code deux ventes à la liste des ventes. La 1ère contenant un article et la 2ème deux articles. 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 article. (0,25 pt)
            3- Ajouter vente. (0,75 pt)
            4- Rechercher vente par numéro vente. (0,5 pt)
            5- Rechercher les ventes passées à une date. (0,75 pt)
            6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
      • Ajouter vente :
- Le numéro de la nouvelle vente est automatiquement affecté par programme et la date vente 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 à Vclient de la vente à ajouter, sinon le programme vous demandera de saisir un autre code client.
- Pour chaque article à vendre, l’utilisateur saisira son libellé à chercher dans la liste des articles (même principe que celui du code client). Si trouvé, l’article ainsi trouvé sera ajouté à la liste des articles de la vente en cours.
- Chaque fois que le libellé saisi est trouvé, saisir la quantité vendue correspondante à l’article trouvé. Cette dernière sera soustraite de la quantité stock de ce produit.
- Après la saisie de la quantité vendue, le programme demandera à l’utilisateur s’il souhaite saisir un autre article pour la vente en cours.
      • Rechercher vente par numéro vente : saisir le numéro de la vente. Si trouvé, imprimer la vente comme précisé dans la question 3.f (méthode AfficherVente()).Sinon, afficher un message adéquat pour avertir l’utilisateur de l’inexistence de cette vente.
      • Rechercher les ventes passées à une date : Imprimer la liste des ventes (Numéro vente, Date vente, Raison sociale) dont la date vente est égale à la date saisie. Si aucune vente ne correspond à cette date saisie, afficher un message adéquat.

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


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


1- Réaliser l’interface Vente 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 Vente ci-dessus, soit chargée par les noms des articles contenus dans une liste d’articles 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 article 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’articles pour contenir les articles relatifs à la 2ème ListBox. (0,5 pt)
5- Ecrire le code du 2ème bouton (<) : Si un article 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