# 🏦 Générateur de comptes bancaires

Ce programme en C permet de générer un fichier contenant des comptes bancaires aléatoires avec des noms et des montants répartis en fonction de vos paramètres. 🎲💰

## 🚀 Fonctionnalités
- Génération de comptes avec des **prénoms réalistes** (ex. Emma, Moncef, Lenny).
- Répartition personnalisée des montants par compte :
    - Total à distribuer.
    - Nombre de comptes.
    - Montants minimum et maximum par compte.
- Exportation des données dans un fichier `.db` avec format fixe.

## 🛠️ Compilation
Pour compiler le programme, utilisez la commande suivante dans votre terminal :

```bash 
gcc -o generate_accounts generate_accounts.c
```

ou 

```bash 
make
```

## 🏃 Utilisation

### Commande
```bash 
./generate_accounts -t <total_amount> -n <num_accounts> -m <min_amount> -M <max_amount> [-f <filename>]
```


| Option | Description                                         | Obligatoire | Exemple |
| ------ | --------------------------------------------------- | ----------- | ------- |
| `-t` | Montant total à répartir entre les comptes          | ✅           | `-t 10000`       |
| `-n`      | Nombre total de comptes à générer                   | ✅           | `-n 5`       |
| `-m`      | Montant minimum par compte                          | ✅           | `-m 500`       |
| `-M`      | Montant maximum par compte                          | ✅           | `-M 3000`       |
| `-f`      | Nom du fichier de sortie (par défaut `accounts.db`) | ❌           | `-f accounts.db`       |

### Exemple
#### Commande
```bash 
./generate_accounts -t 10000 -n 5 -m 500 -M 3000 -f accounts.db
```

#### Résultat attendu 
Fichier `accounts.db` :
```yaml
Emma       2500
Liam       3000
Olivia     1500
Noah       2000
Ava        1000
```


## ⚠️ Gestion des erreurs

1. Montant insuffisant pour répartir les comptes :
```bash
./generate_accounts -t 1000 -n 5 -m 500 -M 3000
```
**Erreur :** Paramètres invalides

2. Montant maximum inférieur au minimum :
```bash
./generate_accounts -t 10000 -n 5 -m 1000 -M 500
```
**Erreur :** Paramètres invalides