
Annuaire
- C
- Algorithmes
- Projet IUT
Un annuaire en C qui offre une interface graphique en console avec une pagination. Il permet des fonctions basiques comme la lecture de fichiers .csv, l'ajout de client, la suppression, la possibilité de trier et filtrer l'annuaire.
Avant tout, un aperçu du projet
Contexte du projet
Dans le cadre du module de développement du S1 à l'IUT, nous avons du concevoir un annuaire de clients en langage C, permettant de gérer, afficher, trier, rechercher et filtrer des données clients. L'objectif principal était de développer une application structurée, efficace et optimisée, tout en justifiant les choix algorithmiques effectués.
Réalisation du projet
Structure de données
L'annuaire repose sur :
- Un tableau de structures client contenant l'ensemble des données.
- Un tableau d'indices servant uniquement à l'affichage, au tri et aux filtres. Ce choix architectural permet :
- De ne jamais modifier les données originales
- D'appliquer tris et filtres uniquement sur les indices
- De réinitialiser facilement l'affichage
- D'améliorer la rapidité des opérations.
Modularité
Le programme est structuré autour de :
- Menus construits à partir de fonctions dédiées
- Fonctions génériques réutilisables (ex : demander_action)
Choix des algorithmes
L'un des attendus principaux étant les fonctionnalités de tris et de filtres afin de travailler l'aspect algorithmique, nous avons mis en place :
- Un tri rapide (Quick Sort), de complexité O(n log n)
- Une recherche linéaire, de complexité O(n)
- Des filtres cumulables, de complexité O(n)
Compétences du BUT Informatique mobilisées
C1 - Réaliser
Développement d'un annuaire en C en console avec gestion de fichiers CSV, ajout, suppression et affichage des clients.
C2 - Optimiser
Conception et implémentation d'algorithmes de tri (Quick Sort) et de filtrage pour optimiser l'affichage des données.
C3 - Administrer
Peu mobilisée, application locale en console sans déploiement ni configuration réseau.
C4 - Gérer
Structuration de données en mémoire avec gestion de tableaux de clients et manipulation de fichiers CSV.
C5 - Conduire
Analyse des besoins fonctionnels (tri, recherche, filtrage) et justification des choix algorithmiques.
C6 - Collaborer
Travail en équipe sur la conception modulaire du programme avec séparation des fonctions et répartition des tâches.