Énoncé

Transcription

Énoncé
625 – Programmation
TABLE Commande
− Cette table contient les informations de commandes (de clients) qui sont en attente. Ces
informations ont été récoltées par un site Internet d'achat en ligne. L'ordre des lignes de cette
table est quelconque.
Travaux pratiques – Série 10
Objectifs
− La table comprend une ligne par article (celui d'identifiant NoMateriel) commandé par un client
(celui d'identifiant NoClient) ; la quantité est mémorisée dans la colonne Quantite.
• Mettre en œuvre les concepts implantés par les classes de bibliothèque du package java.sql.
• Employer des outils fournis pour développer une application.
• Développer une application accédant à une base de données.
− Les informations enregistrées dans la table sont valides, c'est-à-dire que les numéros de client
et d'article existent dans leurs tables respectives. Vous ne devez donc pas vérifier cet état de
fait, car cette validité est garantie.
EXEMPLE D'OCCURRENCE DE Commande
Contexte
Une entreprise de vente de matériel informatique désire automatiser sa gestion des factures et des
commandes.
Voici un exemple d'occurrence de la table Commande ; à noter que cette table peut être vide,
c'est-à-dire ne contenir aucune ligne.
ƒ Considérons le MCD ci-dessous qui modélise le système de gestion des factures :
ƒ Modèle physique Access :
DONNÉES
Problèmes
− Le fichier FactureS10.mdb qui contient la base de données Access avec un jeu de test.
1. Écrire un programme qui, à partir d'un numéro de facture, affiche cette facture selon le modèle
de la page 4.
− Avec l'outil Panneau de configuration – Outil d'administration – Source de données ODBC,
définir une source utilisateur Access nommée FactureS10 (ou tout autre nom de votre choix – c'est
simplement le nom par lequel vous désignerez la base de données avec les outils JDBC).
Une table Commande, dans laquelle sont enregistrées des commandes de clients qui sont en
attente, a été ajoutée à cette base. Cette table a la structure décrite ci-dessous et n'a pas de lien
avec les autres tables.
2. Concevoir et rédiger une méthode statique créerFact() dont l'effet est de créer les factures
correspondant aux commandes enregistrées dans la table Commande.
Contraintes
− Une seule facture est créée pour chacun des clients référencés par la table. Ainsi, pour
l'occurrence de Commande représentée ci-dessus, on créera une facture pour le client 10078
et une facture pour le client 10079.
− L'identifiant attribué à la facture créée est obtenu en ajoutant 1 à la valeur retournée par la
méthode OutilsDivers.getLastKeyFact() fournie.
− La date de la facture est la date du jour.
− Les articles apparaissant dans la facture d'un client d'identifiant X sont définis par l'ensemble
des lignes de la table Commande dont la colonne NoClient a la valeur X.
625 Programmation - Peter DAEHNE
-1-
Version 2.1 – 07.12.2007
625 Programmation - Peter DAEHNE
-2-
Version 2.1 – 07.12.2007
− Les Exceptions susceptibles de survenir pendant l'exécution de la méthode créerFact()
ne sont pas traitées par créerFact() ; celles-ci sont transmises à la méthode appelante.
− À l'issue de l'exécution de la méthode créerFact(), l'ensemble des lignes de la table
Commande sont effacées.
Factures générées (La sortie produite par l'exécution du programme de test sur la base originale)
Facture n°1021
Genève, le 7 décembre 2007
− La connexion avec la source de données ODBC ainsi que la génération des identifiants pour les
factures créées sont effectuées en employant les outils fournis par la classe OutilsDivers.
CORGNIER Michel
Römerstrasse 14
4512 BELLACH
À faire
0. Définir la base de données fournie comme source de données ODBC nommée FactureS10.
1. Créer un programme complet d'affichage des factures ; le numéro de facture à afficher sera
fourni en paramètre de ce programme.
2. Compléter la méthode créerFact() de la classe CréerFactures fournie de telle sorte
qu'elle respecte les spécifications.
Sont fournis (dans le dossier Fourni)
− Le dossier Base contenant :
ƒ la base de données Access dans le fichier FactureS10.mdb ;
ƒ FactureS10Ok.mdb, un backup de la base de donnée ;
ƒ un fichier de commandes !RestoreBase.bat dont l'exécution a pour effet de rétablir la base
de données originale à partir du backup.
Nous avons le plaisir de vous adresser la facture ci-dessous.
Qté Libellé
8
1
1
1
4
4
4
8
4
2
− Sous forme binaire, la classe OutilsDivers, constituée des fichiers :
ƒ FactureInexistante.class, OutilsDivers.class et OutilsDivers$FormatLig.class.
ƒ connectODBC() qui établit une connexion avec une source ODBC et retourne cette
connexion ;
ƒ getLastKeyFact() qui retourne la valeur du dernier identifiant utilisé pour la table
Facture ;
ƒ afficher() qui affiche une facture sur la console Java – ce service n'est employé que par
le programme de test et vous n'aurez pas à l'utiliser.
Remarque : l'effet de cette méthode est identique à celui de la méthode principale du
programme que vous avez développé en 1.
− Le dossier Documentation contenant :
ƒ la documentation des classes fournies en binaire ;
ƒ un double-clic sur le fichier index.html permet d'afficher la documentation.
9'970.00
Facture n°1022
Genève, le 7 décembre 2007
SERGENT Catherine
Böllerainstrasse 13
8106 ADLIKON B. REGENSDORF
Nous avons le plaisir de vous adresser la facture ci-dessous.
− Le fichier CréerFactures.java qui est la classe Java source que vous devez compléter. Celle-ci
comprend une méthode main() qui effectue le test de la méthode créerFact() que vous
devez développer ; ce test consiste en l'invocation de la méthode créerFact() suivi de
l'affichage des deux factures que celle-ci a créées.
− Attention, avant chaque exécution d'un nouveau test, il est nécessaire de rétablir la base
de données dans son état original au moyen de la procédure décrite plus haut. En effet,
un fonctionnement correct de la méthode créerFact() a pour effet de supprimer toutes les
lignes de la table Commande.
Délai : le lundi 7 janvier 2008 à 12h00.
Qté Libellé
2
4
4
2
4
1
2
1
8
Prix unitaire
Pentium II Klamath 233 Mhz
Pentium II Asus P2L97S ATX & AGP
Intel Pentium 166 MMX + Refroidisseur Actif
AMD K6 166 MMX + Refroidisseur Actif
Intel Pentium 200 MMX + Refroidisseur Actif
ARISTO VX 512 Ko Cache
AMD K6 200 MMX + Refroidisseur Actif
Lucky Star VIA VPX 512 Ko PCI / ISA
Pentium II ASUS P2L97 ATX & AGP
Total à payer
Remarque : ce TP compte pour 2 dans le décompte final.
-3-
Total à payer
440.00
130.00
190.00
150.00
320.00
350.00
110.00
210.00
180.00
230.00
Payable à 30 jours avec nos remerciements.
− La classe OutilsDivers fournit les services suivants :
625 Programmation - Peter DAEHNE
Prix unitaire
Pentium II Asus P2L97S ATX & AGP
ARISTO VX 512 Ko Cache
Lucky Star VIA VP3 512 Ko Cache AGP !!
ARISTO Triton TX 512 Ko Cache
Pentium II ASUS P2L97 ATX & AGP
AMD K6 233 MMX + Refroidisseur Actif
Lucky Star VIA VPX 512 Ko PCI / ISA
AMD K6 166 MMX + Refroidisseur Actif
Intel Pentium 166 MMX + Refroidisseur Actif
Intel Pentium 200 MMX + Refroidisseur Actif
470.00
440.00
180.00
210.00
230.00
130.00
290.00
110.00
320.00
8'140.00
Payable à 30 jours avec nos remerciements.
Version 2.1 – 07.12.2007
625 Programmation - Peter DAEHNE
-4-
Version 2.1 – 07.12.2007