Manipulation des fichiers
EXERCICE 1
1) Quels sont les différents types d’accès à un fichier ?
2) Comment procéder pour ouvrir un fichier ? Illustrez votre réponse par un exemple.
3) Comment peut-on savoir si un fichier existe. Que se passe t-il si le fichier que vous voulez ouvrir n’existe pas ?
4) Comment procéder pour lire et écrire dans un fichier ?
5) Comment peut-on détecter la fin d’un fichier ? Illustrez votre réponse par un exemple.
6) Comment procéder pour fermer un fichier ? EXERCICE 2 (PROG1.CPP)
Étant donné le fichier « 8SIF109.txt », on vous demande d’écrire un programme écrit en C (utilisation de la bibliothèque « stdio.h ») pour lire les informations contenues dans ce document et les afficher à l’écran.
On retrouve sur chaque ligne de ce fichier les informations suivantes :
Nom (Chaîne de caractères)
Prénom (Chaîne de caractères)
Lab1 (Nombre flottant)
Lab2 (Nombre flottant)
Lab3 (Nombre flottant)
Voici ce que vous devez trouvez dans ce fichier et vous devez également l’afficher sous cette forme à l’écran. La seule différence est le fait que l’entête (Nom, Prénom, Lab1, Lab2, Lab3) doit être ajoutée à l’écran.
NOTES LABORATOIRES 8SIF109 :
Nom Prenom Lab1 Lab2 Lab3
BABIN PIERRE-LUC 10 7.25 8.5
BEAUDOIN GUILLAUME 6 7 9
BOIVIN GUILLAUME 9 6.5 7.5
BOILY LUC 10 4 9
BOUCHARD CHRISTIAN 5 9.5 9.5
BOUDREAULT JEAN-BENOIT 2 4 3
COTE BENOIT 7 10 8.5
COTE MAXIME 10 5 9.5
DERY SEBASTIEN 6 6.75 10
FILLION ERIC 4 7.75 9.25
FLAMAND JULIE 5 5 9.75
EXERCICE 3 (PROG2.CPP)
La première partie de cet exercice consiste à refaire l’exercice précédent en modifiant ce programme de telle sorte qu’il soit écrit en C++ (utilisation de la bibliothèque
« fstream.h »). Autrement dit : vous devez lire les informations contenues dans le fichier et les afficher à l’écran en utilisant les fonctions et objets de la bibliothèque fstream.h tels que : ifstream, Fichier.open(), Fichier.close(), Fichier>>x, etc... Fichier étant un objet correspondant au fichier 8SIF109.txt et x étant une variable quelconque à lire à partir de ce fichier. Notez bien que vous devez trouver un moyen pour mémoriser les notes des
laboratoires afin de les utiliser pour les calculs dans la deuxième partie de cet exercice.
Deux tableaux de chaînes de caractères (char Noms[11][15] et char Prenoms[11][15]) et un autre tableau de nombres flottants (float NotesLabs[11]) pourraient bien être appropriés pour accomplir cette tâche :
Dans la deuxième partie du programme, le but est d’écrire dans un autre fichier nommé « NotesFinales.txt » les informations ci-dessous (vous devez également écrire les codes en C++).
Nom (Chaîne de caractères)
Prénom (Chaîne de caractères)
NoteFinale (Nombre flottant, à calculer)
Côte (Un caractère : A ou B ou C ou E, à calculer)
NoteFinale est le total des notes des étudiants. Côte est la note attribuée dépendamment de la note finale. Le tableau suivant montre comment attribuer les côtes aux étudiants.
Note Finale Côte
> 22.5 A
> 15 B
>10 C
<=10 E
Notez aussi que vous devriez stocker les notes finales des étudiants ainsi que les côtes dans des tableaux (float NotesFinales[11] et char Cotes[11]). Voici ce qu’on doit trouver comme contenu du fichier « NotesFinales.txt » :
NOTES LABORATOIRES 8SIF109 :
Nom Prenom NoteFinale Cote
BABIN PIERRE-LUC … …
BEAUDOIN GUILLAUME … …
BOIVIN GUILLAUME … …
BOILY LUC … …
BOUCHARD CHRISTIAN … …
BOUDREAULT JEAN-BENOIT … …
COTE BENOIT … …
COTE MAXIME … …
DERY SEBASTIEN … …
FILLION ERIC … …
FLAMAND JULIE … …
En bref, la structure générale de cet exercice devra être comme suit :
---
Solutionnaire
Exercice 1 :
Exercice 2 :
Exercice 3 :
Fichier: Notes8SIF109.txt
Partie I du programme : Lecture de fichier
Variables : Tableaux des noms, prénoms et notes des
laboratoires
Partie II du programme : Calculs des notes finales et
Écriture de fichier
Fichier: NotesFinales.txt Variables : Tableaux des
notes finales et des côtes