1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
| #include<stdio.h>
#include<stdlib.h>
#include "liste_client_test.h"
void inserer(l_fiches **tete,fiche_c nouvellef)
{
//int fin_fich;
/*On insere en tete*/
l_fiches *nouveau;
nouveau=(l_fiches*)malloc(sizeof(l_fiches));//On reserve lespace pour la nouvelle fiche client
nouveau->client=nouvellef;
nouveau->p_suiv=*tete;
*tete=nouveau;
}
l_fiches* lire_fichier()
{
FILE *fichier;
fiche_c f;
l_fiches *liste=NULL; //Initialisation de la liste chainee
fichier=fopen("liste_client.txt","r"); //On ouvre le fichier en mode lecture
while((fscanf(fichier,"%d\t%d\t%f",&(f.numero),&(f.cc),&(f.solde)))!=EOF)
{
inserer(&liste,f);
}
fclose(fichier);
return liste;
}
void afficher(l_fiches *liste)
{
while(liste!=NULL)
{
printf("%d\t%d\t%f",liste->client.numero,liste->client.cc,liste->client.solde);
liste=liste->p_suiv;
}
}
l_fiches* selectionner(l_fiches* liste,int numero)
{
l_fiches* select=NULL;
while(liste!=NULL)
{
if(numero==(liste->client.numero))
{
select=liste;
return select;
}
liste=liste->p_suiv;
}
return select;
}
void modifier(l_fiches* liste)
{
int numero;
l_fiches* cherche;
printf("Entrer le numero de client a rechercher:\n");
scanf("%d",&numero);
cherche=selectionner(liste,numero);
if(cherche!=NULL)
{
printf("code: %d et solde: %f",cherche->client.cc,cherche->client.solde);
scanf("%d",&(cherche->client.cc));
}
else
{
printf("Numero de carte introuvable\n");
}
}
void sauvegarder(l_fiches* liste)
{
FILE *fichier;
l_fiches *courant;
if((fichier=fopen("liste_client.txt","w"))==NULL)
{
printf("Fichier introuvable\n");
exit(1);
}
courant=liste;
while(courant!=NULL)
{
fprintf(fichier,"%d\t%d\t%f\n",courant->client.numero,courant->client.cc,courant->client.solde);
courant=courant->p_suiv;
}
fclose (fichier);
}
void liberer_mem(l_fiches* liste)
{
while(liste!=NULL)
{
l_fiches* courant;
courant=liste;
while(courant!=NULL)
{
liste=liste->p_suiv;
free(courant);
courant=liste;
}
}
}
int main()
{
/*Insertion d'une nouvelle fiche*/
fiche_c nouveau;
l_fiches *tete=NULL;
l_fiches *liste;
printf("Veuillez entrer le numero client: \n");
scanf("%d",&(nouveau.numero));
printf("Veuillez entrer le code: \n");
scanf("%d",&(nouveau.cc));
liste=lire_fichier(); //On va dabord lire le ficher texte et creer la liste chainee
inserer(&tete,nouveau);//On insere une nouvelle fiche
afficher(liste);//On affiche la nouvelle liste
sauvegarder(liste);//On sauvegarde
liberer_mem(liste);//On libere la memoire
printf("Fin\n");
return 0;
} |
Partager