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