24 juin 2011

Examens de Passage Pratique TDI 2011 Variante 9

Examens de Passage Pratique TDI 2011 Variante 9


Partie 1 : Programmation structurée

Exercice 1 : (5 pts)
Soit la suite numérique définie par            

EP - Examens de Passage Pratique TDI 2011 V7-V8-  V9
EP - Examens de Passage Pratique TDI 2011 V9

Ecrire un programme qui calcule la valeur numérique du polynôme de degré n :



EP - Examens de Passage Pratique TDI 2011 V7-V8-  V9
EP - Examens de Passage Pratique TDI 2011 V9


Pour un couple (x , n) donné par l’utilisateur.

Exercice 2 : (4 pts)
Un nombre parfait est un nombre entier naturel qui est égal à la somme de ses diviseurs stricts ; c à d, ses diviseurs entiers positifs, autres que lui même.
Le premier nombre parfait est 6, puisque la somme de ses diviseurs stricts 1, 2 et 3 est égale à 6 (1 + 2 + 3 = 6).
Ecrire un programme qui cherche tous les nombres parfaits inférieurs à une limite donnée par l’utilisateur.

Exercice 3 : (6 pts)
Ecrire un programme qui permet de trouver les couples de nombres amis inférieurs à une limite, donné par l’utilisateur.
Deux nombres sont dits « amis » si la somme des diviseurs stricts de l'un est égale à l'autre et inversement.
C’est le cas, par exemple, de 220 et 284, puisque :
220 a pour diviseurs : 1, 2, 4,5, 10, 11, 20, 22, 44, 55, 110 (somme=284) ;
et 284 a pour diviseurs : 1, 2, 4, 71 et 142 (somme=220).

Partie 2 : Programmation orientée objet

L’objectif de cette application est de gérer l'inventaire par un suivi des flux d'équipements (création, modification, sortie) et gérer les équipements durant toute leur durée de vie en terme de planifications d'entretien et de remplacement (maintenance) et disponibilité d'équipement (prêt, utilisation multiple, etc.).
1. Créer une classe abstraite Equipement caractérisée par son code, date d’acquisition, Etat (opérationnel ou non), prix d’achat et durée de garantie. Ajouter un constructeur à 2 paramètres : code et Etat et des accesseurs pour tous les champs. Ajouter une méthode toString() qui renvoie les informations sur l’équipement sous forme d’une chaine de caractère. (2 pts)
2. Crée une classe Ordinateur qui hérite de la classe Equipement, elle aura comme caractéristiques supplémentaires : une marque et taille de l’écran. Ecrire le constructeur correspondant ainsi que sa méthode toString() qui renvoie les informations sur l’équipement sous forme d’une chaine de caractères. (2 pts)
3. Crée une classe Téléphone qui hérite de la classe Equipement, elle n’aura aucune caractéristique supplémentaire. Ecrire le constructeur correspondant ainsi que sa méthode toString() qui renvoie les informations sur l’équipement sous forme d’une chaine de caractères. (2 pts)
4. Crée une classe Imprimante qui hérite de la classe Equipement, elle aura comme caractéristiques supplémentaires une marque et un numéro de série. Ecrire le constructeur correspondant ainsi que sa méthode toString() qui renvoie les informations sur l’équipement sous forme d’une chaine de caractères. (2 pts)
Une administration se compose de plusieurs sites, une fiche d'inventaire est établie pour chaque site, un site est caractérisé par un code, description, et une liste des équipements.
5. Classe Site (6pts)
     a. Créer une classe Site, écrire le constructeur correspondant ainsi que sa méthode toString() qui renvoie le code et le description de site ainsi que le nombre d’équipements sans forme d’une chaine de caractères. (1 pt)
     b. Ajouter une méthode AjouterEquipenent qui permet d’ajouter un équipement (ordinateur, Téléphone ou Imprimante)  à la liste de ce site. (1 pt)
     c. Ajouter une méthode RechercheEquipement qui permet de rechercher les équipements achetés à une date passée comme paramètre. (2 pts)
     d. Ajouter une méthode FicheInventaire qui affiche la liste des équipements de ce site. (1 pt)
     e. Ajouter une méthode SupprimerEquipement qui permet de supprimer un équipement  par code. (1 pts)
6. Classe Administration (11 pts)
     a. Créer une classe Administration qui se caractérise par un nom, adresse, téléphone et une liste des sites. Ecrire le constructeur correspondant ainsi que sa méthode toString() qui renvoie le nom de l’administration  ainsi que le nombre des sites sous forme d’une chaine de caractères. (2 pts)
     b. Ajouter une méthode AjouterSite  qui permet d’ajouter un site. (2 pts)
     c. Ajouter une méthode RechercheEquipement qui permet de rechercher les équipements qui ont plus de 5 ans. (1 pt)
     d. Ajouter une méthode EquipementNonOpérationnel qui recherche et affiche les codes Site et les codes d’équipements non opérationnels et qui sont encore sous garantie. (1,5 pts)
     e. Créer une classe d’exception EquipementException. (1,5 pts)
     f. Ajouter une méthode SupprimerSite qui permet de supprimer un site par code et de lever l’exception définie dans la question e) s’il existe déjà un équipement dans  la liste d’équipement de ce site (la liste des équipements doit être vide avant de supprimer un site). (1,5 pts)
     g.  Ajouter une méthode Exporter qui permet de sauvegarder les données de l’application dans un fichier. (1,5 pts)

Partie 3 : Programmation événementielle

Soit à développer une application de gestion de stock. Le stock est composé de plusieurs articles. Un article est caractérisé par :
     • numéro de type entier,
     • son nom de type chaine de caractère,
     • sa famille de type chaine de caractère,
     • son prix d’achat de type réel,
     • son prix de vente de type réel,
     • et sa quantité dans le stock de type entier.
1- Créer la classe Article avec ses attributs et constructeurs nécessaires. (2 pts)
2- Ajouter dans le projet une collection d’objets Article afin de gérer les articles. (2 pts)
3- Créer une interface avec des boutons de navigation (Premier      • Précédent      • Suivant      • Dernier) qui permettent de consulter les informations des articles qui existent. (4 pts)
4- Ajouter à cette interface un bouton Nouveau qui permet de vider des champs pour entrer les informations d’un nouvel article et un bouton  Ajouter qui permet d’ajouter cet article dans la collection. Si l’utilisateur saisie un prix de vente qui est inferieur au prix d’achat, l’article ne doit pas être ajouté et on doit lui afficher une boite de dialogue en l’informant que le prix de vente est inferieur au prix d’achat. (3 pts)
5- Ajouter un bouton Modifier qui permet d’enregistrer les modifications sur l’article en cours. (2 pts)
6- Ajouter un bouton supprimer qui permet de supprimer l’article en cours avec confirmation. (2 pts)
7- Créer une Interface qui affiche les articles en rupture de stock. (2 pts)
8- Créer une interface de simulation de vente : on choisi l’article d’une liste déroulante et on indique la quantité. Le programme affiche dans un Libellé le prix à payer et le gain = (prix de vente – prix d’achat)* quantité. (3 pts)

21 juin 2011

Examens de Passage Pratique 2011 - TDI - Variante 6

Examens de Passage Pratique 2011 - TDI - Variante 6



Partie 1 : Programmation Structurée

1. Ecrire un programme en C ou équivalent permettant de compter le nombre de puissances successives (inférieurs à 1000) d’un nombre entier donné par l’utilisateur, puis de les afficher du plus grand au plus petit. (5 pts)
Rappel : Les puissances successives de 2 sont : 20 = 1, 21 = 2, 22 = 4, 8, 16, 32, 64, 128…
Exemple d’exécution :


EP - Examens de Passage Pratique 2011 V1-V2-V3 - TDI
EP - Examens de Passage Pratique 2011 V6 - TDI


Ecrire un programme en C ou équivalent permettant de saisir un tableau de 10 valeurs entières, et d’ajouter à l’ensemble des éléments du tableau la valeur du nème élément du tableau, n étant saisi par l’utilisateur. (4 pts)
Exemple d’exécution :


EP - Examens de Passage Pratique 2011 V1-V2-V3 - TDI
EP - Examens de Passage Pratique 2011 V6 - TDI


3.
     a- Ecrire une fonction nommée « puissance(x,y) » permettant de retourner xy, avec x et y des réels passés en paramètres . (2 pts)
     b- Ecrire un programme qui utilise la fonction « puissance» de la question a) pour calculer la somme :
1/x0 + 1/x1 + 1/x2 + … + 1/xn pour x réel donné et n entier donné saisis au clavier. (4 pts)
Exemple d’exécution :


EP - Examens de Passage Pratique 2011 V1-V2-V3 - TDI
EP - Examens de Passage Pratique 2011 V6 - TDI

Partie 2 : Programmation Orientée Objet

L’objet de cette application est la gestion informatisée du cabinet médical, Elle doit procéder à la gestion informatisée des dossiers médicaux des patients et elle s'occupe également de la gestion des rendez-vous et des visites.
1. Classe Patient. (2,5pts)
     a. Définir une classe Patient dont les caractéristiques sont : Code patient (affecté de façon incrémentale par rapport au nombre de patients), Nom, Prénom, Date de naissance, Adresse, Tél, E-mail. (0,5 pt)
     b. Ecrire un constructeur à deux paramètres : Nom et prénom. (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 afficher qui affiche les informations d’un patient. (1 pt)
2. Classe Visites. (2,5pts)
     a. Définir une classe Visites dont les caractéristiques sont Date visite, Heure visite, Code patient, Montant payé. (0,5 pt)
     b. Ecrire un constructeur à trois paramètres : Date visite et Heure visite et code patient. (0,5 pt)
     c. Écrire un deuxième constructeur à un seul  paramètre : code client et qui initialise la date et l’heure avec la date et l’heure actuelle. (0,5 pt)
     d. Écrire les accesseurs des champs et la méthode afficher qui affiche les informations de cette visite. (1 pt)
3. Classe RendezVous(2pts)
     a. Définir une classe RendezVous dont les caractéristiques sont : Date RendezVous, Heure RendezVous , Code patient, Observation. (0,5 pt)
     b. Ecrire un constructeur à trois paramètres : Date RendezVous ,Heure RendezVous et code de patient. (0,5 pt)
     c. Écrire les accesseurs des champs et la méthode afficher qui affiche les informations de ce rendez-vous. (1 pt)
4. Classe CabinetMedical (18pts)
     a. Définir une classe CabinetMedical dont les caractéristiques sont : une liste des patients, une liste des visites et une liste des rendez-vous. (1 pt)
     b. Ajouter une méthode ajouterPatient qui ajoute un patient à l'ensemble des patients du cabinet. (2 pts)
     c. Ajouter une méthode patientExitant ayant comme paramètre le nom et le prénom et qui retourne « vrai » si le patient existe et « faux » sinon. (2 pts)
     d. Définir une classe d’exception : exceptionMontant. (1 pt)
     e. Ajouter une méthode ajouterVisite qui ajoute une visite, et lève l'exception définie en d) si le montant payé est négatif. (2 pts)
     f. Ajouter une méthode recetteDuJour qui, pour une date donnée comme paramètre, affiche  la somme d'argent encaissée ce jour. (2 pts)
     g. Ajouter une méthode patientAyantDesVisites qui affiche la liste des patients ayant visité le cabinet pendant la dernière semaine. (3 pts)
     h. Ajouter une méthode annulerRDV qui permet d’annuler un rendez-vous. (2 pts)
     i. Ajouter une méthode exporterRDV qui permet d’enregistrer la liste des rendez-vous dans un fichier. (3 pts)

Partie 3 : Programmation Evénementielle

Soit l’interface d’inscription suivante :


EP - Examens de Passage Pratique 2011 V1-V2-V3 - TDI
EP - Examens de Passage Pratique 2011 V6 - TDI


1- Créer cette interface. (4 pts)
2- Créer une classe Stagiaire caractérisée par : Nom, prénom, sexe, option et âge. (2 pts)
3- Ecrire le code correspondant au bouton Ajouter qui permet d’ajouter un stagiaire dans une collection d’objets Stagiaires et de l’afficher dans la grille. (3 pts)
4- Ecrire le code correspondant au bouton Supprimer qui permet de supprimer un stagiaire sélectionné dans la grille, l’application doit afficher un message de confirmation avant de supprimer le stagiaire et un message d’erreur si aucune ligne n’est sélectionnée. (4 pts)
5- Ajouter un bouton Rechercher qui permet de rechercher un stagiaire par nom saisi dans la zone de texte « Nom » et d’afficher toutes les informations concernant ce stagiaire au niveau des zones correspondantes de l’interface. (4 pts)
6- Créer un bouton Afficher qui permet d’afficher dans la grille la liste des stagiaires d’une option donnée choisie parmi les boutons d’options. (3 pts)

14 juin 2011

Examen de Passage Pratique 2012 - TDI - Variante 3

Examen de Passage Pratique 2012 - TDI - Variante 3



Dossier 1 : (2,5 pts)
1. Ecrire un programme qui permet de calculer et d’afficher la somme des vingt premiers éléments de la série suivante : 30, 43, 56, 69, 82 … (S = 30 + 43 + 56 + 69 + 82 + …), sachant que la différence entre deux éléments successifs de cette série est toujours égale à 13. (1,25 pt)
2. Ecrire un programme qui permet de remplir un tableau de N entiers et qui cherche et affiche le premier élément, lorsqu’il existe, de ce tableau qui est égal à la somme de tous les autres éléments du tableau. Lorsqu’un tel élément n’existe pas, le programme affiche le message suivant : " Pas de solution ".(1,25 pt)
Exemples :
a- Pour N=5 et le tableau comprenant les éléments suivants :
     -30        2        5        27        0
Le nombre recherché est 2, car   2 = -30 + 5 + 27 + 0.
b- Pour N=4 et le tableau comprenant les éléments suivants :
     -30        2        5        0
Dans ce cas, le programme affiche "Pas de solution", car aucun élément du tableau n’est égal à la somme de tous les autres.

Dossier 2 : (15,25 pts)
L’objet de cette application est la gestion informatisée des traversées organisées par une société possédant des bateaux. Chaque traversée est assurée par un seul capitaine.
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 Capitaine.
      a. Définir une classe Capitaine dont les caractéristiques sont : Code, Nom, Prénom. (0,5 pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra tous les champs  séparés par tabulation. (0,5 pt)
2- Classe Bateau.
      a. Définir une classe Bateau dont les caractéristiques sont : Numéro, Nom Bateau. (0,5pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs. (0,5 pt)
      d. Écrire la méthode toString() qui renverra les informations du bateau séparées par tabulation. (0,5 pt)
3- Classe Traversee
      a. Définir une classe Traversee dont les caractéristiques sont : (0,75 pt)
     - Numéro traversée : le numéro de la 1ère traversée créée est 1 et à chaque création d’une nouvelle traversée, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données + code) pour y arriver.
     - Tcapitaine : c’est le capitaine qui a assuré la traversée courante.
     - Tbateau : C’est le bateau conduit par Tcapitaine au cours de cette traversée.
     - Date Traversée : date où a eu lieu cette traversée.
     - Pays de départ.
     - Pays d’arrivée.
     - Nombre de voyageurs : nombre des personnes qui ont effectué cette traversée.
     - Prix du billet : prix payé par chaque voyageur de cette traversée (le même prix pour tous).
     b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro de la traversée et d’affecter la date système à Date traversée.(0,75 pt)
     c. Ecrire un constructeur permettant de définir les valeurs des autres champs. Ce constructeur doit faire d’abord appel au constructeur précédent. (0,75 pt)
     d. Écrire les accesseurs des champs. (0,5 pt)
     e.Ecrire la méthode toString() qui renverra le numéro de la traversée, la date de la traversée, le nom et le prénom du capitaine, le numéro et le nom du bateau, pays de départ, pays d’arrivée et recette de la traversée tous séparés par tabulation. (1 pt)
La recette de la traversée = Nombre de voyageurs * Prix du billet de la traversée en cours.
4- Programme principal
      a. Déclarer une liste de capitaines, une liste de bateaux et une liste de traversées accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherCapitaine() qui recherche un capitaine par son code.Si trouvé, elle retourne le capitaine correspondant dans la liste des capitaines. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherBateau() qui recherche un bateau par son numéro. Si trouvé, elle retourne le bateau correspondant dans la liste des bateaux. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherTraversee() qui recherche une traversée par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des traversées. Sinon, elle retourne la valeur -1. (0,5pt).
     e.Ajouter par code (en mode conception) trois capitaines à la liste des capitaines. (0,5 pt)
     f. Ajouter par code trois bateaux à la liste des bateaux. (0,5 pt)
     g. Ajouter par code deux traversées à la liste des traversées. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,75 pt)
     h. Concevoir le menu suivant : (en prenant en compte les indications ci-dessous)
1- Ajouter bateau. (0,75 pt)
2- Ajouter traversée.(1 pt)
3- Lister toutes les traversées. (0,75 pt)
4- Lister les traversées passées entre deux dates. (0,75 pt)
5- Nombre de voyageurs de l’année en cours. (0,75 pt)
6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
     • Ajouter bateau :
Saisir les données nécessaires et faire le nécessaire pour que deux bateaux dans la liste n’aient pas le même numéro.
     • Ajouter traversée :
     - Le numéro de la nouvelle traversée est automatiquement affecté par programme et la date traversée correspond à la date système.
     - Saisir le code du capitaine qui doit correspondre à un capitaine de la liste des capitaines et si trouvé, le capitaine ainsi trouvé correspond à Tcapitaine de la traversée à ajouter, sinon le programme vous demandera de saisir un autre code.
      - Saisir le numéro du bateau qui doit correspondre à un bateau de la liste des bateaux et si trouvé, le bateau ainsi trouvé correspond à Tbateau de la traversée à ajouter, sinon le programme vous demandera de saisir un autre numéro.
     - Saisir les autres données restantes et chaque fois qu’une donnée saisie n’est pas valide, le programme vous demandera de la saisir de nouveau.
     • Lister toutes les traversées : Imprimer la liste de toutes les traversées de la manière suivante :



Examens de Passage Pratique 2012   - TDI - V1-V2-V3
Examens de Passage Pratique 2012 - TDI - V3


Indication : la date en haut à droite correspond à la date système.
     • Lister les traversées passées entre deux dates : Imprimer une liste des traversées semblable au niveau de la présentation à celle de la question précédente mais contenant uniquement  les traversées qui se sont déroulées entre deux dates que l’utilisateur de l’application devra saisir. En bas de la liste ainsi imprimée, indiquer le nombre des traversées listées.
     • Nombre de voyageurs de l’année en cours :
Le programme va calculer et afficher le nombre de voyageurs de l’année en cours (utiliser la date système pour récupérer l’année en cours). Ce nombre correspond au nombre total des voyageurs ayant utilisé les bateaux de la société pendant l’année en cours.

Dossier 3 : (2,25 pts)
On cherche à appliquer différentes mises en forme au contenu d’une zone de texte.



Examens de Passage Pratique 2012 - TDI   - V1-V2-V3
Examens de Passage Pratique 2012 - TDI -V3


1- Reproduire l’interface ci-dessus. (0,5 pt)
2- Ecrire le code de chaque bouton radio (taille). (0,75 pt)
3- Ecrire le code de chaque case à cocher (style). (0,75 pt)
Les cases à cocher sont indépendantes : on peut combiner les effets de deux ou des trois cases.
4- Ajouter une case à cocher « Normal » pour que le texte de la zone de texte redevienne normal lorsqu’elle est activée.Lorsque cette case n’est pas activée, ce sont les autres cases qui sont prises en considération. (0,25 pt)

11 juin 2011

Examens Fin Formation - TDI - Pratique 2011 - Variante 6

 Examens Fin Formation  - TDI - Pratique 2011 - Variante 6


Dossier 1  BASE DE DONNEES

Une calèche est une voiture à traction animale. Elle sert essentiellement à la promenade.
Les calèches prolifèrent dans plusieurs villes marocaines (Taroudant, Marrakech, Meknès, Fès …) et offrent aux touristes des tournées intra-ville à travers des circuits touristiques permettant de découvrir la ville et son histoire, ses monuments ou tout simplement ses paysages.
La base de données comprendra tous les circuits touristiques assurés par les calèches de chaque ville du pays. Un circuit est définit par un certain nombre de places ou lieux d’escale pouvant susciter un intérêt plus ou moins particulier de la part des visiteurs. Par exemple la place « Jamaa Elfna »
à Marrakech ou la place « Lahdim » à Meknès  représentent des attractions touristiques incontournables.
Un circuit comprendra une liste ordonnée des lieux à visiter. Cet ordonnancement est représenté par la propriété « numero_ordre » de l’association « Englobe ». 
Les concepteurs de la base de données ont élaboré le modèle logique de données suivant :
       Caleche(code_caleche, description_caleche, #login, #code_ville)
       Image(code_image, chemin_image, description_image, #code_caleche)
       Personne(login, nom_personne, prenom_personne, passe, email)
       Ville( code_ville, nom_ville)
       Circuit( code_circuit, description_circuit, prix_moyen, #code_ville)
       Lieu( code_lieu, description_lieu)
       Englobe(code_circuit, code_lieu, numero_ordre)
Les champs en gras et soulignés représentent les clés primaires des tables, ceux marqués par un # représentent les clés étrangères.


 EFF - Examens Fin Formation  -   TDI - Pratique 2011 - V4-V5-V6
EFF - Examens Fin Formation - TDI - Pratique 2011 - -V6



EFF - Examens Fin Formation  -   TDI - Pratique 2011 - V4-V5-V6
EFF - Examens Fin Formation - TDI - Pratique 2011 - V6


Travail à faire : Toutes les requêtes à fournir en réponse aux questions qui suivent doivent être sauvegardées dans un fichier appelé dossier1.txt :
1) Fournir toutes les requetes SQL pour la création et le remplissage par un jeu d’enregistrement de toutes les tables du schéma relationnel précédent. (4 pts)
2) Ajouter une contrainte qui permet de vérifier que l’adresse email contient le caractère ‘@’. (1 pt)
3) Développer un déclencheur (trigger) qui annule toute tentative de suppression d’une image. (3 pts)
4) Créer la fonction qui renvoie une table des calèches d’une ville dont le nom est transmis en paramètre. (4 pts)
5) Créer la procédure stockée qui permet de supprimer tous les circuits qui n’ont aucun lieu à visiter. (4 pts)
6) Ajouter la procédure stockée « ps_liste_caleches » qui crée une table nommée « Liste_calèches » et l’alimente par la liste des calèches d’une ville dont le code est transmis en paramètre. Au lancement de la procédure il faut prévoir la suppression de la table« Liste_calèches »  lorsqu’elle existe. (4 pts)

Dossier 2  PROGRAMMATION CLIENT/SERVEUR

Le même schéma relationnel du dossier précédent est repris par le présent dossier.
Il s’agit de développer une application « client/serveur » qui intègre les fonctionnalités suivantes :
1) Ajouter un menu et une barre d’outils à votre application en rapport avec les opérations demandées par les questions ci-dessous. (3 pts)
2) Développer le formulaire de mise à jour des calèches. Le formulaire doit comporter : (3 pts)
      • Les boutons ajouter, supprimer et enregistrer.
      • Les boutons de navigation.
3) Développer le formulaire de consultation des calèches correspondantes à une ville sélectionnée par l’utilisateur sur une liste déroulante. La liste sous forme d’une grille, doit comporter toutes les données relatives aux calèches de la ville sélectionnée. (4 pts)
4) Ajouter au formulaire précédent un bouton qui permet d’afficher un état de sortie des calèches trouvées. L’état doit comporter la date du jour, un titre et un tableau comportant toutes les informations des calèches de la ville sélectionnée sur le formulaire précédent. (4 pts)
5) Créer un état qui affiche l’histogramme du nombre de propriétaires de calèches par ville. (4 pts)
6) Développer un formulaire contenant un bouton qui sur clic permet de générer un fichier texte contenant les informations de toutes les villes. On écrira dans le fichier texte les caractéristiques de chaque ville séparées par des tabulations. Ville par ligne (2 pts)

Dossier 3  DEVELOPPEMENT WEB

Le même schéma relationnel des dossiers 1 et 2 sera repris au niveau du présent dossier.
L’application web permettra aux propriétaires de calèches, entre autres, de s’inscrire, d’ajouter leurs calèches …
Dans cette partie, il est demandé de développer une application Web qui intègre les fonctionnalités suivantes:
1) Créer une page Web qui permet de rechercher une calèche, pour cela :
      a. Prévoir une zone de texte permettant de saisir un texte représentant une description ou une partie de la description d’une calèche qui sera considérée comme critère de recherche. (1 pt)
      b. Afficher sous forme d’une grille la liste de toutes les calèches ayant une description qui correspondant au texte ou à une partie du texte saisi. (3 pts)
      c. Afficher au dessous de la grille le nombre de calèches recherchées. (3 pts)
2) Ajouter la page d’inscription des propriétaires des calèches. Cette page permet au propriétaire de s’inscrire en choisissant un login et un mot de passe et en précisant son nom, son prénom et son adresse de messagerie (voir bases de données du dossier 1). Insérer un bouton de commande à côté de la zone de texte du login, permettant de vérifier si le login choisi n’a pas déjà été choisi par un autre propriétaire de calèche. (3 pts)
3) Développer une page de connexion au site web. L’utilisateur doit spécifier son login et son mot de passe. Un message d’erreur doit être affiché dans le cas où ces informations ne sont pas correctes. Si l’utilisateur est correctement authentifié, il doit être redirigé vers la page de la question suivante (2 pts).
4) Créer une page web permettant à un propriétaire d’ajouter des images de ses calèches. Cette page est accessible uniquement aux utilisateurs authentifiés. Il leur permettra d’insérer des images de leurs calèches. (4 pts)
5) Développer un service Web qui fournit la liste de tous les propriétaires de calèches d’une ville donnée. Créer une application cliente qui permet de tester l’utilisation de votre service Web. (4 pts)

10 juin 2011

Examens Fin Formation - TDI - Pratique 2011 Variante 9

 Examens Fin Formation  - TDI - Pratique 2011  Variante 9


Dossier 1  BASE DE DONNEES

Un groupe de stagiaires de l’OFPPT s’est fixé comme objectif de développer un site web permettant l’échange de documents de différents types : supports de cours, exercices, examens et autres.
Le site permettra également l’envoi de commentaires autour des documents publiés.
Pour déposer un document ou un commentaire, il faut s’inscrire et devenir membre de la communauté du site.
Le groupe a désigné des administrateurs et des modérateurs du site. Le rôle de ces derniers est de bloquer les documents ou les messages indésirables. Le blocage se fait en changeant la valeur des propriétés etat_document et etat_commentaire de 1 à 2. Un document ou un commentaire bloqué n’est tout simplement pas publié sur le site web.
Les concepteurs de la base de données ont construit le modèle logique des données suivant :
N.B. les champs marqués en gras et souligné représentent les clés primaires des tables et les champs marqué par # représentent les clés étrangères.
     Theme(code_theme, nom_theme, description_theme)
     Document(code_document, description_document, chemin_document, date_envoi, etat_document, #code_theme, #login)
     Commentaire(code_commentaire, date_commentaire, texte_commentaire, etat_commentaire, #code_document, #login)
     Membre( login, nom, prenom, email, passe)
     Role( nom_role )
     Role_utilisateur( login, nom_role )


EFF - Examens Fin Formation  - TDI - Pratique 2011 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net
EFF - Examens Fin Formation - TDI - Pratique 2011 - V9 

Travail à faire : enregistrer sur un fichier texte qui porte le nom « dossier1.txt » les requêtes SQL qui répondent aux questions suivantes :
1) Créer  la base de données et remplir les tables par un jeu d’essai. (4 pts)
2) Créer un déclencheur (trigger) lié à l’ajout dans la table membre et qui insère une ligne dans la table Role_utilisateur en utilisant le nouveau login et le rôle « Utilisateur » ; car tous les membres appartiennent à ce rôle. (2 pts)
3) Créer un déclencheur qui refuse la suppression d’un document posté il y a plus de trois mois. (4 pts)
4) Créer la fonction qui reçoit en paramètre le code d’un thème et renvoie le nombre de commentaires correspondants. (2 pts)
5) Créer la procédure stockée qui renvoie le nombre d’utilisateurs par rôle. (4pts)
6) Développer la procédure stockée permettant de trouver le thème qui comprend le plus grand nombre de documents. (4 pts)

Dossier 2  PROGRAMMATION CLIENT/SERVEUR

Dans ce dossier, on utilisera la base de données du dossier 1.
Les administrateurs et les modérateurs du site souhaitent développer une application « client/serveur ».
1) Développer un formulaire permettant aux modérateurs de consulter et de bloquer un commentaire à l’aide d’un bouton de commande. Ce formulaire offrira la possibilité de naviguer entre les commentaires qui doivent être classés dans l’ordre décroissant de leur date de dépôt. Le blocage consiste à affecter  la valeur 2 à la propriété etat_commentaire. (4 pts)
2) Développer un état qui comprend la liste des documents d’un thème donné. L’utilisateur commence par sélectionner un thème sur une liste déroulante. L’état comprend la date du jour, un titre et un tableau de toutes les informations des documents correspondants au thème sélectionné. (4 pts)
3) Ajouter un formulaire permettant aux administrateurs de consulter et de supprimer les commentaires indésirables. Ce formulaire offrira la possibilité de naviguer entre les commentaires bloqués (etat_commentaire = 2). Un bouton de commande permettra à l’administrateur de supprimer un commentaire indésirable. (4 pts)
4) Développer un formulaire permettant de sélectionner un document et d’enregistrer sur un fichier texte l’ensemble des textes des commentaires, en rapport avec ce document, enregistrés sur la base de données. (4 pts)
5) Créer un menu et une barre d’outils pour votre application. (4 pts)

Dossier 3  DEVELOPPEMENT WEB
     Exercice 1 : (12 pts)
Dans cet exercice, on utilisera la base de données du dossier 1.
L’application web permettra aux internautes de chercher des documents, de consulter les commentaires et de télécharger des fichiers. Elle permet aussi aux membres de poster des documents ou des commentaires.
1) Développer une page d’accueil qui affiche des statistiques sur le nombre de documents, le nombre de commentaires et le nombre de membres. (2 pts)
2) Ajouter une page de connexion et une page permettant à un membre de modifier son mot de passe (prévoir 2 zones de texte pour saisir le mot de passe et sa confirmation). (2 pts)
3) Développer une page qui permet à un membre d’ajouter un commentaire :
     a. L’internaute commence par chercher un document. (1 pt)
     b. Il saisit ensuite le texte de son commentaire et valide son message.  (2pts)
4) Développer une page qui permet à un membre de modifier ses commentaires. En premier lieu, on doit afficher la liste des commentaires avec le code du commentaire sous forme de lien hypertexte. Une fois on clique sur le lien on doit accéder à la page de modification du commentaire. (2 pts)
5) Développer un état permettant d’imprimer toutes les descriptions des documents relatifs à un thème donné. L’utilisateur commence par sélectionner le thème sur une liste déroulante. (3 pts)
     Exercice 2 : (8 pts)
Réaliser en Javascript Le formulaire de la page web ci-dessous permettant de convertir un nombre de la base décimale vers la base binaire ou inversement suite au click de l’utilisateur sur le bouton ‘Convertir’.


EFF - Examens Fin Formation  - TDI - Pratique 2011 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net
EFF - Examens Fin Formation - TDI - Pratique 2011 - V9 

Examens Fin Formation - TDI - Pratique 2011 Variante 7


Examens Fin Formation  - TDI - Pratique 2011  Variante 7


Dossier 1  BASE DE DONNEES

Un groupe de stagiaires de l’OFPPT s’est fixé comme objectif de développer un site web permettant l’échange de documents de différents types : supports de cours, exercices, examens et autres.
Le site permettra également l’envoi de commentaires autour des documents publiés.
Pour déposer un document ou un commentaire, il faut s’inscrire et devenir membre de la communauté du site.
Le groupe a désigné des administrateurs et des modérateurs du site. Le rôle de ces derniers est de bloquer les documents ou les messages indésirables. Le blocage se fait en changeant la valeur des propriétés etat_document et etat_commentaire de 1 à 2. Un document ou un commentaire bloqué n’est tout simplement pas publié sur le site web.
Les concepteurs de la base de données ont construit le modèle logique des données suivant :
N.B. les champs marqués en gras et souligné représentent les clés primaires des tables et les champs marqué par # représentent les clés étrangères.
     Theme( code_theme, nom_theme, description_theme)
     Document( code_document, description_document, chemin_document, date_envoi, etat_document, #code_theme, #login)
     Commentaire( code_commentaire, date_commentaire, texte_commentaire, etat_commentaire, #code_document, #login)
     Membre( login, nom, prenom, email, passe)
     Role( nom_role )
     Role_utilisateur( login, nom_role )


EFF - Examens Fin Formation  - TDI - Pratique 2011 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net
EFF - Examens Fin Formation - TDI - Pratique 2011 - V7


EFF - Examens Fin Formation  - TDI - Pratique 2011 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net
EFF - Examens Fin Formation - TDI - Pratique 2011 -

Travail à faire : enregistrer sur un fichier texte qui porte le nom « dossier1.txt » les requêtes SQL qui répondent aux questions suivantes :
1) Créer  la base de données et remplir les tables par un jeu d’essai. (4 pts)
2) Créer un déclencheur (trigger) lié à l’ajout dans la table Membre et qui insère une ligne dans la table Role_utilisateur en utilisant le nouveau login et le rôle « Utilisateur » ; car tous les membres appartiennent à ce rôle. (2 pts)
3) Créer un déclencheur qui refuse la suppression d’une ligne de la table Role_utilisateur pour le rôle « Utilisateur ». (4 pts)
4) Créer la fonction qui reçoit en paramètre le code d’un thème et renvoie le nombre de commentaires correspondants. (2 pts)
5) Créer la procédure stockée qui renvoie le nombre de documents par thème. (4pts)
6) Développer la procédure stockée permettant de trouver le membre qui a publié le plus grand nombre de documents. (4 pts)

Dossier 2  PROGRAMMATION CLIENT/SERVEUR

Dans ce dossier, on utilisera la base de données du dossier 1.
Les administrateurs et les modérateurs du site décident de développer une application « client/serveur ».
1) Développer un formulaire permettant aux modérateurs de consulter et de bloquer un commentaire à l’aide d’un bouton de commande. Ce formulaire offrira la possibilité de naviguer entre les commentaires qui doivent être classés dans l’ordre décroissant de leur date de dépôt. Le blocage consiste à affecter  la valeur 2 à la propriété etat_commentaire. (4 pts)
2) Développer un formulaire permettant aux administrateurs de mettre à jour la table « Membre » et de modifier les rôles des utilisateurs. Le formulaire doit comporter : (4 pts)
     • des boutons de navigation.
     • Les boutons ajouter, supprimer et enregistrer.
3) Ajouter un formulaire permettant aux administrateurs d’initialiser le mot de passe d’un membre. Le formulaire doit permettre d’effectuer la recherche par login. Deux zones de texte permettront de saisir le mot de passe et sa confirmation. (4 pts)
4) Développer un formulaire permettant de sélectionner un thème et d’enregistrer sur un fichier texte l’ensemble des commentaires correspondants aux documents en rapport avec le thème sélectionné. (4 pts)
5) Créer un menu et une barre d’outils pour votre application. (4 pts)

Dossier 3  DEVELOPPEMENT WEB

     Exercice 1 : (12 pts)
Dans cet exercice, on utilisera la base de données du dossier 1.
L’application web permettra aux internautes de chercher des documents, de consulter les commentaires et de télécharger des fichiers. Elle permet aussi aux membres de poster des documents ou des commentaires.
1) Développer une page qui permet de chercher des documents par thème :
     a. L’internaute commence par sélectionner un thème sur une liste déroulante. (1 pt)
     b. L’application doit afficher la liste des documents correspondants au thème choisi. (2 pts)
     c. L’utilisateur doit pouvoir télécharger le fichier correspondant à un document. (2 pts)
2) Développer une page Web qui permet à l’administrateur suite à une  sélection du nom d’un membre dans une liste déroulante d’afficher dans la même page tous les commentaires postés par le membre sélectionné. Les codes des commentaires doivent être marqués comme des liens hypertexte. Quand on clique sur e lien on doit afficher le texte du commentaire (son détail). Les commentaires doivent être affichés dans l’ordre décroissant des dates de postage. (2 pts)
3) Modifier la page de la question 2 pour ajouter à gauche de chaque commentaire une case à cocher pour pouvoir sélectionner un ou plusieurs commentaires et un bouton de suppression qui sur click doit supprimer tous les commentaires sélectionnés. (2 pts)
4) Développer un état permettant d’imprimer tous les commentaires relatifs à un document donné. L’utilisateur commence par chercher le document par sa référence (code_document). (3 pts)
     Exercice 2 : (8 pts)
Le formulaire de la page web ci-dessous permet de calculer le détail monétaire correspondant à un montant saisi par l’utilisateur. Le bouton « Calculer le détail monétaire » exécute une fonction Javascript qui détermine le nombre de billets et/ou de pièces de monnaies qui correspondent au montant indiqué.


EFF - Examens Fin Formation  - TDI - Pratique 2011 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net
EFF - Examens Fin Formation - TDI - Pratique 2011 - V7-

a) Développer la page HTML. (2 pts)
b) Développer la fonction Javascript de calcul du détail monétaire. (6 pts)

8 juin 2011

Examens de Fin de Formation Pratique 2011 - TDI - Variante 1

 Examens de Fin de Formation Pratique 2011 - TDI - Variante 1 


Dossier 1  BASE DE DONNEES

Une compagnie de transport national de voyageurs entreprend l’informatisation de ses activités. Les travaux de l’équipe chargée de l’analyse et de la conception de la base de données ont aboutit au modèle logique de données suivant :
N.B. les champs marqués en gras et souligné représentent les clés primaires des tables et les champs marqué par # représentent les clés étrangères.
     Voyage( code_voyage, dh_depart_voyage, dh_arrive_voyage, places, compteur_depart, compteur_arrivee, #matricule, #code_car, #code_calendrier)
     Personnel(Matricule, nom, prenom, telephone, passe)
     Autocar(code_car, capacite, date_achat, consommation, #nom_marque)
     Calendrier(code_calendrier, jour_voyage, heure_depart, heur_arrivee, #code_ligne)
     Ligne(code_ligne, distance, #code_ville_depart, #code_ville_arrivee)
     Ville( code_ville, nom_ville )
     Marque( nom_marque )


EFF - Examens de Fin de Formation Pratique 2011 - TDI - V1-V2-V3
EFF - Examens de Fin de Formation Pratique 2011 - TDI - V1-



EFF - Examens de Fin de Formation Pratique 2011 - TDI - V1-V2-V3
EFF - Examens de Fin de Formation Pratique 2011 - TDI - V1


La compagnie assure le transport de passagers sur plusieurs lignes nationales. Chaque ligne est définie par un code, ville de départ, ville d’arrivée et la distance kilométrique qui les sépare.
Le calendrier des voyages comprend les horaires des transports assurés pour tous les jours de la semaine.
La base de données permet d’enregistrer pour chaque voyage, les dates et compteurs kilométriques de départ et d’arrivée, le nombre de passagers transportés, l’autocar utilisé et son chauffeur.
Travail à faire :
enregistrer sur un fichier texte qui porte le nom « dossier1.txt » les requêtes SQL qui répondent aux questions suivantes (1 à 7) :
1) Créer la base de données et remplir les tables par un jeu d’essai. Le code voyage est un numéro automatique. (4 pts)
2) Ajouter les contraintes suivantes : (3 pts)
     a. La colonne jour_voyage ne doit accepter que des valeurs comprises entre 1 et 7 (1 pour lundi et 7 pour dimanche).
     b. La date de départ (dh_depart_voyage) doit être inférieure à la date d’arrivée (dh_arrivee_voyage).
     c. La capacité d’un autocar doit être supérieure à zéro.
3) Ajouter à la table « Personnel » une colonne calculée NP correspondant à la concaténation du nom et du prénom. (2 pts)
4) Ajouter un déclencheur (trigger) qui empêche l’ajout d’une ligne de transport lorsqu’il y a déjà une autre ligne avec les mêmes villes de départ et d’arrivée. (2 pts)
5) Créer la fonction qui renvoie le nombre total de passagers transportés sur une ligne dont le code est passé en paramètre. (2 pts)
6) Créer une procédure qui renvoie une table de tous les voyages d’une ligne dont le code est transmis en paramètre. (3 pts)
7) Créer une fonction qui utilise un curseur pour renvoyer tous les noms et prénoms des chauffeurs concaténés dans une seule chaine de caractères pour une ligne dont le code est passé en paramètre. (4 pts)

Dossier 2  PROGRAMMATION CLIENT/SERVEUR

Dans ce dossier, on utilisera la base de données du dossier 1.
Développer une application « client/serveur » qui répond aux fonctionnalités demandées par les questions suivantes :
1) Créer un menu pour votre application en y incluant une option pour chacune des opérations demandées dans les questions qui suivent. (2 pts)
2) Créer un état permettant d’imprimer le calendrier des horaires d’une ligne donnée. L’utilisateur commence par sélectionner une ville de départ et une ville d’arrivée, l’application doit afficher une liste comportant les jours, heures de départ et heure d’arrivée. (4 pts)
3) Ajouter le formulaire de mise à jour des autocars. Le formulaire doit comporter : (4 pts)
     • des boutons de navigation.
     • Les boutons ajouter, supprimer et enregistrer.
     • Une liste déroulante pour sélectionner la marque.
4) Créer le formulaire de saisie du calendrier des voyages par ligne. L’utilisateur commence par sélectionner une ligne dans une liste déroulante, puis il saisit le code calendrier, le jour et les heures de départ et d’arrivée dans une grille prévue à cet effet. (4 pts)
5) Ajouter un formulaire qui affiche, dans une grille, pour un chauffeur dont le nom est sélectionné sur une liste déroulante, la liste des voyages qu’il a assuré. (4 pts)
6) Développer un état de sortie de type histogramme qui comprend pour chaque ligne, le cumul total des kilomètres parcourus. (2 pts)

Dossier 3  DEVELOPPEMENT WEB

Dans ce dossier, on utilisera la base de données du dossier 1.
La compagnie souhaite développer un site web dynamique permettant aux internautes de consulter les horaires des voyages et aux utilisateurs de mettre à jour certaines informations de la base de données.
1) Développer la page d’accueil et le menu du site web qui inclue les opérations demandées par les questions qui suivent. (2 pts)
2) Créer la page de connexion au site. Le login étant le matricule de l’utilisateur (pris de la base de données du dossier 1). L’application vérifie le login et le mot de passe (celui-ci est pris de la table Personnel) de l’utilisateur. Afficher un message d’erreur lorsque le login et/ou le mot de passe sont incorrects. Si l’utilisateur est correctement authentifié, le site doit le rediriger vers la page crée à la question précédente (page d’accueil). (4 pts)
3) Ajouter la page de mise à jour du calendrier des voyages qui doit comporter : (4 pts)
     • Des boutons de navigation pour parcourir les données de la table calendrier.
     • Des boutons de mise à jour permettant d’ajouter, supprimer et enregistrer les données.
4) Créer une page web qui permet d’imprimer un état du calendrier des voyages d’une ligne donnée. La page à développer doit comporter une zone de texte pour saisir le numéro de la ligne et un bouton qui affiche l’état demandé. La liste à produire comportera les jours, heures de départ et heures d’arrivée. (4pts)
5) Ajouter une option qui permet d’enregistrer le code et nom de toutes les villes sur un fichier XML. (2 pts)
6) Développer le fichier XSLT qui permet de transformer le fichier XML que vous avez obtenu  avec la question précédente en un fichier HTML. Le résultat à produire doit comporter un titre (Liste des villes) et un tableau comportant les codes et noms des villes. (4 pts)