A voir également:
- Repertoire telephonique en C
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Règle en cm sur téléphone - Guide
- Localiser un indicatif téléphonique - Guide
- Annuaire téléphonique gratuit - Télécharger - Bases de données
- Mon répertoire téléphonique sur google - Forum Gmail
3 réponses
meaoui
Messages postés
1
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
29 octobre 2007
1
29 oct. 2007 à 09:29
29 oct. 2007 à 09:29
Merci pour la reponse ,
Ce code est fonctionnel sur Turbo C , que notre prof nous obligent a l'utiliser , mais le problem reside dans la partie de creation du fichier , ajouter l'enregistrement dedans , et comment extraire ses enregistrments lors du prochains apel du programme !
Ce code est fonctionnel sur Turbo C , que notre prof nous obligent a l'utiliser , mais le problem reside dans la partie de creation du fichier , ajouter l'enregistrement dedans , et comment extraire ses enregistrments lors du prochains apel du programme !
SmallFitz
Messages postés
351
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
21 juin 2013
185
26 oct. 2007 à 23:56
26 oct. 2007 à 23:56
Bonjour.
Ton code est trop longet illisible.
Pas le temps de compiler.
Tu aurais pu marquer les erreurs que ton compilo affichait !
En survolant j'ai vu que tu ne mettait pas de break; dans tes switch {}
Ensuite pourquoi mets tu
Ton code est trop longet illisible.
Pas le temps de compiler.
Tu aurais pu marquer les erreurs que ton compilo affichait !
En survolant j'ai vu que tu ne mettait pas de break; dans tes switch {}
Ensuite pourquoi mets tu
case '1':et pas
case 1:?
g fai un repertoire telephonique mai le problem c ke les gestiones ds fichiers ne veule pa fonctionner ,a chaque foi ke je ferme le programme,il ne memorise pa les contactes ke j ai ajoute!!je veu savoir le problem de fichier ke g fai!!merci de me repondre le plu to possible!!#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<graphics.h>
int Initialize()
{
int GraphDriver=DETECT;
int ErrorCode;
int GraphMode=0;
initgraph(&GraphDriver,&GraphMode,"");
ErrorCode=graphresult();
if (ErrorCode!=grOk)
{
printf("erreur syst‚me graphique:%s\n",grapherrormsg(ErrorCode));
return 1;
}
return 0;
}
typedef struct cellule{ char nom[20];
char num_tel[15];
cellule *lien;
}*CONTACT;
CONTACT creerC(char Nom[], char Tel[]) /*fonction cree un contact a partir des parametre d entrer et renvoi son pointeur)*/
{
CONTACT nouveau;
nouveau=(CONTACT)malloc(sizeof(cellule));
strcpy(nouveau->nom,Nom);
strcpy(nouveau->num_tel,Tel);
(nouveau->lien)=NULL;
return nouveau;
}
void affichecontact(CONTACT con,FILE *F) /*affiche le contact telque son reference est passer en argument*/
{
fprintf(F,"Nom du contact est %s et le Numero du contact est %s\n",con->nom,con->num_tel);
}
CONTACT rechercheC(CONTACT c, CONTACT con) /*rechercheC le contact et renvoi le pointeur de l'elet precedent si il existe sinon null*/
{
CONTACT tamp1;
CONTACT tamp2;
CONTACT p=NULL;
tamp1=c;
if(tamp1)
{ if(! strcmp(tamp1->nom,con->nom)) p=tamp1;
else
{
tamp2=(tamp1->lien);
while(tamp2)
{
if(strcmp(tamp2->nom,con->nom))
{
tamp1=tamp2;
tamp2=(tamp1->lien);
}
else
{
p=tamp1;
tamp2=NULL;
}
}
}
}
return p;
}
int ajoutC(CONTACT *car, CONTACT con) /*ajoutCer un contact au annuaire si il n'existe pas et renvoi 1 sinon renvoie o*/
{ int ok=0;
CONTACT t;
if(*car)
{ t=rechercheC(*car,con);
if(! t)
{ ok=1;
(con->lien)=(*car);
(*car)=con;
}
}
else {*car=con; ok=1;}
return ok;
}
int supprimerC(CONTACT *car, CONTACT con) /*supprimerC un contact si il existe et renvoie 1 sinon renvoie 0*/
{ int ok=0;
CONTACT t,r;
t=rechercheC(*car,con);
if (t)
{ ok=1;
if(strcmp(t->nom,con->nom))
{ r=(t->lien);
(t->lien)=(r->lien);
free(r);
}
else { *car=(t->lien); free(t);}
}
return ok;
}
void affiche_carnet(FILE *F,CONTACT car) /*affiche le carne de annuaire*/
{
CONTACT tamp=car;
while(tamp)
{
affichecontact(tamp,F);
tamp=(tamp->lien);
}
}
void restaurer(FILE *F,CONTACT *annu)
{
CONTACT abonne;
char noum[20],phone[15];
while(! feof(F))
{
fscanf(F,"Nom du contact est %s et le Numero du contact est %s\n",noum,phone);
abonne=creerC(noum,phone);
if(ajoutC(annu,abonne)) puts("elements ajouter");
else puts("element existe deja");
}
}
void main()
{ int x,k;
char noum[20];
char phone[15];
CONTACT annuaire=NULL;
CONTACT abonne;
char choix='o';
FILE *fic;
if (Initialize())
{
printf("impossible de passer au mode graphique");
getche();
}
else
{
flushall();
setcolor(1);
setbkcolor(8);
settextstyle(4,0,4);
outtextxy(70,175,"REPERTOIRE TELEPHONIQUE ");
outtextxy(70,200," VOICI LE MENU ");
getche();
clrscr();
while (choix!='Q')
{
flushall();
setcolor(1);
setbkcolor(8);
settextstyle(1,0,2);
outtextxy(75,150,"******************** menu **************************");
outtextxy(80,170,"A- Ajouter de contact");
outtextxy(85,190,"S- Supprimer contact");
outtextxy(90,210,"a- Affiche annuaire");
outtextxy(95,230,"s- Sauvegarder");
outtextxy(100,250,"R- restaurer");
outtextxy(105,270,"Q- Quitter");
getche();
clrscr();
choix=getchar();
switch(choix)
{
case 'A': puts("donner le nombre de contact a ajouter entre 1 et 100");
scanf("%i",&x);
puts("************************ajout des contact********************************");
for(k=0;k<x;k++)
{
printf("\n donner le nom et le telephone de contact %i",k+1);
scanf("%s %s",noum,phone);
abonne=creerC(noum,phone);
if(ajoutC(&annuaire,abonne)) puts("elts ajoutCer");
else puts("elet existe deja");
}
break;
case 'S': printf("\n donner le nom et le telephone de contact a supprimer");
scanf("%s %s",noum,phone);
abonne=creerC(noum,phone);
if(supprimerC(&annuaire,abonne)) puts("suppression reussie");
else puts("elements non existant");
break;
case 'a': affiche_carnet(stdout,annuaire); break;
case 's': fic=fopen("c:\\annuaire.txt","w");
affiche_carnet(fic,annuaire); fclose(fic); break;
case 'R': fic=fopen("c:\\annuaire.txt","r");
restaurer(fic,&annuaire); fclose(fic); break;
}
}
puts("fin du programme");
getch();
}
}
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<graphics.h>
int Initialize()
{
int GraphDriver=DETECT;
int ErrorCode;
int GraphMode=0;
initgraph(&GraphDriver,&GraphMode,"");
ErrorCode=graphresult();
if (ErrorCode!=grOk)
{
printf("erreur syst‚me graphique:%s\n",grapherrormsg(ErrorCode));
return 1;
}
return 0;
}
typedef struct cellule{ char nom[20];
char num_tel[15];
cellule *lien;
}*CONTACT;
CONTACT creerC(char Nom[], char Tel[]) /*fonction cree un contact a partir des parametre d entrer et renvoi son pointeur)*/
{
CONTACT nouveau;
nouveau=(CONTACT)malloc(sizeof(cellule));
strcpy(nouveau->nom,Nom);
strcpy(nouveau->num_tel,Tel);
(nouveau->lien)=NULL;
return nouveau;
}
void affichecontact(CONTACT con,FILE *F) /*affiche le contact telque son reference est passer en argument*/
{
fprintf(F,"Nom du contact est %s et le Numero du contact est %s\n",con->nom,con->num_tel);
}
CONTACT rechercheC(CONTACT c, CONTACT con) /*rechercheC le contact et renvoi le pointeur de l'elet precedent si il existe sinon null*/
{
CONTACT tamp1;
CONTACT tamp2;
CONTACT p=NULL;
tamp1=c;
if(tamp1)
{ if(! strcmp(tamp1->nom,con->nom)) p=tamp1;
else
{
tamp2=(tamp1->lien);
while(tamp2)
{
if(strcmp(tamp2->nom,con->nom))
{
tamp1=tamp2;
tamp2=(tamp1->lien);
}
else
{
p=tamp1;
tamp2=NULL;
}
}
}
}
return p;
}
int ajoutC(CONTACT *car, CONTACT con) /*ajoutCer un contact au annuaire si il n'existe pas et renvoi 1 sinon renvoie o*/
{ int ok=0;
CONTACT t;
if(*car)
{ t=rechercheC(*car,con);
if(! t)
{ ok=1;
(con->lien)=(*car);
(*car)=con;
}
}
else {*car=con; ok=1;}
return ok;
}
int supprimerC(CONTACT *car, CONTACT con) /*supprimerC un contact si il existe et renvoie 1 sinon renvoie 0*/
{ int ok=0;
CONTACT t,r;
t=rechercheC(*car,con);
if (t)
{ ok=1;
if(strcmp(t->nom,con->nom))
{ r=(t->lien);
(t->lien)=(r->lien);
free(r);
}
else { *car=(t->lien); free(t);}
}
return ok;
}
void affiche_carnet(FILE *F,CONTACT car) /*affiche le carne de annuaire*/
{
CONTACT tamp=car;
while(tamp)
{
affichecontact(tamp,F);
tamp=(tamp->lien);
}
}
void restaurer(FILE *F,CONTACT *annu)
{
CONTACT abonne;
char noum[20],phone[15];
while(! feof(F))
{
fscanf(F,"Nom du contact est %s et le Numero du contact est %s\n",noum,phone);
abonne=creerC(noum,phone);
if(ajoutC(annu,abonne)) puts("elements ajouter");
else puts("element existe deja");
}
}
void main()
{ int x,k;
char noum[20];
char phone[15];
CONTACT annuaire=NULL;
CONTACT abonne;
char choix='o';
FILE *fic;
if (Initialize())
{
printf("impossible de passer au mode graphique");
getche();
}
else
{
flushall();
setcolor(1);
setbkcolor(8);
settextstyle(4,0,4);
outtextxy(70,175,"REPERTOIRE TELEPHONIQUE ");
outtextxy(70,200," VOICI LE MENU ");
getche();
clrscr();
while (choix!='Q')
{
flushall();
setcolor(1);
setbkcolor(8);
settextstyle(1,0,2);
outtextxy(75,150,"******************** menu **************************");
outtextxy(80,170,"A- Ajouter de contact");
outtextxy(85,190,"S- Supprimer contact");
outtextxy(90,210,"a- Affiche annuaire");
outtextxy(95,230,"s- Sauvegarder");
outtextxy(100,250,"R- restaurer");
outtextxy(105,270,"Q- Quitter");
getche();
clrscr();
choix=getchar();
switch(choix)
{
case 'A': puts("donner le nombre de contact a ajouter entre 1 et 100");
scanf("%i",&x);
puts("************************ajout des contact********************************");
for(k=0;k<x;k++)
{
printf("\n donner le nom et le telephone de contact %i",k+1);
scanf("%s %s",noum,phone);
abonne=creerC(noum,phone);
if(ajoutC(&annuaire,abonne)) puts("elts ajoutCer");
else puts("elet existe deja");
}
break;
case 'S': printf("\n donner le nom et le telephone de contact a supprimer");
scanf("%s %s",noum,phone);
abonne=creerC(noum,phone);
if(supprimerC(&annuaire,abonne)) puts("suppression reussie");
else puts("elements non existant");
break;
case 'a': affiche_carnet(stdout,annuaire); break;
case 's': fic=fopen("c:\\annuaire.txt","w");
affiche_carnet(fic,annuaire); fclose(fic); break;
case 'R': fic=fopen("c:\\annuaire.txt","r");
restaurer(fic,&annuaire); fclose(fic); break;
}
}
puts("fin du programme");
getch();
}
}