20 juil. 2011

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)

Aucun commentaire:

Enregistrer un commentaire