#include<stdio.
h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#define true 1
#define false 0
struct etudiant{
char prenom[20];
char nom[10];
char code[15];
char telephone[10];
char sexe[10];
int age;
char option[10];
};
etudiant *x;
FILE *f;
char nomfichier[50]="final_struct.txt";
void saisie()
int i,n;
f=fopen(nomfichier,"a");
if(f==NULL)
printf("le fichier ne peut pas ouvir\n");
return;
x=(struct etudiant*)malloc(sizeof(struct etudiant));
printf("entrer le nombre d'ami que tu veux enregistrer \nR:");
scanf("%d",&n);
fflush(stdin);
printf("donc tu veux enregistrer %d etudiant\n",n);
getch();
if(n>0)
for(i = 0 ; i < n ; i++)
printf("entrer le prenom de l'ami :");
scanf ("%s",x->prenom);
fflush(stdin);
printf("entrer le nom de l'ami :");
scanf ("%s",x->nom);
fflush(stdin);
printf("entrer le code de l'ami :");
scanf ("%s",x->code);
fflush(stdin);
printf("entrer le numero telephone de l'ami :");
scanf ("%s",x->telephone);
fflush(stdin);
printf("entrer le sexe de l'ami :");
scanf ("%s",x->sexe);
fflush(stdin);
printf("entrer l'age de l'ami :");
scanf ("%d",&x->age);
fflush(stdin);
printf("entrer l'option de l'ami :");
scanf ("%s",x->option);
fflush(stdin);
fprintf(f,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x->sexe,x-
>age,x->option);
printf("\nvoila ton ami\n%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x-
>telephone,x->sexe,x->age,x->option);
getch();
if(n<=0)
{
printf("\ntu n'as rien a enregistrer, donc je ferme le fichier\n");
free(x);
fclose(f);
void affichage()
int ligne=1;
f=fopen(nomfichier,"r");
if(f==NULL)
printf("le fichier est vide\n");
return;
x=(struct etudiant*)malloc(sizeof(struct etudiant));
while(fscanf(f,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x->sexe,&x-
>age,x->option) == 7)
printf("%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x->sexe,x-
>age,x->option);
getch();
ligne=ligne+1;
free(x);
fclose(f);
void recherche()
int trouver=0;
char rcode[10];
f=fopen(nomfichier,"r");
if(f==NULL)
printf("le fichier n'a pas de donnees\n");
return;
x=(struct etudiant*)malloc(sizeof(struct etudiant));
printf("entrer le code de l'ami rechercher :");
scanf("%s",&rcode);
fflush(stdin);
while(fscanf(f,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x->sexe,&x-
>age,x->option)==7)
if(strcmp(rcode,x->code)==0)
trouver=1;
printf("code trouver\n");
printf("%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x-
>sexe,x->age,x->option);
getch();
//break;
free(x);
fclose(f);
if(trouver==0)
printf("desole, ce code n'existe pas\n");
getch();
void remove()
{
char rep;
printf("vous voulez effacer le fichier (oui(o) ou non(n))? \nR:");
scanf ("%c",&rep);
if(rep=='o')
int r = remove(nomfichier);
if(r==0)
printf("le fichier est effacer!!!\n");
getch();
else
printf("le fichier n'est pas effacer!!!\n");
getch();
void rename()
char rep[50];
printf("entrer le nouveau nom du fichier :");
scanf ("%s",rep);
int r = rename(nomfichier,rep);
if(r==0)
strcpy(nomfichier,rep);
printf("le fichier est rennomer!!!\n");
getch();
else
printf("le fichier n'est pas rennomer!!!\n");
getch();
void modifier()
int trouver;
char rche[10],nc[100],nn[100],np[100],na,nt[100],ns[100],no[100];
f=fopen(nomfichier,"r");
if(f==NULL)
printf("desoler, le fichier est vide\n");
return;
FILE *temp=fopen("[Link]","w");
if(temp==NULL)
printf("le fichier ne peut pas ouvrir\n");
return;
x=(struct etudiant*)malloc(sizeof(struct etudiant));
printf("entrer le code de l'etudiant pour que vous modifiez le donner vous voulez:");
scanf("%s",&rche);
fflush(stdin);
while(fscanf(f,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x->sexe,&x-
>age,x->option)==7)
if(strcmp(rche,x->code)==0)
trouver=1;
printf("code trouver");
printf("%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x-
>sexe,x->age,x->option);
getch();
printf("nouveau prenom: ");
scanf("%s",np);
fflush(stdin);
printf("nouveau nom: ");
scanf("%s",nn);
fflush(stdin);
printf("nouveau code: ");
scanf("%s",nc);
fflush(stdin);
printf("nouveau telephone: ");
scanf("%s",nt);
fflush(stdin);
printf("nouveau sexe: ");
scanf("%s",ns);
fflush(stdin);
printf("nouveau age: ");
scanf("%d",&na);
fflush(stdin);
printf("nouveau option: ");
scanf("%s",no);
fflush(stdin);
fprintf(temp,"%s %s %s %s %s %d %s\n",np,nn,nc,nt,ns,na,no);
getch();
printf("la modification a reussir\n");
printf("%s %s %s %s %s %d %s\n",np,nn,nc,nt,ns,na,no);
getch();
}
else
fprintf(temp,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x-
>telephone,x->sexe,x->age,x->option);
if(trouver==0)
printf("code introuvable!\n");
getch();
free(x);
fclose(f);
fclose(temp);
remove(nomfichier);
rename("[Link]",nomfichier);
void remplacer()
int trouver;
char ncode[20],acode[20];
f=fopen(nomfichier,"r");
if(f==NULL)
printf("\nle fichier est vide\n");
return;
FILE *temp=fopen("[Link]","w");
x=(struct etudiant*)malloc(sizeof(struct etudiant));
printf("\nentrer l'ancien code de l'etudiant:");
scanf("%s",acode);
fflush(stdin);
printf("\nentrer le nouveau code maintenant:");
scanf("%s",ncode);
fflush(stdin);
trouver=0;
while(fscanf(f,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x->sexe,&x-
>age,x->option)==7)
if(strcmp(acode,x->code)==0)
trouver=1;
printf("\ncode trouver");
printf("%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x-
>sexe,x->age,x->option);
getch();
fprintf(temp,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,ncode,x-
>telephone,x->sexe,x->age,x->option);
printf("\nsucces!!!\n");
printf("%s %s %s %s %s %d %s\n",x->prenom,x->nom,ncode,x->telephone,x-
>sexe,x->age,x->option);
getch();
else
fprintf(temp,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x-
>telephone,x->sexe,x->age,x->option);
if(trouver==0)
free(x);
printf("desole, le code n'as pas pu trouver\n");
getch();
fclose(f);
fclose(temp);
remove(nomfichier);
rename("[Link]",nomfichier);
void effacer()
char rche[10];
int trouver=0;
f=fopen(nomfichier,"r");
if(f==NULL)
printf("le fichier est vide\n");
return;
FILE *temp;
temp=fopen("[Link]","w");
x=(struct etudiant*)malloc(sizeof(struct etudiant));
printf("entrer le code enregistrement vous voulez effacer:");
scanf("%s",rche);
fflush(stdin);
while(fscanf(f,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x->telephone,x->sexe,&x-
>age,x->option)==7)
{
if(strcmp(rche,x->code)==0)
trouver=1;
printf("succes!!!\n");
getch();
else
fprintf(temp,"%s %s %s %s %s %d %s\n",x->prenom,x->nom,x->code,x-
>telephone,x->sexe,x->age,x->option);
if(trouver==0)
printf("le code est introuvable\n");
free(x);
fclose(f);
fclose(temp);
remove(nomfichier);
rename("[Link]",nomfichier);
int main()
{
int choix;
do
printf("\nMenu");
printf("\n==========================================");
printf("\n si vous voulez saisir des donnees tapez 1");
printf("\n si vous voulez afficher des donnees tapez 2");
printf("\n si vous voulez rechercher des donnees tapez 3");
printf("\n si vous voulez sortir dans le programme tapez 4");
printf("\n si vous voulez modifier des donnees tapez 5");
printf("\n si vous voulez effacer le fichier tapez 6");
printf("\n si vous voulez changer le nom du fichier tapez 7");
printf("\n si vous voulez remplacer un ancien code enregistrement tapez 8");
printf("\n si vous voulez effacer un enregistrement tapez 9");
printf("\n\n entrer votre choix:");
scanf("%d",&choix);
fflush(stdin);
switch(choix)
case 1:
saisie();
break;
case 2:
affichage();
break;
case 3:
recherche();
break;
case 4:
printf("\nAu revoir");
break;
case 5:
modifier();
break;
case 6:
remove();
break;
case 7:
rename();
break;
case 8:
remplacer();
break;
case 9:
effacer();
break;
default:
printf("\nchoix invalide");
break;
}while(choix!=4);
return 0;