Aidez moi à faire ce programme slvp

Résolu/Fermé
Mamadou - 5 juin 2018 à 11:57
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 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.

3 réponses

UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
5 juin 2018 à 12:01
Salut,

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

0
YanisNsrn Messages postés 95 Date d'inscription mardi 22 mai 2018 Statut Membre Dernière intervention 7 juin 2018 156
5 juin 2018 à 12:01
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
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
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 5 juin 2018 à 14:12
Bonjour Mamadou,

Sur quoi as-tu besoin d'aide ?

Dal
0
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
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 5 juin 2018 à 18:25
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
0