Annuaire telephonique en language c

ren1450 -  
 ness -
Bonjour,

voila en fait je pose un message qui devient assez urgent: d'ici le 7 avril je dois rendre un projet de 2eme session pour un examen en language C qui porte sur un annuaire telephonique.

selon l'énoncé, il faut avoir un menu premettant d'ajouter des contacts (nom, prenom, telephone) en les créant dans un fichier, de rechercher les contacts dans le fichier (via liste chainée) et de quitter le programme. je ne suis pas encore tres doué en programmation étant en 1ere année d'informatique..

j'ai tappé le code ci dessous mais la compilation m'affiche 3 erreurs, provenant de ma fonction "creation" qui crée ma liste chainée.

si quelqu'un pouvait m'aider ca me ferais tres utile car j'avoue etre un peu perdu.. je pense deja que mes arguments ne sont pas bons, le compteur devrais plutot se trouver dans la fonction "écrire" et d'autre choses a résoudre aussi.

#include <stdio.h>
#include <string.h>
#include <malloc.h>

typedef struct personne
{
char nom[50];
char prenom[50];
char telephonne[15];
struct personne *suivant;
struct personne *precedent;
}p;

void ecrire(p pers);
p *premier(void)
void creation(p pers);
void lecture(p pers, int taille);
void suppresion(p pers);
void recherche(p pers);
void menu(p pers);

int main(void)
{

menu(p);

return 0;
}

void ecrire(p pers)
{
FILE *w;

if((w=fopen("personne.dat","wb"))=NULL)
printf("Erreur à l'ouvertude de personne.dat");
else
{
while(1)
{
printf("Nom: ");
scanf("%s",pers.nom);
fflush(stdin);
if((strcmp(pers.nom,"0"))==0)
break;
else
{
printf("Prenom: ");
scanf("%s",pers.prenom);
fflush(stdin);
printf("Telephone: ");
scanf("%d",&pers.tel);
fflush(stdin);
fwrite(&pers,sizeof(pers),1,w);
}
}
fclose(w);
}
}

p *premier(void)
{
p *prem;

prem=(p*)malloc(sizeof (p));

printf("Entrez le nom a rechercher: ");
scanf("%s",pers.nom);
fflush(stdin);

prem->suivant=prem;
prem->precedent=prem;

return prem;
}

void creation (p pers)
{
p *elt;
p *autrechose;

autrechose=prem;

printf("Entrez le nom a rechercher: ");
scanf("%s",pers.nom);
fflush(stdin);
if((strcmp(pers.nom,"%s"))==NULL)
printf("Aucun nom ne correspond a votre recherche");
else
{
elt=(p *)malloc(sizeof(p));
}

prem->suivant=elt;
prem->precedent=autrechose;
elt->suivant=autrechose;
elt->precedent=prem;
prem=elt;

}

void lecture(p pers,int taille)
{
int i;

for (i=0,i<taille,i++)
printf("Nom: %s\nPrenom: %s\nTelephone: %d\n",pers.nom,pers.prenom,pers.tel);

}

void suppresion(p pers)
{
free(elt);
}

void recherche(p pers)
{
char nav;

ecrire(p);
p *premier();
creation(p);
lecture(p);


do
{
printf("'s' pour suivant - 'p' pour precedent - 'q' pour quitter : ");
scanf("%c",&nav);
fflush(stdin);

switch(nav)
{
case 's' :
prem=prem->suivant;
break;

case 'p' :
prem=prem->precedent;
break;

case 'q' :
suppresion(p);
break;

default : printf(" 's', 'p' ou 'q' ... c'est pas si compliquer...");
}
}while(nav!='q');
}

void menu(p pers)
{
char nav;

do
{
printf("Contacts téléphoniques\n 1. Ajout de contacts\n 2. Recherche de contacts\n 3. Quitter\n");
scanf("%d",&nav);
fflush(stdin);

switch(nav)
{
case '1' :
ecrire(p);
break;

case '2' :
recherche(p);
break;

case '3' :
break;

default: printf("Veuillez appuyer sur 1, 2 ou 3");
}
}while(nav!='3');
}

voila en esperant avoir des réponses positives je vous remercie d'avance pour le futur soutien.

renaud
A voir également:

21 réponses

Baboo
 
Bonjour à tous,

si vous pourriez m'envoyer le code source ce serait vraiment génial. Mon adresse mail est : zibannak1@hotmail.com

Merci d'avance pour tout.

Baboo.
-1