2
td6.correction
medina5 edited this page 2025-11-26 06:59:35 +01:00
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 scanf et printf.
  • 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 lajout dopérations (dépôt/retrait)
6 Implémenter la consultation des soldes et historiques
7 Améliorer linterface (clear screen, couleurs, etc.)

Pistes damé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 dimplé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 dun programme utilisant ncurses

$ gcc main.c -lncurses -o banque