OFPPT Office de la Formation Professionnelle et de la Promotion du ...

Examen de Passage, session Juillet 2012 ... Définir une classe Client dont les
caractéristiques sont : Code client, Raison sociale, Adresse, Tél, E-mail. (0,5 pt) ...

Part of the document


|[pic] | [pic] |
|OFPPT | |
| | Office de la Formation Professionnelle |
| |et de la Promotion du Travail |
Direction Recherche et Ingénierie de la Formation Examen de Passage, session Juillet 2012 Filière : Techniques de Développement Informatique
Epreuve : Pratique - V2-3
Niveau : TS
Durée : 4h30mn Barème : /20 pts
[pic]
Variante 6 Important : assurez-vous que tous les éléments de vos projets sont
sauvegardés dans un dossier portant votre nom et prénom et le numéro de la
variante de l'examen comme suit "NOM_PRENOM_Variante". 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 : 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) Date : ../../....
N° Facture :
.............
Raison sociale : .........
Adresse
: ...............................................................
...................
Réf. Intitulé Prix unitaire Qté. Facturée
Montant
..... .................... .............
........... .......... 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 :
[pic] 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