Page:
td6.correction
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
💾 Structure suggérée :
typedef struct {
int id; // identifiant unique
char nom[30];
char prenom[30];
char date_naissance[11]; // "JJ/MM/AAAA"
double solde;
} Compte;
typedef struct {
int compte_id; // lien avec le compte
char type; // 'D' ou 'R'
double montant;
char date[20]; // horodatage ou saisie manuelle
} Operation;
Contraintes techniques
-
Le programme doit être en langage C standard (C99 ou C11).
-
Utiliser des structures et des fichiers binaires (
fwrite,fread). -
Le menu doit être interactif :
- Vous pouvez utiliser ncurses ou simplement des entrées clavier avec
scanfetprintf.
- Vous pouvez utiliser ncurses ou simplement des entrées clavier avec
-
Une attention particulière sera portée à :
- la gestion des erreurs (fichiers, saisie utilisateur, doublons),
- la lisibilité du code (fonctions, indentation, commentaires),
- la persistance des données entre deux exécutions.
Étapes suggérées
| Étape | Objectif |
|---|---|
| 1 | Créer les structures Compte et Operation |
| 2 | Lire et écrire des comptes dans un fichier binaire |
| 3 | Ajouter la gestion du menu principal |
| 4 | Implémenter la création de compte |
| 5 | Implémenter l’ajout d’opérations (dépôt/retrait) |
| 6 | Implémenter la consultation des soldes et historiques |
| 7 | Améliorer l’interface (clear screen, couleurs, etc.) |
Pistes d’amélioration (pour les plus avancés)
- Trier les comptes par solde ou par nom.
- Afficher la date/heure automatique des opérations (via
time.h). - Implémenter un menu navigable avec ncurses.
- Exporter les comptes vers un fichier texte CSV pour visualisation externe.
Livrables
-
Fichier source :
banque.c -
Fichiers de données :
comptes.dat,operations.dat -
Rapport ou README décrivant :
- les structures utilisées,
- les fonctions principales,
- les choix d’implémentation.
🔧 Critères d’évaluation
| Critère | Points |
|---|---|
| Compilation sans erreur | 2 |
| Respect de la consigne et fonctionnalités principales | 6 |
| Qualité du code (lisibilité, modularité, commentaires) | 4 |
| Gestion des erreurs et cohérence des données | 3 |
| Interface utilisateur claire et fonctionnelle | 3 |
| Total | /18 |
Souhaite-t-il que je rédige aussi un squelette de code de départ (avec les menus et la structure générale du programme) que les étudiants pourront compléter ? Cela permettrait de démarrer le TP plus facilement.
sudo apt install libncurses5-dev libncursesw5-dev
Compilation d’un programme utilisant ncurses
$ gcc main.c -lncurses -o banque