13 juil. 2010

Examens de Passage - Pratique - TDI - 2010 - TDI - Variante 1

Examens de Passage - Pratique - TDI - 2010 - TDI - Variante 1


PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++


1. La  Direction d’un supermarché  a décidé d’accorder des réductions à ses clients selon le montant d’achat      
 La réduction est calculée selon les règles suivantes :
      - 20% pour un montant d’achat de plus de 5000 dhs
      - 15% pour un montant d’achat entre  3000 dhs < MonantAchat ≤5000 dhs  
      - 10% pour un montant d’achat entre  1000 dhs  < MonantAchat ≤3000 dhs
      - Aucune réduction pour un montant d’achat inférieur à 1000 dhs
Ecrire un programme qui permet de calculer et d’afficher la réduction et montant à payer. (1 Pt)     
2. La Direction d’une entreprise désire automatiser le calcul de l’indemnité à verser aux cadres en cas de licenciement.
Après un an d’ancienneté dans l’entreprise, il sera alloué aux cadres licenciés une indemnité tenant compte de  leur ancienneté et s’établissant comme suit :
      - la moitié du salaire d’un mois par année d’ancienneté : pour la tranche d’ancienneté entre 1 et 10 ans
      - au delà de 10 ans un mois de salaire par année d’ancienneté
      - une indemnité supplémentaire serait allouée aux cadres âgés de plus de 45 ans de :
      - 2 mois si le cadre est âgé de 46 à 49 ans
      - 5 mois si le cadre est âgé de plus de 50 ans.
Ecrire un programme qui permet de saisir l’âge, l’ancienneté et le dernier salaire et d’afficher l’indemnité du cadre.  (1.5 pts)

PARTIE II :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

On souhaite gérer la répartition des modules entre les formateurs d’un institut de formation professionnelle.
Soit la classe module qui modélise un module et qui comportera les attributs suivants :
      reference
      intitule 
      formateur  (matricule du Formateur qui enseigne ce module)
Soit la classe Formateur qui modélise un Formateur et qui comportera les attributs suivants :
       matricule
       nom  
       prenom 
       echelle 
      listeModule  

Travail à faire :
1- Codage de la classe Module
      a. Ecrire la classe Module avec un compteur des objets créés. (1pt)
2- Codage de la classe Formateur
      a. Ecrire la classe Formateur avec un compteur des objets créés. (1pt)
3- Ajouter la méthode compare qui teste l’égalité de 2 objets Formateur (2 objets Formateur sont égaux s’ils ont le même matricule). (1pt)
4- Créer une exception nommée erreurEchelle qui se déclenche lors de la saisie d’une échelle de formateur qui n’est pas comprise entre 1 et 20. (1pt)
5- Ajouter une méthode choixEnseignant qui désigne l’enseignant d’un module. (1pt)
6- Ajouter une méthode supprimerFormateur qui annule le choix de l’enseignant d’un module. (1pt)
7- Ajouter une méthode ajouterFormateur qui ajoute un module à la liste des modules pris en charge un formateur. (1pt)
8- Ajouter une méthode  supprimerModule qui supprime un module de la liste des modules d’un formateur. (1pt)
9- Ecrire un programme de test qui crée 4 formateurs et 5 modules : (1pt)
10-  Ecrire un programme permettant d’enregistrer les objets crées dans deux fichiers texte : Formateurs.txt et Modules.txt (1pt)

PARTIE III :  PROGRAMMATION ÉVÉNEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus convivialité, on souhaite développer quelques fonctionnalités de l’application de gestion de la répartition des modules en mode graphique.
1- Créer une interface qui permet la gestion des modules.
      a. Ajouter un module (0.5pt)
      b. Supprimer un module selon sa référence. (0.5pt)
      c. Modifier un module selon sa référence. (0.5pt)
      d. Rechercher un module selon sa référence ou son intitulé. (1pt)
      e. Afficher dans un label le nombre des modules créés (0.5pt)
2- Créer une interface qui permet la gestion des formateurs.
      a. Ajouter un formateur. (0.5pt)
      b. Supprimer un formateur selon son matricule. (0.5pt)
      c. Modifier les informations d’identité d’un formateur. (0.5pt)
      d. Rechercher un formateur selon son matricule. (0.5pt)
      e. Afficher l’ensemble des formateurs dans une grille (0.5pt)
3- Créer un menu permettant d’accéder à ces différentes fonctionnalités. (0.5pt)

Aucun commentaire:

Enregistrer un commentaire