td 6

2025-11-10 11:28:36 +01:00
parent d6b707aa5c
commit 61a9442ccd

84
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 dune **interface utilisateur texte (TUI)** avec menus ;
* la gestion d**entrées/sorties utilisateur** et de **contrôles de validité** ;
* lorganisation dun 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**.
Lapplication 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, lapplication 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 denregistrer, il **vérifie** quaucun autre compte nexiste 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 dopération
* Lutilisateur choisit un compte existant.
* Le programme demande :
* le type dopération : **Dépôt (D)** ou **Retrait (R)** ;
* le montant (nombre réel positif).
* Le solde du compte est mis à jour.
* Lopé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 lhistorique 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 €
```