0% ont trouvé ce document utile (0 vote)
13 vues5 pages

Inf 132

Le document présente un exercice de développement d'une application de gestion des étudiants, incluant la définition des structures de données pour les établissements, filières et étudiants. Il décrit également les fonctions nécessaires pour créer ces structures et rechercher un étudiant par son niveau et matricule. Enfin, il inclut des exemples de code en C pour illustrer la mise en œuvre des structures et des fonctions.

Transféré par

nangandreduval
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues5 pages

Inf 132

Le document présente un exercice de développement d'une application de gestion des étudiants, incluant la définition des structures de données pour les établissements, filières et étudiants. Il décrit également les fonctions nécessaires pour créer ces structures et rechercher un étudiant par son niveau et matricule. Enfin, il inclut des exemples de code en C pour illustrer la mise en œuvre des structures et des fonctions.

Transféré par

nangandreduval
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

ANNÉE ACADÉMIQUE 2024/2025

FACULTÉ DES SCIENECES

ENSEIGNENT:DR. Maxwell Ndognkon Manga


TP INF 132

PARTICIPANTS : MATRICULES:
NANG ANDRE DUVAL 24H2365
EBEDE EBEDE ROY ALVARO 24G2968
MAGWE LESLINE ANHAYSE

EXERCICE7 :

On veut développer une application de gestion des étudiants des différents


établissements .On tient compte des structures de données suivantes : Établissement, Filière,
Étudiant :
a) Un Étudiant est caractérisé par son numéro matricule, son nom, son prénom, sa date de
naissance, son niveau d’étude ;
b) Une filière est caractérisé par son code, son intitulé et le niveau d’étude (Licence, master)
et la liste des étudiants y sont inscrits ;
c) Un établissement est caractérisé par son numéro, son intitulé, sa date de création et la liste
des filières qui le compose.
Travail à faire :
1. Définir des structures de données qu’il faudrait utiliser pour représenter un étudiant, une
filière et un établissement chacune de ces structures doit être définit dans un fichier .h
2. Pour chacun de ces fichiers entête, définissez les fichiers sources .c de chacune de ces
structures. Par exemple une fonction permettant de
- Créer P établissements
- Créer M niveaux d’études pour un établissements donné en paramètre.
- Créer N étudiants inscrits dans un niveau d’étude donné en paramètre
3. Définir une fonction rechercher qui prend en un niveau d’étude et un numéro matricule. Il
affiche les informations de l’étudiant s’il existe sinon il affiche un message informant que
l’étudiant n’existe pas.
La fonction rechercher doit être définie dans le programme principal.

SOLUTION.
1. Définition des structures
- Fichier étudiant .h pour la définition d’un étudiant :
#ifndef ETUDIANT_H_INCLUDED
#define ETUDIANT_H_INCLUDED
// Définition de la structure Etudiant
typedef struct {
char matricule[20]; // Numéro matricule unique de l'étudiant
char nom[50]; // Nom de l'étudiant
char prenom[50]; // Prénom de l'étudiant
char date_naissance[15]; // Date de naissance au format JJ/MM/AAAA
char niveau[20]; // Niveau d'étude (Licence, Master, etc.)
} Etudiant;
#endif // ETUDIANT_H_INCLUDED

- Fichier filière .h pour représenter une filière


#ifndef FILIERE_H_INCLUDED
#define FILIERE_H_INCLUDED

#include "etudiant.h" // Inclusion de la structure Étudiant


// Définition de la structure Filiere
typedef struct {
char intitule[50]; // Intitulé de la filière (ex : Informatique)
char code[10]; // Code unique de la filière
char niveau[20]; // Niveau d'étude (Licence, Master)
int nbEtudiants; // Nombre d'étudiants inscrits dans cette filière
Etudiant etudiants[100]; // Liste des étudiants (limite : 100 étudiants)
} Filiere;
#endif // FILIERE_H_INCLUDED
-Fichier etablissement.h pour representer un etablissement

#ifndef ETABLISSEMENT_H_INCLUDED
#define ETABLISSEMENT_H_INCLUDED

#include "filiere.h" // Inclusion de la structure Filière


// Définition de la structure Établissement
typedef struct {
char numero[10]; // Numéro unique de l'établissement
char intitule[50]; // Nom de l'établissement
char date_creation[15]; // Date de création de l'établissement
int nbFilieres; // Nombre de filières dans l'établissement
Filiere filieres[50]; // Liste des filières (limite : 50 filières)
} Etablissement;
void creer_etablissements(Etablissement tab[],int nb);
#endif // ETABLISSEMENT_H_INCLUDED

2. Fonctions de création (dans les fichiers `.c`)

// etablissement.c
#include <stdio.h>
#include "etablissement.h"

// Fonction pour créer P établissements


void creer_etablissements(Etablissement etablissements[], int P) {
for (int i = 0; i < P; i++) {
printf("Nom de l'établissement %d : ", i + 1);
scanf("%s", etablissements[i].intitule);

printf("Numéro : ");
scanf("%s", etablissements[i].numero);
printf("Date de création (JJ/MM/AAAA) : ");
scanf("%s", etablissements[i].date_creation);
etablissements[i].nbFilieres = 0; // Initialisation du nombre de filières à 0
}
}
void creer_etablissements(Etablissement tab[],int nb);
void rechercher(Etablissement tab[],int nb, char niveau[],char matricule[]);

// etudiant.c
#include <stdio.h>
#include "etudiant.h"

// Fonction pour créer N étudiants


void creer_etudiants(Etudiant etudiants[], int N) {
for (int i = 0; i < N; i++) {
printf("Matricule : ");
scanf("%s", etudiants[i].matricule);
printf("Nom : ");
scanf("%s", etudiants[i].nom);
printf("Prénom : ");
scanf("%s", etudiants[i].prenom);
printf("Date de naissance (JJ/MM/AAAA) : ");
scanf("%s", etudiants[i].date_naissance);
printf("Niveau (Licence/Master) : ");
scanf("%s", etudiants[i].niveau);
}
}
3. Fonction « rechercher » (dans le programme principal)
#include <stdio.h>
#include <string.h>
#include "etablissement.h"
#include "etudiant.h"
#include "filiere.h"
// Fonction pour rechercher un étudiant par niveau et matricule
void rechercher(Etablissement etablissements[], int nbEtab, char niveau[], char matricule[])
{
for (int i = 0; i < nbEtab; i++) {
for (int j = 0; j < etablissements[i].nbFilieres; j++) {
Filiere f = etablissements[i].filieres[j];
if (strcmp([Link], niveau) == 0) { // Vérifie le niveau
for (int k = 0; k < [Link]; k++) {
if (strcmp([Link][k].matricule, matricule) == 0) { // Vérifie lematricule
printf("Étudiant trouvé : %s %s, Matricule : %s\
n",[Link][k].prenom,[Link][k].nom, [Link][k].matricule);
return;
}
}
}
}
}
printf("Étudiant non trouvé.\n");
}
int main() {
int nbEtab = 0; // Nombre d'établissements (exemple)
Etablissement etablissements[10]; // Tableau d'établissements

// Appel à la fonction rechercher


char niveauRecherche[20];
char matriculeRecherche[20];
int choix;
do {
printf("(..)Menu(..)\n");
printf("1: creer les etablissements\n");
printf("2: Recherche un etudiant\n");
printf("0: Quitter\n");
printf(" Votre choix:\n");
scanf("%d",&choix);

switch(choix)
{
case 1:printf("combien d'etablissement ?");
scanf("%d",&nbEtab);
creer_etablissements(etablissements,nbEtab);
break;
case 2:printf("Niveau a rechercer\n");
scanf ("%s",niveauRecherche);
printf("Matricule a rechercher:\n");
scanf("%s",matriculeRecherche);
rechercher(etablissements,nbEtab,niveauRecherche,matriculeRecherche);
break;
case 0:
printf("au revoir (..)");
break;
default:
printf("Choix invalide.\n");
}
} while(choix !=0);
return 0;
}

Travail et impressions de chaque membre sur le TP

NOMS PRÉNOMS MATRICULE PARTIE IMPRESSION


TRAITER
Nang Andre Duval 24H2365 Fichier.c

TRACE DE L’EXÉCUTION :

Vous aimerez peut-être aussi