Menu

Aidez moi à faire ce programme slvp [Résolu/Fermé]

- - Dernière réponse : [Dal]
Messages postés
5169
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juillet 2019
- 5 juin 2018 à 18:17
Bonjour mes chères. Aidez-moi à écrire un programme en c en utilisant les structures de données qui permet de gérer les citoyens d'une commune.
Un citoyen est caractérisé par son numéro d'enregistrement qui permet d'identifier un employé de manière unique, son nom, son prénom, son sexe et sa profession.
Ce programme doit être capable :
1- D'enregistrer les informations des citoyens
2- D'afficher la liste des citoyens dans un tableau graphique
3- D'afficher les informations d'un citoyen à partir de son numéro d'enregistrement
4- D'afficher la liste des citoyens par ordre alphabétique de nom
5- Quitter le programme
N.B:
>>Le programme commence par la liste des membres du groupe et un menu général qui affichera la liste des fonctionnalités .
>>Toutes les fonctionnalités seront gérées par des fonctions.
Afficher la suite 

3 réponses

Messages postés
1190
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
5 juin 2019
119
0
Merci
Salut,

Un début de réponse ici ;-))

Messages postés
103
Date d'inscription
mardi 22 mai 2018
Statut
Membre
Dernière intervention
12 juin 2018
5
0
Merci
Salut,

ce n'est pas une solution de faire l'exercice à ta place.
montre ce que tu as fait et peut être tu trouveras un coup de main.
merci
0
Merci
Oui vous avez parfaitement raison mais cet exercice n'est pas donné par un professeur c'est juste que je m'entraîne avec les exercices d'une autre université. Et il y avait 5 exos j'ai réussi à faire 2 et c'est le 3ème mais ici je me retrouve pas. Guidez moi de tel sorte que j'ai une idée meilleur
[Dal]
Messages postés
5169
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juillet 2019
785 -
Bonjour Mamadou,

Sur quoi as-tu besoin d'aide ?

Dal
Et bien j'ai veux savoir premièrement comment on tri la liste par ordre alphabétique ? Ensuite comment afficher l'information du citoyen en tapant uniquement son numéro d'enregistrement ?
Merci à l'avance
[Dal]
Messages postés
5169
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juillet 2019
785 -
1.

En ce qui concerne le tri, la façon de faire dépend en partie aussi de la façon dont tu stockes les données.

Puisqu'on te demande seulement de pouvoir les afficher dans l'ordre alphabétique, et pas dans l'ordre d'enregistrement, tu pourrais construire ta base de données de façon à ce qu'elle soit toujours par ordre alphabétique, en insérant une nouvelle personne au bon endroit. Tu peux faire cela en choisissant une liste chaînée comme structure de données pour y stocker les données, car cette structuration permet facilement l'insertion de nouveaux éléments. Ensuite, pour afficher la base par ordre alphabétique, tu n'as qu'à afficher les personnes dans l'ordre de parcours de ta liste car tout est déjà ordonné au fur et à mesure.

Autrement, par exemple si tu stockes les données dans un tableau dynamique, ou statique, de struct (ce qui est moins compliqué à programmer qu'une liste chaînée), il te faudra effectivement effectuer ensuite un tri. Tu peux le faire en implémentant un algorithme de tri (le plus simple à implémenter, et le moins optimisé, étant le tri à bulles : https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles) ou, en C, tu peux utiliser la fonction qsort() de la bibliothèque standard :

http://www.cplusplus.com/reference/cstdlib/qsort/
https://emmanuel-delahaye.developpez.com/tutoriels/c/notes-langage-c/?page=Page8

2.

Concernant ta 2ème question "Ensuite comment afficher l'information du citoyen en tapant uniquement son numéro d'enregistrement ?"... j'avoue que je ne comprends pas ce qui te pose problème.

Quelle que soit l'implémentation que tu choisiras, tu vas stocker les données de chaque "citoyen" dans la structure en les regroupant avec des struct (pour reprendre les 3 exemples cités ci-dessus : une liste chaînée de struct, un tableau de struct dynamique ou statique, ou autre chose).

Ta structure de données, quelque soit le choix de structuration que tu feras, te permettra de lister les données, du début à la fin, en recherchant si le numéro correspond, et si c'est le cas, d'accéder au nom qui est stocké dans la même struct où tu as trouvé la correspondance. C'est une recherche facile à mettre en place : tu parcours tes données à partir du début à la recherche du numéro.

Bien sûr, ce n'est pas très optimisé. Alors, en moins facile, si tu dois concevoir des bases de données performantes, et éviter de parcourir toute la liste des données, tu pourrais décider de gérer des index sur certains champs plus souvent recherchés que les autres. C'est ce que font les systèmes de gestion de bases de données.

Dal