Un mini projet

Fermé
chamse - 29 déc. 2012 à 21:59
 chamse - 31 déc. 2012 à 18:28
Bonjour,j'ai un mini projet.aid moi svp.

Soit un fichier texte contenant une suite de mots séparés par un séparateur qui peut être soit un
espace, soit une ponctuation. En plus chaque mot est suivi du caractère = puis de sa signification.
Nous désirons parcourir ce fichier et enregistrer chaque mot et sa signification dans un
dictionnaire de mots. Le dictionnaire est constitué d'une listes chaînées tel que
chaque élément d'une liste contient un mot du fichier et sa signification. Nous ne stockons que
les mots valides. Un mot valide est un mot qui n'est constitué que de caractères alphabétiques.
Au fur et à mesure la lecture du fichier les mots et leur signification sont stockés dans la liste dictionnaire selon l'ordre alphabétique sur les mots.


Il s'agit en premier lieu de construire le dictionnaire puis de faire les traitements suivants :
1. Afficher la liste triée par ordre alphabétique
2. Rechercher la signification d'un mot donnée.
3. Supprimer un mot donné.
4. Supprimer tous les mots commençant par une lettre donnée.
5. Ajouter au dictionnaire un mot donné ainsi que sa signification.
6. Compter le nombre de mots commençant par une lettre donnée.
7. Compter le nombre de mots du dictionnaire.
8. Quitter.
NB : On suppose que chaque mot n'a qu'une seule signification.

A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
29 déc. 2012 à 22:12
Bonjour,

Commence par poster ce que tu as fait, ce que tu as commencé à faire et ce que tu comprends pas ou sais pas faire.
On pourra alors t'aider pour continuer ton projet.
1
J'ia ouvrir le fichier text par le bloc notes mais je n'ai pas commencé le programe c. Sachez quoi faire, mais ne savent pas comment.
0
Et aussi la chose que je ne comprends pas ce coment remplire la liste dictionaire a partire de fichier texte et par tri alphabitique ??
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
29 déc. 2012 à 23:07
Tout d'abord, il te faut un Dictionnaire (une liste chaînée) qui sera rempli de mots (les noeuds).
Remplir un mot dans le dictionnaire est l'ajout classique d'un noeud dans un arbre. Mettre le mot à sa place (tri alphabétique) consiste à parcourir tous les noeuds de l'arbre et s'arrêter au bon endroit (tu pourras utiliser strcmp()) et insérer le noeud.
Pour implémenter une liste chaînée, c'est ici : https://www.commentcamarche.net/contents/114-langage-c-les-listes-chainees
0
S'il vous plaît pouvez-vous m'aider dans le début du programme, au moins jusqu'à remplir la liste dictionnaire .puisque Je peux faire le reste traitement.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
30 déc. 2012 à 14:58
C'est ce qui est le plus long...
Il faut vraiment que tu arrives à le faire toi-même, c'est vraiment de l'archi-classique qui te sera redemandé un jour ou l'autre.
Je t'offre un tuto : http://www.siteduzero.com/tutoriel-3-66283-les-listes-doublement-chainees-en-langage-c.html
0
plop,


pourquoi tu pose pas tout dans un tableau, les mots en indice impairs, et les significations en indice pair, après c'est pas compliqué de lancer une recherche (si tu trie au préalable ton tableau par quickort/bubble sort) via une recherche dichotomique --'

o/
1
mais il faut stockés les donnée dans une liste tel que chaque element de la liste contient un mot et sa signification,
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
30 déc. 2012 à 16:18
Effectivement, un tableau pourrait faire l'affaire pour quelques centaines de mots. Mais au-delà cela commencerait à poser des problèmes. Les listes sont beaucoup plus performantes pour ce genre de problèmes.
0
oui tu as raison
0
est ce que possible d'utiliser les fonctions strtok() et strcpy() pour remplire le liste dictionnair ????
0