Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts

Correction Complet d'Examen Théorique De Fin De Formation 2012

 

 Voir l'énoncé d'EFF Théorique 2012 sur le lien suivant : Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI  

 

  Correction Complet d'Examen Théorique De Fin De Formation 2012 - UML - Merise - SQL Server - POO - HTML - JavaScript - Réseaux

Dossier 1 : UML - Merise :

Voir le lien suivant : Correction EFF Théorie 2012 Partie UML et Merise

Dossier 2 : SQL Server :

Q 1 : Écrire une requête qui affiche le nombre de matchs joués dans la journée n°12.
     SELECT count(*)
     from Match
     Where numJournee=12
Q 2 : Écrire une requête qui affiche le nombre de matchs joués par journée.
     SELECT numJournee, Count(numMatch)
     From Match
     Group By numJournee
Q 3 : Écrire une requête qui affiche le match qui a compté le plus grand nombre de spectateurs..
     Select numMatch, dateMatch, numJournee
     From Match
     Where nombreSpectateur = (Select Max(nombreSpectateur) From Match)
Q 4 : Écrire une requête qui affiche le nombre de points de l’équipe de code 112 ; le nombre de
points se calcule de la façon suivante : une victoire donne 3 points, une égalité donne 1 point
et une défaite donne 0 point.

Solution 1 :
     Declare @nbVictoirs int , @nbEgalite int , @totalPoints int
     Select @nbVictoirs = Count(numMatch)
     From Match
     Where (nombreButLocaux > nombreButVisiteurs and codeEquipeLocaux=112) OR (nombreButLocaux < nombreButVisiteurs and codeEquipeVisiteurs=112)
     Select @nbEgalite = Count(numMatch)
     From Match
     Where (nombreButLocaux = nombreButVisiteurs) and (codeEquipeLocaux=112 OR codeEquipeVisiteurs=112)
     Set @totalPoints = @nbVictoirs * 3 + @nbEgalite
     Select @totalPoints
Solution 2 :
     SELECT SUM(MyTable.resultat) FROM
     (SELECT resultat=COUNT(numMatch)*3 FROM Match
     WHERE (nombreButLocaux > nombreButVisiteurs and codeEquipeLocaux=112)
     OR (nombreButLocaux < nombreButVisiteurs and codeEquipeVisiteurs=112)
     UNION
     SELECT Count(numMatch)  FROM Match
     WHERE (nombreButLocaux = nombreButVisiteurs)
     and (codeEquipeLocaux=112 OR codeEquipeVisiteurs=112)) MyTable

Q 5 : Écrire une procédure stockée qui affiche les équipes qui ont gagné leur match dans une
journée dont le numéro est donné comme paramètre.

     CREATE PROC Q5 @nbrjour int
     AS
     BEGIN
          SELECT codeEquipeLocaux AS 'Code Equipe' FROM Match
          WHERE nombreButLocaux > nombreButVisiteurs AND numJournee = @nbrjour
          UNION
          SELECT codeEquipeVisiteurs AS 'Code Equipe' FROM Match
          WHERE nombreButLocaux < nombreButVisiteurs AND numJournee = @nbrjour
     END
     EXEC Q5 1;
Q 6 : Écrire un trigger qui refuse l’ajout d’une ligne à la table Match pour laquelle la colonne
codeEquipeLocaux est égale à la colonne codeEquipeVisiteurs..

     CREATE TRIGGER question6 ON Match2 AFTER INSERT
     AS
     DECLARE @loc int , @vis int
     SELECT @loc= codeEquipeLocaux, @vis= codeEquipeVisiteurs FROM Inserted
     IF (@loc=@vis)
     BEGIN
          RAISERROR ('ATTENTION: codeEquipeLocaux == codeEquipeVisiteurs :p', 16, 1);
          Rollback
     END

Dossier 3 : POO - Programmation Orientée Objet :

Solution 1 : en Java Par : AJDI Yassin:
 Q 1 & Q 2 :
public class Camera {
     protected int code;
     protected String type;
     protected int orientation;
     public Camera() {
     super();
     }
     public Camera(int code, String type) {
     super();
     this.code = code;
     this.type = type;
     }
     public int getCode() {
     return code;
     }
     public void setCode(int code) {
     this.code = code;
     }
     public String getType() {
     return type;
     }
     public void setType(String type) {
     this.type = type;
     }
     public int getOrientation() {
     return orientation;
     }
     public void setOrientation(int orientation) {
     this.orientation = orientation;
     }
     public void tourner(int sens) {
     this.orientation = sens;
     }
     public void afficher() {
     System.out.println("-Code: " + this.code + " Orientation:"
     + this.orientation);
     }
}

Q3 - Q4 - Q5 :
public class CameraMobile extends Camera {
     private int abs;
     private int ord;
     public CameraMobile(String type, int code, int abs, int ord) {
     super(code, type);
     this.abs = abs;
     this.ord = ord;
     }
     public CameraMobile() {
     super();
     }
}
public int getAbs() {
     return abs;
}
public void setAbs(int abs) {
     this.abs = abs;
}
public int getOrd() {
     return ord;
}
public void setOrd(int ord) {
     this.ord = ord;
}
public void avancer(int d) {
     switch (this.orientation) {
     case 1:
     this.ord += d;break;
     case 2:
     this.abs += d;break;
     case 3:
     this.ord -= d;break;
     case 4:
     this.abs -= d;break;
     }
}
public void afficherPosition() {
     System.out.println("-position: abs=" + this.abs + " ord=" + this.ord);
}
public void afficher() {
     super.afficher();
     this.afficherPosition();
     }
}

Q 6 :
public class classTest {
     public static void main(String[] args) {
     // TODO Auto-generated method stub
     CameraMobile cm1 = new CameraMobile("SUMSUNG", 213, 0, 0);
     cm1.afficher();
     // a
     cm1.setOrientation(2);
     cm1.afficher();
     // b
     cm1.setOrientation(4);
     cm1.avancer(10);
     cm1.afficher();
     // c
     cm1.setOrientation(1);
     cm1.avancer(16);
     cm1.afficher();
     // d
     cm1.setOrientation(2);
     cm1.avancer(5);
     cm1.afficher();
     // e
     cm1.setOrientation(3);
     cm1.avancer(12);
     cm1.afficher();
     }
}


Solution 2 : en C# :

Q 1 - Q 2 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Public class Camera
{
     private int code;
     private string type;
     private int orientation;
     public Camera()
     { }
     public Camera(int code, string type, int orientation) {
          this.code = code;
          this.type = type;
           if (orientation >= 1 && orientation <= 4)
               this.orientation = orientation;
          else throw new Exception("valeur incorrecte");
     }
     public int Code {
          get { return code; }
          set { code = value; }
     }
     public string Type {
          get { return type; }
          set { type = value; }
     }
     public int Orientation {
          get { return orientation; }
          set {
          if (value >= 1 && value <= 4)
          orientation = value;
          else throw new Exception("valeur incorrecte");
          }
     }
     public void tourner(int sens){
          if (sens >= 1 && sens <= 4)
          orientation = sens;
          else throw new Exception("valeur incorrecte");
     }
     public virtual void afficher(){
          Console.WriteLine("La caméra {0} a l'orientation {1}",code,orientation);
     }
}

Q 3 - Q 4 - Q 5 :
Public class CameraMobile:Camera
{
     private int abs;
     private int ord;
     public CameraMobile():base()
     { }
     public CameraMobile(int code, string type, int orientation,int abs,int ord) :base(code,type,orientation){
          this.abs = abs;
          this.ord = ord;
     }
     public void afficherPosition(){
          Console.WriteLine("Abscisse={0}-Ordonnée={1}",abs,ord);
     }
     public override void afficher()
     {
          base.afficher();
          afficherPosition();
     }
     public void avancer(int d){
          switch (this.Orientation){
          case 1: ord += d; break;
          case 2: abs += d; break;
          case 3: ord -= d; break;
          case 4: abs -= d; break;
          }
     }
}

Q 6 :
Public class Test
{
     static void Main(string[] args){
          CameraMobile cm = new CameraMobile(125, "Sony FX30", 1, 0, 0);
          cm.afficher();
          cm.tourner(2); cm.afficher();
          cm.tourner(4); cm.avancer(10); cm.afficher();
          cm.tourner(1); cm.avancer(16); cm.afficher();
          cm.tourner(2); cm.avancer(5); cm.afficher();
          cm.tourner(3); cm.avancer(12); cm.afficher();
          Console.ReadLine();
     }
}

Dossier 3 : HTML - JavaScript - Réseaux:


Exercice 1 : HTML - JavaScript :
Q 1 - Q 2 :
    <html >
        <head>
            <script type="text/javascript">
                function ChangeEtat(f) {
                    if(f.accepter.checked == true) {f.validation.disabled = false }
                    if(f.accepter.checked == false) {f.validation.disabled = true }
                }
                function valForm (f) {
                    if(f.nom.value == "" || f.prenom.value == "" || f.jour.value == "" || f.mois.value == "" || f.an.value == "" || f.pass.value == "" || f.confpass.value == "")
                        alert('Remplir tous les champs!!');
                    else
                        if(f.jour.value <=0 || f.jour.value >31|| f.mois.value <=0 || f.mois.value <=0 || f.mois.value>12 || f.an.value<1900)
                            alert('Date incorrecte!!');
                        else
                            if (f.pass.value != f.confpass.value)
                                alert('Le mot de passe et sa confirmation ne coïncident pas !! ');
                            else
                                f.submit();
                }
            </script>
        </head>
        <body >
            Pour s’inscrire, remplir le formulaire :< br >
            <form Action=" inscr.html" Method="Post" name="f1">
            Nom:<br>
            <input name="nom" size="30" ><br /><br />
            Prénom:<br>
            <input name="prenom" size="30" ><br /><br />
            Date de naissance:<br>
            <input name="jour" size="6" > <input name="mois" size="6" > <input name="an" size="6" ><br /><br />
            Mot de passe : <br />
            <input type="password" name="pass" size="30" >
            <br /><br />
            Confirmer mot de passe :<br>
            <input type="password" name="confpass" size="30" /><br /><br />
            <p><input type="checkbox" name="accepter" onClick=" ChangeEtat (this.form)" >J'accepte les conditions</p>
            <p>
            <input type="button" name="validation" value="Valider" disabled onClick="valForm(this.form)" >
            <input type="reset" value="Annuler" ></p>
            </form>
        </body>
    </html>


Q 3 :
On ajoute aux scripts, la fonction :
    function start() {
        setTimeout(window.close, 8000);
    }

La function start s’éxécute au chargement de la page par :
    <body onload="start()">

 Exercice 2 : Réseaux :
 De Q1 à Q4 voir cours.
 Q5 :
   a - Donner les adresses IP et les masques de chaque machine.
        - les adresses autorisées sont (192.168.79.2 jusqu'à 192.168.79.254) sous un masque 255.255.255.0

   b - Donner le type de câble utilisé pour connecter les équipements entre eux.

       
   c - Donner la commande MSDOS pour tester si la machine 1 est connectée à Internet.
        - La commande MSDOS : ping 42.42.6.6
   d - On souhaite que la machine 1 joue le rôle d’un serveur Web (IIS ou Apache), donner les
étapes d’installation et de configuration de ce serveur.

        - Voir cours.

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 SQL Server - Oracle - Vb.Net - C# - Asp.Net 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-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net



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-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net


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-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net


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

EFF - Examens Fin Formation  - TDI - Pratique 2011 SQL Server - Oracle - Vb.Net - C# - Asp.Net Variante 8

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-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net



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-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net


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 du membre qui porte le login « admin ». (4 pts)
4) Créer la fonction qui reçoit en paramètre le code d’un thème et renvoie le nombre de documents correspondants. (2 pts)
5) Créer la procédure stockée qui renvoie le nombre de commentaires par thème. (4 pts)
6) Développer la procédure stockée permettant de trouver les membres qui ont publié plus de cinq 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 document à l’aide d’un bouton de commande. Ce formulaire offrira la possibilité de naviguer entre les documents 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_document. (4 pts)
2) Développer un formulaire permettant aux administrateurs de mettre à jour la table « Theme ». Le formulaire doit comporter : (4 pts)
     • des boutons de navigation.
     • Les boutons ajouter, supprimer et enregistrer.
     • le nombre de documents associés à chaque thème.
3) Ajouter un formulaire permettant aux administrateurs de consulter et de supprimer les documents indésirables. Le formulaire permettra de naviguer sur la liste des documents « bloqués » ( etat_document = 2). Un bouton de commande permettra à l’administrateur de supprimer un document indésirable. (4 pts)
4) Développer un formulaire permettant de sélectionner un thème et d’enregistrer sur un fichier texte, à l’aide d’un boutons de commande, l’ensemble des informations de description des documents, en rapport avec ce thème, enregistrés sur la base de données. (4 pts)
5) Créer un menu et une barre d’outils pour votre application comprenant toutes les options développées avec les questions précédentes. (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) 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)
2) Développer une page Web qui permet d’afficher une liste de documents envoyés entre deux dates. Les dates de début et de fin doivent être saisies dans des zones de textes dans la même page avant d’appliquer la recherche. Le résultat de la recherche doit être affiché dans la même page aussi. (2 pts)
3) Développer une page qui permet à un membre d’ajouter un document :
     a. L’internaute commence par sélectionner un thème sur une liste déroulante. (1 pt)
     b. Il saisit ensuite toutes les informations relatives au document.  (2 pts)
     c. L’utilisateur doit avoir la possibilité d’envoyer le fichier correspondant au document vers le serveur. (2 pts)
4) 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 une calculatrice simplifiée selon le design ci-dessous, permettant à l’utilisateur d’effectuer l’une des 4 opérations arithmétiques (+, -, *, /) sur 2 ou plusieurs chiffres saisis directement dans la zone de texte, ou à l’aide des clicks de la souris sur les boutons correspondants.
     - Un click sur le bouton ‘=’ permet d’afficher le résultat.
     - Un click sur le bouton ‘C’ permet d’effacer un chiffre saisi par erreur.


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-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net


EFF - Examens Fin Formation  - TDI - Pratique 2011 SQL Server - Oracle - Vb.Net - C# - Asp.Net 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 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net


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 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net


Télécharger Les EFF - Examens Fin Formation - TDI - Pratique 2011 - V7-V8-V9 - SQL Server - Oracle - Vb.Net - C# - Asp.Net :
en format .pdf sur le lien suivant :

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


EP - 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.

Télécharger L'Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise :
en format .pdf sur le lien suivant :

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


Examens de Passage - 2010 - Pratique - V7 - V8 - V9


Examens de Passage - 2010 - Pratique - Variante 7

PARTIE I :  PROGRAMMATION STRUCTURÉE EN C OU C++

1. Ecrire  un programme qui permet d’insérer une valeur X dans un tableau T, supposé trié, de façon à respecter l’ordre des éléments de T. le tableau T contient N éléments et sera dimensionné à N+1 (pour permettre de ranger X). (1 Pt)
     Si N=10 et T =  17 17 21 23 24 26 27 30 30 38
     Si X =25  on doit obtenir : T =  17 17 21 23 24 25 26 27 30 30 38
2. Écrire un programme qui lit un entier X et un tableau A du type int au clavier et élimine toutes les occurrences de X dans A en tassant les éléments restants (décalage). (1 Pt)
3. Écrire un programme permettant de calculer le Poids Idéal (PI) obtenue par la formule de Lorentz (1 Pt)
     Pour les femmes : PI = t - 100 - [ ( t - 150 ) / 2 ]
     Pour les hommes : PI = t - 100 - [ ( t - 150 ) / 4 ]
     t = taille en centimètre
4. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)



Examens de Passage - 2010 - Pratique - V7 - V8 - V9
Examens de Passage - 2010 - Pratique - V7 - V8 - V9

PARTIE II :  LOGICIELS D’APPLICATION

On veut développer une application qui gère les réparations  des  clients. Pour assurer cette gestion, le  modèle relationnel suivant a été établi :
     CLIENT (NumCli, NomCli, PrenomCli, AdresseCli, VilleCli)
     TECHNICIEN (NumTech, NomTech, AdresseTech, DateEmbaucheTech, VilleTech)
     REPARATION (NumRept, MontantRep, DateRépot, DateReprise, NumCli, NumTech)

1. Créez la base de données sous MS Access  (1 Pt)              
     - Définir la clé primaire pour chaque table
     - Définir les clés étrangères
     - Définir les relations entre les tables
     - Saisir un jeu  d’enregistrements significatif pour chaque table.
2. Créer les requêtes suivantes :  (1 Pt)     
     - Afficher la liste de tous les clients
     - Afficher les clients dont la deuxième lettre du nom est la lettre B
     - Afficher des clients ayant demandé plus que 3 réparations
     - Afficher les   techniciens embauchés entre 2001 et 2009
3. Créer un formulaire pour mettre à jour la table REPARATION (1 Pt)

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

Un centre de formation professionnelle souhaite mettre en place système de gestion de parrainage des stagiaires.
Soit la class Formateur qui comporte les attributs suivants :
     codeIdentifiant int
     nom   String
     prenom  String
     sexe   char (‘M’,’F’)
     age   int
     spacialité  String

1) Codage de la class Formateur : (1.5 Pts)
     - Ecrire la class Formateur.
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Formateur.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Formateur ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Formateur.
     - Ajouter une méthode afficher () qui afficher toutes les informations d’un formateur.
2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un formateur.  (0.5 Pt)
Soit la classe Stagiaire qui modélise un stagiaire et qui comporte les attributs suivants :
     codeStagiaire  int
     nom    String
     prenom  String
     niveau   int

3) Codage de la class Stagiaire : (1 Pt)
     - Ecrire la class Stagiaire
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Stagiaire.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeStagiaire de la class Stagiaire ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Stagiaire.
Soit la classe Parrain qui reprend tous les attributs de la classe Formateur et qui y ajoute une collection d’objets Stagiaire (liste des stagiaires parrainés par le formateur identifiés par leurs codeStatgiaire).
4) Codage de la class Parrain : (1 Pt)
     - Ecrire la classe Parrain.
     - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain.
5) Ajouter une méthode ajouterStagiaire() qui ajoute un Stagiaire à la collection des stagiaires parrainés par le formateur. (1 Pt)
6) Ajouter une méthode supprimerStagiaire() qui supprime un stagiaire de la collection des stagiaires parrainés par le formateur. (1 Pt)

PARTIE IV :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des stagiaires.
1) Créer un formulaire permettant de mettre à jour les informations relatives à un formateur (1 Pt)
2) Créer un formulaire permettant de mettre à jour les informations relatives à un stagiaire (1 Pt)
3) Créer un formulaire qui permet :
     a. Ajouter un stagiaire à la collection des stagiaires parrainés par un formateur. (0.5 Pt)
     b. Supprimer un stagiaire de la collection des stagiaires parrainés par un formateur. (0.5 Pt)
     c. Afficher la collection des stagiaires parrainés par un formateur donné. (0.5 Pt)
     d. Afficher le nombre de stagiaires parrainés par un formateur donné. (0.5 Pt)
4) Nous souhaitons enregistrer l’ensemble des stagiaires parrainés par un formateur dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt)
5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt)
6) Protéger l’accès à cette application par : (0.5 Pt)
     Nom d’utilisateur : ADMIN
     Mot de passe : t-d-info

Examens de Passage - 2010 - Pratique - Variante 8

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. Écrire un programme permettant de calculer le Poids Idéal (PI) obtenue par la formule de Lorentz (1 Pt)
     Pour les femmes : PI = t - 100 - [ ( t - 150 ) / 2 ]
     Pour les hommes : PI = t - 100 - [ ( t - 150 ) / 4 ]
     t = taille en centimètre
2. Ecrire  un programme qui permet d’insérer une valeur X dans un tableau T, supposé trié, de façon à respecter l’ordre des éléments de T. le tableau T contient N éléments et sera dimensionné à N+1 (pour permettre de ranger X). (1 Pt)
    Si N=10 et T =  17 17 21 23 24 26 27 30 30 38
    Si X =25  on doit obtenir : 17 17 21 23 24 25 26 27 30 30 38
3. Écrire un programme de recherche de la valeur maximale d'une matrice de réels de taille n x m. (1 Pt)
4. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)



Examens de Passage - 2010 - Pratique - V7 - V8 - V9
Examens de Passage - 2010 - Pratique - V7 - V8 - V9

PARTIE II :  LOGICIELS D’APPLICATION

On vous demande de développer une application sous MS Access  pour gérer  les  réservations des clients :
    Client (numCli, nomCli, AdresseCli, VilleCli)
    Chambre (numChambre, prixChambre, typeChambre)
    Réservation (numRes, dateDébut, dateFin, numCli#, NumChambre #)

NB : numCli# et NumChambre # sont deux clés étrangères
1.  Créez la base de données sous MS Access  (1 Pt) 
     - Définir la clé primaire pour chaque table
     - Définir les clés étrangères 
     - Définir les relations entre les tables
     - Saisir un jeu  d’enregistrements significatif pour chaque table.  
2. Créer les requêtes suivantes :   (1 Pt)
     - Afficher la liste des clients de Rabats 
     - Afficher le prix moyen de toutes les chambres
     - Afficher le prix moyen par type Chambre 
     - Afficher les réservations de l’année 2009   
3. Créer un formulaire pour mettre à jour la table Réservation (1 Pt)

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

La faculté des sciences et techniques de Settat souhaitent mettre en place système de gestion de parrainage des étudiants.
Soit la class Enseignant qui comporte les attributs suivants :
    codeIdentifiant int
    nom   String
    prenom  String
    sexe   char (‘m’,’f’)
    age   int
    affectation  String

1) Codage de la class Enseignant : (1.5 Pts)
     - Ecrire la class Enseignant.
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Enseignant.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Enseignant ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Enseignant.
     - Ajouter une méthode afficher () qui afficher toutes les informations d’un Enseignant.
2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un Enseignant.  (0.5 Pt)
Soit la classe Etudiantqui modélise un Etudiant et qui comporte les attributs suivants :
    codeÉtudiant  int
    nom    String
    prenom  String
    niveau   int

3) Codage de la class Etudiant: (1 Pt)
     - Ecrire la class Etudiant
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Étudiant.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeEtudiant de la class Etudiant; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Étudiant.
Soit la classe Parrain qui reprend tous les attributs de la classe Enseignant et qui y ajoute une collection d’objets Etudiant(liste des étudiants parrainés par l’Enseignant identifiés par leurs codeEtudiant).
4) Codage de la class Parrain : (1 Pt)
     - Ecrire la classe Parrain.
     - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain.
5) Ajouter une méthode ajouterÉtudiant() qui ajoute un Etudiant à la collection des étudiants parrainés par un enseignant. (1 Pt)
6) Ajouter une méthode supprimerÉtudiant() qui supprime un Etudiant de la collection des Etudiants parrainés par un enseignant. (1 Pt)

PARTIE IV :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des étudiants.
1) Créer un formulaire permettant de mettre à jour les informations relatives à un Enseignant (1 Pt)
2) Créer un formulaire permettant de mettre à jour les informations relatives à un Etudiant (1 Pt)
3) Créer un formulaire qui permet :
    a. Ajouter un Etudiant à la collection des étudiants parrainés par un enseignant. (0.5 Pt)
    b. Supprimer un Etudiant de la collection des étudiants parrainés par un Enseignant. (0.5 Pt)
    c. Afficher la collection des étudiants parrainés par un Enseignant donné. (0.5 Pt)
    d. Afficher le nombre d’ étudiants parrainés par un Enseignant donné. (0.5 Pt)
4) Nous souhaitons enregistrer l’ensemble des étudiants parrainés par un Enseignant dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt)
5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt)
6) Protéger l’accès à cette application par : (0.5 Pt)
    Nom d’utilisateur : ADMIN
    Mot de passe : t-d-info

Examens de Passage - 2010 - Pratique - Variante 9

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. Écrire un programme de recherche de la valeur maximale d'une matrice de réels de taille n x m. (1 Pt)
2. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)



Examens de Passage - 2010 - Pratique - V7 - V8 - V9
Examens de Passage - 2010 - Pratique - V7 - V8 - V9


3. Un nombre parfait est un entier positif supérieur a 1, égal à la somme de ses diviseurs
    NB : on compte 1 comme diviseur, mais on ne compte pas comme diviseur le nombre lui-même.
    Exemple :
    6 est un nombre parfait puisque : 6 = 3 + 2 + 1.
1. Ecrire une fonction qui prend pour argument un nombre entier n et retourne Vrai si n est parfait ou Faux sinon. (1 Pt)
2. Ecrire un programme permettant de lister les 500 premiers nombres parfaits (1 Pt)

PARTIE II :  LOGICIELS D’APPLICATION

Soit le modèle relationnel suivant :
    MEDECIN (Matricule, nom)
    PATIENT (NumPat, Nom)
    MEDICAMENTS (Code, Libelle, prix)
    CONSULTATION (NumConsult, date, prix, Matricule, N°_SS)
    PRESCRIT (Code, NumPat)

(Pour simplifier l’analyse la base suppose qu’un patient peut voir un médecin une seule fois pour une date donnée.)
1. Créez la base de données sous MS Access  (1 Pt)              
     - Définir la clé primaire pour chaque table
     - Définir les clés étrangères
     - Définir les relations entre les tables
     - Saisir un jeu  d’enregistrements significatif pour chaque table.
2. Créer les requêtes suivantes :  (1 Pt)
     - Afficher la liste des médecins dont la première lettre est saisie au clavier
     - Déterminer le nombre de consultations pour chaque patient
     - Afficher les caractéristiques de toutes les consultations effectuées entre deux dates saisies au clavier (les champs à afficher sont : N°consultation, date, prix, nom du patient et le nom du médecin
     - Afficher le nombre de consultations effectuées par chaque médecin et trier le résultat par ordre décroissant.
3. Créer un formulaire pour mettre à jour la table CONSULTATION (1 Pt)

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

Une école privée souhaite mettre en place un système de gestion de parrainage des élèves.
Soit la class Professeur qui comporte les attributs suivants :
    codeIdentifiant int
    nom   String
    prenom  String
    sexe   char (‘M’,’F’)
    age   int
    affectation  String

1) Codage de la class Professeur : (1.5 Pts)
     - Ecrire la class Professeur.
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Professeur.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Professeur ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Professeur.
     - Ajouter une méthode afficher () qui afficher toutes les informations d’un Professeur.
2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un Professeur.  (0.5 Pt)
Soit la classe Elève qui modélise un Elève et qui comporte les attributs suivants :
    codeEleve  int
    nom    String
    prenom  String
    niveau   int

3) Codage de la class Elève: (1 Pt)
     - Ecrire la class Elève
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Elève.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeEleve de la classe Elève; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Elève.
Soit la classe Parrain qui reprend tous les attributs de la classe Professeur et qui y ajoute une collection d’objets Eleve (liste des Elèves parrainés par le Professeur identifiés par leurs codeEleve).
4) Codage de la class Parrain : (1 Pt)
     - Ecrire la classe Parrain.
     - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain.
5) Ajouter une méthode ajouterEleve() qui ajoute un Elève à la collection des Elèves parrainés par un Professeur. (1 Pt)
6) Ajouter une méthode supprimerEleve() qui supprime un Elève de la collection des Elèves parrainés par un Professeur. (1 Pt)

PARTIE IV :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des Elèves.
1) Créer un formulaire permettant de mettre à jour les informations relatives à un Professeur (1 Pt)
2) Créer un formulaire permettant de mettre à jour les informations relatives à un Elève (1 Pt)
3) Créer un formulaire qui permet :
    a. Ajouter un Elève à la collection des Elèves parrainés par un Professeur. (0.5 Pt)
    b. Supprimer un Elève de la collection des Elèves parrainés par un Professeur. (0.5 Pt)
    c. Afficher la collection des Elèves parrainés par un Professeur donné. (0.5 Pt)
    d. Afficher le nombre d’élèves parrainés par un Professeur donné. (0.5 Pt)
4) Nous souhaitons enregistrer l’ensemble des Elèves parrainés par un Professeur dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt)
5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt)
6) Protéger l’accès à cette application par : (0.5 Pt)
    Nom d’utilisateur : ADMIN
    Mot de passe : t-d-info

Télécharger Les Examens de Passage - 2010 - Pratique - V7 - V8 - V9 :
en format .pdf sur le lien suivant :

Examens de Passage - 2010 - Pratique - V7 - V8 - V9


Retrouvez-nous sur Facebook
×Facebook Les Filières Informatiques