td 6
84
td6.md
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 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 €
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user