École Supérieure de Technologie
et d’Informatique
A.U. 2011/2012
Atelier de programmation avancée
Série les fichiers binaires
1ère année LA ARS
Exercice 1 :
Soit un fichier binaire contenant des informations sur les étudiants. On donne
struct etudiant
{
int ce; // numéro carte d’étudiant
char nom[30];
float notes[5]; // chaque étudiant possède 5 notes
Publicité
DATE date_naiss ;
};
typedef struct etudiant ETUDIANT;
1. Ecrire un programme qui demande à l’utilisateur le nombre d’étudiants n. Ensuite, le
programme remplit et affiche le fichier binaire de n étudiants.
2. Afficher l’étudiant de rang r (r est un entier à saisir compris entre 1 et n). le 1er
étudiant dans le fichier a le rang 1. Le dernier a le rang n.
3. Copier le fichier dans un tableau dynamique d’étudiants. Afficher le tableau.
4. Modifier les informations sur un étudiant de rang r.
Exercice 2 :
Soit un fichier binaire contenant les informations suivantes sur les étudiants :
(cid:1) Cin
(cid:1) Nom
Publicité
(cid:1) Nombre de notes
(cid:1)
Les notes (réels)
Le nombre de notes est variable d’un étudiant à l’autre.
Et un fichier d’index contenant :
(cid:1) Cin
(cid:1) Taille de l’enregistrement (en nombre d’octets) de l’étudiant dans le fichier etudiant
On donne les structures de données suivantes :
struct etudiant
{
int cin;
char nom [20];
int nb; //nombre de notes
Publicité
};
typedef struct etudiant ETUDIANT;
struct index
{
int cin;
long taille;
};
typedef struct index INDEX;
1
Écrire les fonctions suivantes :
void remplir (FILE fe, FILE fi) //fe : fichier étudiant ; fi : fichier index
Remplit les fichiers étudiant et index simultanément.
Principe du remplissage: pour le remplissage du fichier étudiant, Les champs cin, nom,
Publicité
nb seront saisis dans une variable de type ETUDIANT, les notes seront saisies dans un
tableau de réels alloué dynamiquement selon la valeur de nb. Les deux variables seront
ensuite copiées dans le fichier.
void afficher_fichier (FILE *fe)
Affiche le contenu du fichier étudiant (pour chaque étudiant son cin, nom, notes).
void afficher_index(FILE *fi)
Affiche le contenu du fichier index (pour chaque étudiant, son cin, et la taille en octets
de son enregistrement dans le fichier étudiant)
void afficher_etudiant (FILE fe, FILE fi, int p)
Affiche les informations qui concernent l’étudiant qui se trouve à la position p dans le
fichier étudiant (Le premier étudiant dans le fichier étudiant a la position 1).
2