From 61a9442ccd07fa39b11bc9575bfb011d7def0aef Mon Sep 17 00:00:00 2001 From: medina5 Date: Mon, 10 Nov 2025 11:28:36 +0100 Subject: [PATCH] td 6 --- td6.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 80 insertions(+), 4 deletions(-) diff --git a/td6.md b/td6.md index d61f039..b987a10 100644 --- a/td6.md +++ b/td6.md @@ -1,9 +1,85 @@ -# Travaux dirigés n° 6 +# Travaux pratiques n° 6 : Application bancaire en C sur Raspberry Pi +## Objectifs pédagogiques -### Reprise du TD 4 pour le rendre dynamique +Ce TP a pour but de consolider les compétences en **programmation C sous Linux**, en particulier : -Le format n'est pas connu à l'avance il va falloir lire caractères par caractères pour trouver le nombre de colonnes. +* la manipulation de **structures** et de **fichiers binaires** ; +* la création d’une **interface utilisateur texte (TUI)** avec menus ; +* la gestion d’**entrées/sorties utilisateur** et de **contrôles de validité** ; +* l’organisation d’un projet C modulaire et maintenable. +## Énoncé -### Reprise du TD 3 pour spécifier le nom du fichier en entrée. +Vous êtes chargé de développer une **application bancaire simplifiée** fonctionnant en **mode terminal**. +L’application permettra de **créer des comptes**, **enregistrer des opérations** (dépôts / retraits) et **consulter les soldes**. + +Les données seront **stockées dans des fichiers binaires**, sans base de données. + +### Menu principal + +Au lancement, l’application affiche un **menu textuel** similaire à celui-ci : + +``` +==================================== + Application Bancaire (Votre Nom) +==================================== +1. Créer un compte +2. Enregistrer une opération +3. Lister les comptes +4. Quitter +------------------------------------ +Votre choix : _ +``` + +### Création de compte + +* Le programme demande : + + * le **nom**, + * le **prénom**, + * la **date de naissance** (format : JJ/MM/AAAA). + +* Avant d’enregistrer, il **vérifie** qu’aucun autre compte n’existe avec le **même nom et prénom**. + +* Si le compte est valide, il est ajouté à un fichier binaire `comptes.dat` avec un **solde initial de 0**. + +Proposez une structure cohérente + +### Enregistrement d’opération + +* L’utilisateur choisit un compte existant. +* Le programme demande : + + * le type d’opération : **Dépôt (D)** ou **Retrait (R)** ; + * le montant (nombre réel positif). +* Le solde du compte est mis à jour. +* L’opération est enregistrée dans un fichier binaire `operations.dat`. +* Le solde ne doit pas devenir négatif après un retrait. + +### Liste des comptes + +* Afficher un tableau des comptes : + +``` +------------------------------------------- +ID Nom Prénom Solde (€) +------------------------------------------- +1 Dupont Alice 150.00 +2 Martin Bob 325.50 +------------------------------------------- +Choisissez un ID pour voir le détail (0 = retour) : +``` + +* Si un compte est sélectionné, afficher l’historique des opérations : + +``` +Historique du compte n°2 - Bob Martin +------------------------------------- +Date Type Montant +------------------------------------- +10/11/2025 D +200.00 +11/11/2025 R -50.00 +------------------------------------- +Solde actuel : 150.00 € +```