1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Welcome to our Education website, plz like our page facebook to support us. Thank You and wish you good navigation

Examen de passage à la 2eme année Session Juin 2016 (Correction)

abdelouafiDec 28, 2016

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      197
      Likes Received:
      9
      Trophy Points:
      18
      Joined
      Sep 13, 2016
      L'énoncé de ce EFF sera publié prochainnement
      Partie I : Théorie (40 pts)
       Dossier 1: Notions de mathématiques appliquées à l’informatique (12 pts)

      1. Convertir en binaire les nombres suivants (06 pts)
      (145)8 : 1100101
      (A4BE)16 : 1010010010111110
      (59)10 : 111011

      2. Effectuer en binaire l’opération suivante (02 pts)
      1011110*11 = 100011010

      3. A l’aide du tableau de Karnaugh, simplifier la fonction F définie par sa table de vérité suivante : (04pts)
      1.png


      H= E/F+ FG+/F /G
      Dossier 2: Techniques de programmation structurée (8 pts)
      Code:
      constante A =12
      constante B=10
      debut
      i,j,T1[ A],T2[B],res[B][A] : entier ;
      i=0;
      pour i allant de 0 à A
      lire (T1[i]);
      pour i allant de 0 à B
      lire (T2[j]);
      max= T1[j] ;
      pour i allant de 0 à A
      faire
      if(max > T1[i] );
      max= T1[i]
      fin pour
      pour i allant de 0 à B
      faire
      if(max > T2[i] );
      max= T2[i] ;
      fin pour
      pour i allant de 0 à B
      pour j allant de 0 à A
      res[i][j]=T1[i]*T2[j]*max;
      pour i allant de 0 à B
      pour j allant de 0 à A
      ecrire(res[i][j]);
      Fin
      
      Dossier 3: Conception et modélisation d'un système d'information (20 pts)
      1. Etablir le modèle conceptuel des données correspondant
      2.png

      2. Etablir le modèle logique des données associé.
      3.png

      Partie II: Pratique (80 pts)
       Dossier 1: Langage de programmation structurée (25 pts)

      1- Définir une structure chargeDéplacement pouvant contenir ces informations
      Code:
      typedefstructchargeDéplacement {
      int identifiant;
      char mission[30];
      char lieu[30];
      intduree;
      int montant;
      char statut[30];
      }nf;
      2-
      chargeDéplacement HistoriqueChargeDéplacement [20];
      3-

      Code:
      scanf("%d",&n);
      for(j=0;j<n;j++){
      printf("info du chargeDéplacement %d\n",j+1);
      printf("donner le identifiant de note de frais\n");
      scanf("%d",&HistoriqueChargeDéplacement[j].identifiant);
      printf("donner la mission\n");
      scanf("%s",HistoriqueChargeDéplacement[j].mission);
      printf("donner le lieu\n");
      scanf("%s",HistoriqueChargeDéplacement[j].lieu);
      printf("donner la duree de note de frais\n");
      scanf("%d",&HistoriqueChargeDéplacement[j].duree);
      printf("donner le montant de note de frais\n");
      scanf("%d",&HistoriqueChargeDéplacement[j].montant);
      printf("donner le statut de chargeDéplacement \n");
      scanf("%s",HistoriqueChargeDéplacement[j].statut);
      }
      4-
      Code:
      for(j=0;j<n;j++){
      printf("info du chargeDéplacement %d\n",j+1);
      printf("le nom "%s ",HistoriqueChargeDéplacement[j].mission);
      printf("le lieu %s", HistoriqueChargeDéplacement[j].lieu);
      printf("le identifiant de chargeDéplacement %d",
      HistoriqueChargeDéplacement [j].identifiant);
      printf("la duree %d", HistoriqueChargeDéplacement[j].duree);
      printf("le montan %d", HistoriqueChargeDéplacement[j].montant);
      printf("le type de chargeDéplacement %s",
      HistoriqueChargeDéplacement[j].statut);
      }
      
      5-
      Code:
      for(j=0;j<n;j++){
      if(HistoriqueChargeDéplacement[j].statut =="en cours")
      {
      printf("info du chargeDéplacement %d\n",j+1);
      printf("le nom "%s ",HistoriqueChargeDéplacement[j].mission);
      printf("le lieu %s", HistoriqueChargeDéplacement[j].lieu);
      printf("le identifiant de chargeDéplacement %d",
      HistoriqueChargeDéplacement [j].identifiant);
      printf("la duree %d", HistoriqueChargeDéplacement[j].duree);
      printf("le montan %d", HistoriqueChargeDéplacement[j].montant);
      printf("le type de chargeDéplacement %s",
      HistoriqueChargeDéplacement[j].statut);
      }
      }
      
      6-
      Code:
      inttotmontant=0 ;
      for(j=0;j<n;j++){
      totmontant+= HistoriqueChargeDéplacement[j].montant;
      }
      printf(" le montant totale des chargeDéplacement est: %d\n",
      totmontant);
      
      7-
      Code:
      printf("donner le numero et le montant de note de frais \n");
      scanf("%d%d",&num,&mnt);
      for(j=0;j<n;j++){
      if((HistoriqueChargeDéplacement [j].mission,identifiant)==num)
      HistoriqueChargeDéplacement [j].montant=mnt;
      }
      8-
      Code:
      printf("donner le numero et le montant de note de frais \n");
      scanf("%d%d",&num,&mnt);
      for(j=0;j<n;j++){
      if((HistoriqueChargeDéplacement [j].mission,identifiant)==num)
      HistoriqueChargeDéplacement [j].montant=mnt;
      }
      
      8-
      Code:
      printf("donner le identifiant de note de frais\n");
      scanf("%d",&HistoriqueChargeDéplacement[j].identifiant);
      printf("donner la mission\n");
      scanf("%s",HistoriqueChargeDéplacement[j].mission);
      printf("donner le lieu\n");
      scanf("%s",HistoriqueChargeDéplacement[j].lieu);
      printf("donner la duree de note de frais\n");
      scanf("%d",&HistoriqueChargeDéplacement[j].duree);
      printf("donner le montant de note de frais\n");
      scanf("%d",&HistoriqueChargeDéplacement[j].montant);
      printf("donner le statut de chargeDéplacement \n");
      scanf("%s",HistoriqueChargeDéplacement[j].statut);
      i=0;
      while(HistoriqueChargeDéplacement[i].identifiant<ident) i++;
      for(j=n-1;j>=i;j--){
      HistoriqueChargeDéplacement [j+1]= HistoriqueChargeDéplacement [j];
      }
      strcpy(HistoriqueChargeDéplacement [i].mission,mission);
      strcpy(HistoriqueChargeDéplacement [i].lieu,lieu);
      HistoriqueChargeDéplacement [i].identifiant=identifiant;
      printf("le nouveau tableau des notes de frais est:\n");
      n++;
      for(j=0;j<n;j++){
      printf("info du chargeDéplacement %d\n",j+1);
      printf("le nom "%s ",HistoriqueChargeDéplacement[j].mission);
      printf("le lieu %s", HistoriqueChargeDéplacement[j].lieu);
      printf("le identifiant de chargeDéplacement %d",
      HistoriqueChargeDéplacement [j].identifiant);
      printf("la duree %d", HistoriqueChargeDéplacement[j].duree);
      printf("le montan %d", HistoriqueChargeDéplacement[j].montant);
      printf("le type de chargeDéplacement %s",
      HistoriqueChargeDéplacement[j].statut);
      }
      
      9-
      Code:
      do{
      printf("****************Menu*******************:\n");
      printf("****************QUESTION 1*************:\n");
      printf("****************QUESTION 2*************:\n");
      printf("****************QUESTION 3*************:\n");
      printf("****************QUESTION 4*************:\n");
      printf("****************QUESTION 5*************:\n");
      printf("****************QUESTION 6*************:\n");
      printf("****************QUESTION 7*************:\n");
      printf("****************QUESTION 8***********:\n");
      printf("****************QUESTION 9*************:\n");
      printf("****************QUITTER 0**************:\n");
      scanf("%d",&choix);
      switch(choix){
      case 1:
      case 2:
      etc…
      }while(choix!=0);
      Dossier 2: Langage de programmation Orientée Objet (30 pts)
      1. Classe Salarié.(4 pts)
      Code:
      class Salarie
      {
      int identifiant { get; set; }
      public string Nom { get; set; }
      public string Prenom { get; set; }
      public string Adresse { get; set; }
      public string Genre { get; set; }
      public float Age { get; set; }
      private string service { get; set; }
      private string departement { get; set; }
      public string Ville { get; set; }
      public Salarie() { }
      public Salarie(int id, string nom, string prenom, string adresse, string
      Genre, float Age, string service, string dep)
      {
      this.identifiant = id;
      this.Nom = nom;
      this.Prenom = prenom;
      this.Adresse = adresse;
      this.Genre = Genre;
      this.Age = Age;
      this.service = service;
      this.departement = dep;
      }
      public override string ToString()
      {
      return "id:"+ this.identifiant + " Nom\n" + this.Nom + "Prenom\n" +
      this.Prenom+"Adresse:"+ this.Adresse + " Genre\n" + this.Genre + "Age\n" +this.Age+
      "service:"+ this.service + " Departement\n" + this.departement ;
      }
      }
      2. Classe Dépense:(4 pts)
      Code:
      class Dépense
      {
      int Numero;
      string Libellé;
      string Lieu;
      string Commentaire;
      float Montant;
      public Dépense() { }
      public Dépense(int num, string libelle, string lieu, string commentaire,
      float montant)
      {
      this.Numero = num;
      this.Libellé = libelle;
      this.Lieu = lieu;
      this.Commentaire = commentaire ;
      this.Montant = montant ;
      }
      public virtual int CalculerCharge ()
      { return montant * taux; }
      public override string ToString() { return "Numero:" + this.Numero + " Libellé\n" + this.Libellé + "Lieu\n" + this.Lieu + "Commentaire:" + this.Commentaire + " Montant\n" + this.Montant; } }
      
      3. Classe ChargeDéplacementVoiture: (7 pts)
      Code:
      class cheveauException : Exception
      {
      public cheveauException()
      : base("le nombre de de chevaux ne doit pas etre inférieur à 6 ou
      supérieur à 14")
      {
      }
      }
      class ChargeDéplacementVoiture : Dépense
      {
      string marque;
      int nombrechevaux;
      string typecarburant;
      string numplaque;
      public ChargeDéplacementVoiture():base() { }
      public ChargeDéplacementVoiture(int num, string libelle, string lieu, string
      commentaire, float montant , string marque, int nombrechevaux, string
      typecarburant,string numplaque): base ( num, libelle, lieu, commentaire,
      montant )
      {
      if ((nombrechevaux < 6) || (nombrechevaux > 14))
      { throw new cheveauException (); }
      else
      {
      this.marque = marque ;
      this.nombrechevaux = nombrechevaux ;
      this.typecarburant = typecarburant ;
      this.numplaque = numplaque ;
      }
      }
      public override int CalculerCharge ()
      {
      return Kilométrage * 11 ;
      }
      public override string ToString()
      {
      return base.ToString() + "marque:" + this.marque + " nombrechevaux\n" +
      this.nombrechevaux + "typecarburant\n" + this.typecarburant + "numplaque:" +
      this.numplaque;
      }
      }
      
      4. Classe ListeChargeDéplacement:(10 pts)
      Code:
      class ListeChargeDéplacement
      {
      public List<Dépense> lp;
      public ListeChargeDéplacement()
      {
      lp = new List<Dépense>();
      }
      public void ajouter(Dépense dep)
      {
      Console.WriteLine("Confirmer l'ajout en tappant le chiffre 1");
      int rep=Convert.ToInt32( Console.ReadLine());
      if (rep==1)
      lp.Add(dep);
      }
      public void Afficher()
      {
      foreach (Dépense dep in lp)
      dep.ToString();
      }
      public void supprimer(Dépense dep)
      {
      foreach (Dépense d in lp)
      {
      if (d.Equals(dep))
      {
      Console.WriteLine("Confirmer la suppression en tappant le chiffre 1");
      int rep = Convert.ToInt32(Console.ReadLine());
      if (rep == 1)
      lp.Remove(dep); break;
      }
      }
      }
      public void Rechercher()
      {
      foreach (Dépense d in lp)
      {
      if (d.Montan > 1000 )
      {
      d.ToString();
      }
      }
      }
      }
      
      Dossier 2 : (25 Pts)
      1. Ecrire le code du bouton Enregistrer permettant d’enregistrer la liste des charges de déplacement dans un fichier texte. (6 pts)
      Code:
      private void buttonEnregistrer_Click(object sender, EventArgs e)
      {
      FileStream fichier = File.Open("fich.xml", FileMode.Create);
      XmlSerializer s = new XmlSerializer(typeof(ListeChargeDéplacement));
      s.Serialize(fichier, this);
      fichier.Close();
      }
      
      2. Ecrire le code du bouton Afficher permettant d’afficher dans la grille les charges de déplacement d’un Lieu sélectionnée à partir de la zone de liste. (6 pts)
      Code:
      public List<Dépense> lp;
      private void buttonAfficher_Click(object sender, EventArgs e)
      {
      foreach (Dépense d in lp)
      {
      if (d.Lieu1 == comboBox1.Text)
      {
      dataGridView1.Rows.Add(d.Numero1,d.Montan,d.Lieu1,
      d.Libellé1 ,d.Commentaire1);
      }
      }
      }
      
      3. Ecrire le code nécessaire pour le bouton Supprimer qui permet de supprimer la charge de déplacement dont le numéro est saisie dans le textbox, la suppression doit être effectuée à la fois dans la liste et dans la grille et un message de confirmation doit être affiché avant de procéder à la suppression. (7 pts)
      Code:
      private void ButtonSupprimer_Click(object sender, EventArgs e)
      {
      bool t = false;
      for (int i = 0; i < lp.Count; i++)
      {
      if (lp[i].Numero1 == Convert .ToInt32 ( textBox1.Text))
      {
      t = true;
      DialogResult res = MessageBox.Show("Etes vous sur de vouloir
      effectuer la suppression?", "Confirmation", MessageBoxButtons.YesNo);
      if (res == DialogResult.Yes)
      {
      for (int j = 0; j < dataGridView1.RowCount; j++)
      {
      if (Convert .ToInt32 (
      dataGridView1.Rows[j].Cells[0].Value) == Convert .ToInt32 ( textBox1.Text))
      dataGridView1.Rows.RemoveAt(j);
      }
      //dataGridView1.Rows.RemoveAt(i);
      listBox1.Items.Remove(lp[i]);
      lp.RemoveAt(i);
      clear(); break;
      }
      }
      }
      if (t == false) MessageBox.Show("note de frais inexistante");
      }
      
      4. Ecrire le code nécessaire pour le bouton Total permettant d’afficher le montant total des charges de déplacement enregistrées. (6 pts)
      Code:
       {
      float total = 0.0;
      foreach (Dépense d in lp)
      {
      total += d.Montan;
      }
      TextBoxTotal = total.ToString();
      }
      
       
      Loading...
    2. defense-arabic

      defense-arabic New Member

      Messages:
      1
      Likes Received:
      0
      Trophy Points:
      1
      Joined
      Dec 30, 2016
      merci bcp
       

Share This Page

Share