Mini projet en c

Fermé
jiji - 10 oct. 2010 à 17:42
Vicking54 Messages postés 89 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 17 mai 2011 - 18 oct. 2010 à 11:34
salut. je suis débutante en langage c et je dois faire un mini projet en c qui permet de gérer un répertoire téléphonique et je sais pas comment je fais svp aide moi
A voir également:

1 réponse

ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
Modifié par ydurce le 10/10/2010 à 19:41
pour faire court:

la première chose à faire est de determiner le type de données que tu veux traiter et de le créer. Dans ton cas, un repertoire téléphonique est un ensemble d'éléments composés au moins d'un nom et d'un num de tel associé.
Tu peux déja définir ton type de base en c:
typedef struct
{
char Nom[128];
char NumTel[128];
} Element;

ensuite tu définis comment tu composes ton ensemble.
Soit un tableau, soit une liste chainée plus pratique pour les manipulations (tris, insertion suppression ...).
Pour une liste chainée, il suffit de prévoir les liens dans ton type de base qui devient:

typedef struct
{
char Nom[128];
char NumTel[128];
Element *Suivant;
Element *Precedent;
} Element;

Donc, à chaque fois que tu voudras ajouter un élément à la liste, il faudra le "chainer" avec l'élément précédent qui sera son "Precedent" et pour lequel le nouveau sera son "Suivant". Le premier de la liste aura son "Precedent" à NULL, le dernier de la liste son "Suivant" à NULL.
Pour enlever un élément il suffit de casser ses liens et de relier entre eux son "Précédent" et son "Suivant".

La representation de données la meilleure (à mon avis) pour un répertoire téléphonique serait un tableau de 26 listes chainées, chaque liste correspondant à une lettre de l'alphabet: En C:
Element *Repertoire[26];
Le tableau stockera le premier élément de chaque liste ou NULL si il n'y a aucun élément.

Note: la représentation de données est un travail trés important en conception informatique, car les choix à ce niveau impactent beaucoup la facilité de la suite de la conception.

Ensuite, il ne te reste plus qu'à définir tes fonctions ou procédures qui vont exclusivement travailler sur ton tableau Repertoire:
- AjouterNouveau(char *Nom,char *Numtel) : entre un nouveau nom dans la liste associée à la premiére lettre du nom: Repertoire[0] pour la lettre 'a'
- Supprimer (char *Nom): supprime un élément en fonction du nom
- Element *TrouverNum (Char *Nom) : retourne l'élément dont le Nom correspond

etc etc .....
Enfin le main() ne sera que l'interface entre l'opérateur et ton programme
1
Vicking54 Messages postés 89 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 17 mai 2011 26
13 oct. 2010 à 08:56
pour le NumTel[128] on peut allouer moins de 128 cases pour le tableau moi je pense que 20 cases est suffisante si on met les indicatifs (+33 , 00352 , 0032 ...)
0
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
13 oct. 2010 à 22:25
oui bien sur!
c'était un exemple.
de même la structure est un peu légère, il faut au moins ajouter le prénom..
0
Vicking54 Messages postés 89 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 17 mai 2011 26
18 oct. 2010 à 11:34
oui prénom, nom , num tel ... puis si on veut être exhaustif on peut ajouter mail et adresse
0