23 juil. 2011

Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise


EP - Examen Passage  2011 - TDI -Théorie - Algo - C - POO - Merise


Partie 1: Connaissances générales et logique :

1- Définissez brièvement les termes suivants:
     ROM
     UAL
     MIPS
     CMOS
2- Quelle est la différence entre les deux mémoires vives DRAM et SRAM?
3- Remplir les cases du tableau suivant par les nombres correspondants, écrits dans les systèmes de numération spécifiés.



EP - Examen   Passage 2011 - TDI -Théorie - Algo - C - POO - Merise
EP - Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise


Chaque colonne correspondant au système spécifié; et chaque ligne au même nombre.
4- Soit la table de vérité suivante :



EP -   Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise
EP - Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise


a- Donner les expressions algébriques des deux fonctions logiques F1 et F2.
b- Simplifier, par la méthode de Karnaugh, la fonction F2.

Partie 2: Techniques et langages de programmation structurée:

Exercice 1:
Donner la syntaxe du schéma itératif "Tanque"; et expliquer son fonctionnement
Exercice 2:
Pour chaque des deux séquences algorithmiques suivantes, dire s'il est possible de simplifier son écriture. Si oui, comment; et sinon pourquoi?



EP - Examen   Passage 2011 - TDI -Théorie - Algo - C - POO - Merise
EP - Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise

Exercice 3:
une matrice carrée est un tableau à deux dimensions dont le nombre de lignes est égale au nombre de colonnes.
Une matrice est dite équilibrée si la somme de éléments de chaque ligne est égale à zéro, la somme des éléments de chaque colonne est égale à zéro et la somme de éléments de deux diagonales est égale à zéro aussi.
Écrire un algorithme qui lit une matrice carrée d'entiers et vérifie si elle est équilibrée ou non.
Vous devez afficher soit la mention "Votre matrice et équilibrée" ou la mention "Votre matrice est non équilibrée".
Exercice 4:
Écrire un programme dans un langage de programmation structurée, qui permet de trouver les nombres premiers inférieurs ou égaux à un entier N donné par l'utilisateur.
La méthode consiste à remplir un tableau, dans l'ordre du plus petit au plus grand, par les entiers compris entre 2 et N (N étant l'entier limite précisé par l'utilisateur); puis de parcourir le tableau depuis le début, en gardant un entier rencontré et éliminant tous les multiples, par leur mise à zéro par exemple. A la fin du parcours, tous les entier restants (non nuls) ont des nombres premiers.

Partie 3: Programmation orientée objet:

Dan une application Windows tous les contrôles (fenêtres, bouton, zones de texte, cases à cocher ...) sont caractérisés par un nom (de type chaine de caractères), une position haut et une position gauche (de type entier) de l'objet sur l'écran. Une fenêtre et un contrôle comme les autres, caractérisée en plu d'un titre et d'une couleur d'arrière plan (de type entier).
1- Créer les classe Contrôle et Fenêtre avec un constructeur d'initialisation, un constructeur de copier, sachant que la classe Fenêtre hérite de la classe Contrôle.
2- Doter la classe Contrôle par la méthode Display qui permet d'afficher la mention suivante:
"Le contrôle Texte1 et situé à la position 12x25"
Avec Texte1 est le nom du contrôle et 12,25 représentent respectivement la position gauche, haut du contrôle sur l'écran.
3- Redéfinir la méthode Display pour la classe Fenêtre pour afficher la mention suivante:
"Le contrôle Text1 est situé à la position 12x25, ayant comme titre "titre1" et une couleur d'arrière plan de 240".
On souhaite ajouter à la classe Fenêtre une propriété type collection qui permet de gérer une liste de contrôles que l’utilisateur peut ajouter sur une fenêtre (zones de texte, lite déroulante, ...).
4- Donner le modifications à apporter à la classe Fenêtre et la méthode AjoutControle qui permet d'ajouter un contrôle à la collection.
5- Implémenter pour la classe Fenêtre la méthode RetireControle qui permet du supprimer un contrôle de la collection connaissant son nom.
6- Implémenter pour le classe Fenêtre la méthode DisplayTout qui permet d'afficher tous les contrôles ajouté à la fenêtre.

Partie 4: Conception de Systèmes d'informations:

Gestion d'un cabinet d'architecture
Vous êtes appelé à concevoir un système de gestion pour un cabinet d'architecture, au sein duquel on réalise de projets architecturaux. l'étude préalable résulte des contacts suivants :
Le personnel du cabinet est constitué de plusieurs architectes, dessinateurs et du personnel administratifs, pour lesquels on enregistre un matricule, un nom, un prénom, une fonction, et une date d'embauche.
La cabinet et chargé par le client, appelé maître d'ouvrage, de concevoir le projet architectural. les maître d'ouvrage peuvent être des particuliers, des institutions publiques et privées, des promoteurs, entre autre. Pour le uns, comme pour les autres, on affecte une référence; et on enregistre le nom ou l'intitulé, l'adresse et le numéro de téléphone.
Un maître d'ouvrage, et enregistré lors de son première contact avec le cabinet, et il garde la référence, qui lui est affectée au début pour tous le projets qu'il a passé au cabinet.
Un projet est caractérisé par un numéro de référence, une date de dépôt, une date de remise prévisionnelle, un type (maison, immeuble, ...), une adresse, une superficie totale et bâtie, le type des travaux envisagés (construction ou aménagement), et une rémunération (prix du projet).
Un seul architecte est chargé du projet, mais plusieurs dessinateurs peuvent intervenir dans la réalisation du projet. le personnel administratif du cabinet intervient dan le projet au niveau de la constitution du dossier auprès des autorités sous les directives de l'architecte considéré comme chef du projet.
A la remise du projet, la date de fin effective de sa réalisation est enregistrée.

Travail à faire :
1- Donner un modèle conceptuel de données.
2- Déduire le modèle logique de données.

21 juil. 2011

Examens de Passage Pratique 2011 - TDI - Variante 5

Examens de Passage Pratique 2011 - TDI - Variante 5

Partie 1 : Programmation Structurée

1. Ecrire un programme en C ou équivalent permettant de compter le nombre de multiples (inférieurs à 1000)  d’un nombre entier donné par l’utilisateur, puis de les afficher du plus grand au plus petit. (5 pts)
Exemple d’exécution :


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


Ecrire un programme en C ou équivalent permettant de saisir un tableau de 10 valeurs entières, et de multiplier l’ensemble des éléments du tableau par 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 V5- 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 l’équivalent décimal d’un nombre octal . (4 pts)
Rappel : (177)8 = 7x80 +7x81 + 1x82 = (127)10
Exemple d’exécution :


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

Partie 2 : Programmation Orientée Objet

L’objet de cette application est la gestion informatisée du cabinet d’avocat, Elle doit procéder à la gestion informatisée des dossiers des clients et elle s'occupe également de la gestion des rendez-vous et des visites.
1. Classe Client. (2,5pts)
     a. Définir une classe Client dont les caractéristiques sont : Code client (affecté de façon incrémentale par rapport au nombre de clients), 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 toString qui renverra les informations d’un client. (1 pt)
2. Classe Visites. (2,5pts)
     a. Définir une classe Visites dont les caractéristiques sont Date visite, Heure visite, Code client, sujet de visite. (0,5 pt)
     b. Ecrire un constructeur à deux paramètres : Date de  visite et Heure visite. (0,5 pt)
     c. Écrire un deuxième constructeur sans paramètres qui appelle le premier avec la date et l’heure actuelle. (0,5 pt)
     d. Écrire les accesseurs des champs et la méthode toString qui renverra les informations de cette visite. (1 pt)
3. Classe Dossier(2pts)
     a. Définir une classe Dossier dont les caractéristiques sont : Code client, tribunal, sujet, jugement, et statut (en cours ou clôturé). (0,5 pt)
     b. Ecrire un constructeur à deux paramètres : Code client et sujet. (0,5 pt)
     c. Écrire les accesseurs des champs et la méthode toString qui renverra les informations d’un dossier. (1 pt)
4. Classe CabinetAvocat (18pts)
     a. Définir une classe CabinetAvocat dont les caractéristiques sont : une liste des clients, une liste des visites et une liste des dossiers (collection ou tableaux). (1 pt)
     b. Ajouter une méthode ajouterClient qui ajoute un client à l'ensemble des clients du cabinet. (2 pts)
     c. Ajouter une méthode clientExitant ayant comme paramètre le nom et le prénom et qui retourne « vrai » si l’existe et « faux » sinon. (2 pts)
     d. Définir une classe d’exception : exceptionClient. (1 pt)
     e. Ajouter une méthode ajouterVisite  qui ajoute une visite, et lève l'exception définie en d) si le code du client n’existe pas. (2 pts)
     f. Ajouter une méthode afficherDossier qui affiche la liste des dossiers d’un client donné. (2 pts)
     g. Ajouter une méthode clientAyantDesVisites qui affiche la liste des clients (code, nom et prénom) ayant visité le cabinet pendant la dernière semaine. (3 pts)
     h. Ajouter une méthode supprimerDossiers qui permet de supprimer les dossiers clôturés. (2 pts)
     i. Ajouter une méthode enregistrer qui permet d’enregistrer la liste des clients, liste des dossiers 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 V5- TDI


1- Créer cette interface. (4 pts)
2- Créer une classe Voiture caractérisée par : Matricule, Marque, Carburant (Essence ou Diesel), Couleur et Puissance. (2 pts)
3- Ecrire le code correspondant au bouton Ajouter qui permet d’ajouter une voiture dans une collection d’objets Voitures et de l’afficher dans la grille. (3 pts)
4- Ecrire le code correspondant au bouton Supprimer qui permet de supprimer une voiture sélectionnée dans la grille, l’application doit afficher un message de confirmation avant de supprimer la voiture et un message d’erreur si aucune ligne n’est sélectionnée. (4 pts)
5- Ajouter un bouton Rechercher qui permet de rechercher une voiture par Matricule saisi dans la zone de texte « Matricule » et d’afficher toutes les informations concernant cette voiture 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 voitures d’une marque donnée saisie dans la zone « Marque ». (3 pts)

Examens de Passage Pratique 2011 - TDI - Variante 4

Examens de Passage Pratique 2011 - TDI - Variante 4


Partie 1 : Programmation Structurée

1. Ecrire un programme en C ou équivalent permettant de compter le nombre de diviseurs d’un nombre entier donné par l’utilisateur, puis de les afficher du plus grand au plus petit. (5 pts)
Exemple d’exécution :


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


2. Ecrire un programme en C ou équivalent permettant de saisir un tableau de 10 valeurs entières, et de diviser l’ensemble des éléments du tableau par 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 V4 - 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 l’équivalent décimal d’un nombre binaire. (4 pts)
Rappel : (101101)2 = 1x20 + 0x21 + 1x22 + 1x23 + 0x24 + 1x25 = (45)10
Exemple d’exécution :


EP - Examens de Passage Pratique 2011 V1-V2-V3 - TDI
EP - Examens de Passage Pratique 2011 V4 - 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,5 pts)
     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 toString() qui renverra les informations d’un patient . (1 pt)
2. Classe Visites. (2,5 pts)
     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 à deux paramètres : Date visite et Heure visite. (0.5 pt)
     c. Écrire un deuxième constructeur sans paramètres qui appelle le premier avec la date et l’heure actuelle. (0.5 pt)
     d. Écrire les accesseurs des champs et la méthode toString() qui renverra les informations de cette visite . (1 pt)
3. Classe RendezVous (2 pts)
     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 toString() qui renverra les informations de ce rendez-vous. (1 pt)
4. Classe CabinetMedical (18 pts)
     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 (collection ou tableaux). (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 le code du patient s’il existe et le chiffre « -1 » sinon. (2 pts)
     d. Définir une classe d’exception : exceptionMedecinOccupe. (1 pt)
     e. Ajouter une méthode ajouterRDV qui ajoute un rendez-vous, et lève l'exception définie en d) s’il coïncide avec un autre rendez-vous. (2 pts)
     f. Ajouter une méthode afficherRDVDuJour qui va, pour une date donnée comme paramètre, afficher la liste des rendez-vous de ce jour. (2 pts)
     g. Ajouter une méthode patientAyantDesVisites qui affiche la liste des patients (code, nom et prénom) ayant visité le cabinet pendant la dernière semaine. (3 pts)
     h. Ajouter une méthode supprimerPatient qui permet de supprimer un patient ainsi que ses visites et rendez-vous. (2 pts)
     i. Ajouter une méthode enregistrerPatients qui permet d’enregistrer la liste des patients 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 V4 - 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 dans la liste déroulante « Option ». (3 pts)

20 juil. 2011

Examens de Passage Pratique 2011 - TDI - Variante 3

Examens de Passage Pratique 2011 - TDI - Variante 3


Partie 1 : Programmation structurée

Exercice 1 : (4 pts)
Ecrire un programme qui permet d’entrer un tableau de n valeurs numériques ; puis d’inter changer ses éléments de manière que la 1ère valeur devienne la dernière, la deuxième devienne l’avant dernière, … ; et l’afficher, dans ce nouvel ordre.
Exemples d’exécution :


EP - Examens de Passage Pratique 2011 V4-V5-V6 - TDI
EP - Examens de Passage Pratique 2011 V3- TDI


N.B. Les éléments doivent être inter changés, et non simplement affichés, dans cet ordre.

Exercice 2 : (6 pts)
Ecrire une fonction qui calcule le factoriel d’un entier n donné (le factoriel d’un entier n s’écrit n! et n! = 1 x 2 x 3 x…n. Exemple : 3! = 1 x 2 x 3 = 6).
Ecrire une fonction qui permet de calculer le nombre d’arrangements de p parmi n éléments,  .
Rappel : 


EP - Examens de Passage Pratique 2011 V4-V5-V6 - TDI
EP - Examens de Passage Pratique 2011 V3- TDI



Ecrire un programme utilisant ces fonctions, pour les tester.

Exercice 3 : (5 pts)
Ecrire un programme qui permet d’entrer un tableau de n valeurs numériques ; puis de compter et afficher le nombre de ses valeurs distinctes.

Partie 2 : Programmation orientée objet

L’objectif de cet exercice est de développer une application de gestion des demandes de congé d’une entreprise.
1. Classe Fonctionnaire (3,5pts)
     a. Créer une classe Fonctionnaire qui se caractérise par : Numéro de  matricule, nom, prénom, date de naissance et solde des jours de congés du fonctionnaire. (0,5 pt)
     b. Créer un constructeur à 2 paramètres : nom et prénom, ce constructeur initialise le numéro de matricule (affecté de façon incrémentale par rapport au nombre des fonctionnaires), et la date d’embauche par la date système. (1 pt)
     c. Ajouter des accesseurs pour tous les champs. (1 pt)
     d. Ajouter une méthode toString () qui renvoie les informations d’un fonctionnaire. (1 pt)
2. Classe Directeur (8pts)
     a. Créer une classe Directeur sous-classe de la classe Fonctionnaire, elle  comporte  une liste des fonctionnaires.  Ecrire  le  constructeur  correspondant  ainsi  que  sa méthode toString qui renvoie  les informations  d’un Directeur ainsi que les noms des fonctionnaires. (2 pts)
     b. Ajouter une méthode ajouterFonctionnaire  qui permet d’ajouter un Fonctionnaire à la liste des Fonctionnaires. (2 pts)
     c. Ajouter une méthode getFonctionnaireParNom qui recherche et renvoie le Numéro de matricule d’un Fonctionnaire par nom et prénom. (2 pts)
     d. Ajouter une méthode getFonctionnairesParAge qui renvoie la liste des fonctionnaires qui atteignent l’âge de 60 ans cette année. (2 pts)
3. Classe DemandeConge (2,5pts)
     a. Créer une classe DemandeConge caractérisé par : code fonctionnaire, date début, durée, motif, Etat (En cours, Validé, Refusé). (0,5 pt)
     b. Ajouter un constructeur à 4 paramètres : code fonctionnaire, date début, durée et motif, et initialise l’état par la valeur « En cours ». (0,5 pt)
     c. Ajouter une méthode CalcDateFin qui calcule la date de fin à partir de la date début et durée. (0,5 pt)
     d. Ajouter des accesseurs pour tous les champs. (1 pt)
4. Classe GestionCongé (11pts)
     a. Créer une classe GestionConge qui se caractérise par une liste des Directeur et une liste des DemandeConge  et ajouter un constructeur sans paramètre. (1 pt)
     b.  Ajouter une méthode listeFonctionnaires qui affiche la liste des noms des Fonctionnaires qui ont demandé des congés cette année. (2 pts)
     c. Ajouter une méthode ajouterDemandeConge qui permet d’ajouter un objet DemandeConge à la liste des demandes. (2 pts)
     d. Ajouter une méthode listeFoncEnConge qui retourne les noms des fonctionnaires qui sont en congé. (3 pts)
     e. Ajouter une méthode listeDemandeCongeParFonctionnaire  qui retourne une liste des demandes de congé d’un fonctionnaire, cette méthode a comme paramètre le code d’un Fonctionnaire. (3 pts)

Partie 3 : Programmation événementielle

On souhaite développer une application pour la gestion des Notes de l’examen de passage. 
Chaque stagiaire est identifié par :
     - Nom et prénom
     - Groupe
     - Niveau
     - Moyenne EFM
     - Note arabe
     - Note français 
     - Note anglais
     - Note Théorie 
     - Note pratique
1. Créer la classe Stagiaire. (2 pts)
2. Créer une classe Liste Stagiaire qui contient une Collection d’objets Stagiaire. (2 pts) 
3. Créer l’interface ci-dessous :  (4 pts)


EP - Examens de Passage Pratique 2011 V4-V5-V6 - TDI
EP - Examens de Passage Pratique 2011 V3- TDI



4. Ecrire le code correspondant au bouton Valider permettant de valider les données saisies par l’utilisateur et de les stocker dans une collection d’objets Liste Stagiaire : les valeurs doivent être valides c'est-à-dire comprises dans les bons intervalles. exemple : la note Théorie doit être comprise entre 0 et 40. Si une erreur est détectée, un message d’erreur doit être affiché.  (4 pts)
5. Ecrire le code correspondant au bouton Calculer permettant de calculer : (2 pts)
     • La moyenne de l’examen de communication qui vaut (Note Arabe + Note Français + Note Anglais)/4) .
     • La moyenne générale qui vaut (Moyenne de l’examen de communication + Moyenne EFM + Pratique + Théorie)/180). 
6. Ajouter une interface qui permet de lister dans une grille tous les stagiaires avec leurs notes et décision (ADMIS si Moyenne générale >=10 ou REDOUBLE dans le cas contraire). (3 pts)
7. Ajouter dans cette interface un bouton Export qui permet d’enregistrer ces données dans un fichier. (3 pts)

Examens de Passage Pratique 2011 - TDI - Variante 2

 Examens de Passage Pratique 2011 - TDI - Variante 2


Partie 1 : Programmation structurée

Exercice 1 : (4 pts)
Ecrire un programme (en langage C ou équivalent) qui permet d’entrer un tableau de n valeurs numériques ; et de les afficher sur deux colonnes, de manière à retrouver ces valeurs dans leur ordre initial, si on les lit ligne par ligne.
Exemples d’exécution :


EP - Examens de Passage Pratique 2011 V4-V5-V6 - TDI
EP - Examens de Passage Pratique 2011 V4-V5-V6 - TDI


N.B. chaque ligne est affichée par une même et seule instruction de sortie.

Exercice 2 :  (6 pts)
Ecrire une fonction qui calcule le factoriel d’un entier n donné (le factoriel d’un entier n s’écrit n! et n! = 1 x 2 x 3 x…n. Exemple : 3! = 1 x 2 x 3 = 6).
Ecrire une fonction qui permet de calculer le nombre de combinaisons de p parmi n éléments.
     Rappel : 


EP - Examens de Passage Pratique 2011 V4-V5-V6 - TDI
EP - Examens de Passage Pratique 2011 V2 - TDI


Ecrire un programme utilisant ces fonctions, pour les tester.

Exercice 3 : (5 pts)
Ecrire un programme qui permet d’entrer un tableau de n valeurs numériques ; puis de chercher et afficher toutes ses valeurs, distinctes, avec pour chacune les positions où elle apparaît.
Exemple :
     Soit le tableau : 1 - 2 - 3 - 1 - 2 - 10 - 1
     Le résultat :
     les positions de 1 sont : 1, 4, 7
     les positions de 2 sont : 2, 5
     les positions de 3 sont : 3
     les positions de 10 sont : 6

Partie 2 : Programmation orientée objet

L’objectif de cet exercice est de développer une application de gestion des demandes de congé d’une entreprise.
1. Classe Salarie (3,5pts)
     a. Créer une classe Salarie  qui se caractérise par : Numéro de  matricule, nom, prénom, date d’embauche et solde des jours de congés d’un salarié. (0,5 pt)
     b. Créer un constructeur à 2 paramètres : nom et prénom, ce constructeur initialise le n° de matricule (affecté de façon incrémentale par rapport au nombre des salariés), et la date d’embauche par la date système. (1 pt)
     c. Ajouter des accesseurs pour tous les champs. (1 pt)
     d. Ajouter une méthode afficher () qui affiche les informations d’un salarié. (1 pt)
2. Classe Directeur (8pts)
     a. Créer une classe Directeur sous-classe de la classe Salarie, elle comporte  une liste  des salariés.  Ecrire  le  constructeur  correspondant  ainsi  que  sa méthode afficher qui affiche  les informations d’un Directeur. (2 pts)
     b. Ajouter une méthode ajouterSalarie  qui permet d’ajouter un salarié à la liste des salariés. (2 pts)
     c. Ajouter une méthode getSalarieByNom qui recherche et renvoie le Numéro de matricule d’un salarié par nom et prénom. (2 pts)
     d. Ajouter une méthode getSodeConge qui renvoie le solde de jours de congé d’un salarié, ou le chiffre « -1 » si ce numéro de matricule n’existe pas dans la liste des salariés. Cette méthode a comme paramètre le numéro de matricule du salarié. (2 pts)
3. Classe DemandeConge (2,5pts)
     a. Créer une classe DemandeConge caractérisée par : code salarié, date début, durée, motif, Etat (En cours, Validé, Refusé). (0,5 pt)
     b. Ajouter un constructeur à 4 paramètres : code salarié, date début, durée et motif, et initialise l’état par la valeur « En cours ». (0,5 pt)
     c. Ajouter des accesseurs pour tous les champs. (0,5 pt)
     d. Ajouter les méthodes valider et refuser qui permettent de modifier l’état de la demande. (1pt)
4. Classe GestionCongé(11pts)
     a. Créer une classe GestionConge qui se caractérise par une liste des Directeur et une liste des DemandeConge  et ajouter un constructeur sans paramètre. (1 pt)
     b. Ajouter une méthode listeSalaries qui affiche la liste des noms des Salariés d’un  Directeur, cette méthode a comme paramètre le code du directeur. (2 pts)
     c. Ajouter une méthode ajouterDemandeConge qui permet d’ajouter un objet DemandeConge à la liste des demandes, cette méthode doit vérifier si le salarié a un solde de jours de congé suffisant si non la demande est refusée automatiquement et un message d’erreur doit être affiché. (2 pts)
     d. Ajouter une méthode listeCongeParMois qui retourne les noms des salariés qui ont bénéficié d’un congé pour le mois en cours. (3 pts)
     e. Ajouter une méthode listeDemandeCongeParSalarie qui retourne une liste des demandes de congé d’un salarié, cette méthode a comme paramètre le code d’un salarié. (3 pts)

Partie 3 : Programmation événementielle

On souhaite développer une application pour la gestion des Notes de l’examen de fin de formation. 
Chaque stagiaire est identifié par les informations suivantes :
     - Nom et prénom
     - Groupe
     - Niveau 
     - Moyenne EFM
     - Note arabe
     - Note français 
     - Note anglais
     - Note Théorie 
     - Note pratique
     - Moyenne de passage 
1. Créer la classe Stagiaire. (2 pts)
2. Créer une classe Liste Stagiaire qui contient une Collection d’objets Stagiaire. (2 pts) 
3. Créer l’interface ci-dessous : (4 pts)


EP - Examens de Passage Pratique 2011 V4-V5-V6 - TDI
EP - Examens de Passage Pratique 2011 V2 - TDI


4. Ecrire le code correspondant au bouton Valider permettant de valider les données saisies par l’utilisateur et de les stocker dans une collection d’objets Liste Stagiaire : les valeurs doivent être valides c'est-à-dire comprises dans les bons intervalles. exemple : la note Théorie doit être comprise entre 0 et 40. Si une erreur est détectée un message d’erreur doit être affiché.  (4 pts)
5. Ecrire le code correspondant au bouton Calculer permettant de calculer : (2 pts)
     • La moyenne de l’examen de communication qui vaut (Note Arabe + Note Français + Note Anglais)/4) .
     • La moyenne générale qui vaut (Moyenne de l’examen de communication + Moyenne EFM + Pratique + Théorie + Moyenne de passage)/200). 
6. Ajouter une interface qui permet de lister tous les stagiaires triés par ordre de mérite (par ordre décroissant de leurs moyennes générales) avec leurs notes dans une grille. (3 pts)
7. Ajouter dans cette interface un bouton Export qui permet d’enregistrer ces données dans un fichier. (3 pts)