|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
GESTION DE BIBLIOTHEQUE
Information sur la source
Description
ce code sert à ajouter un lecteur ,supprimer,modifier ou le lister , de meme des livres , puis on emprunte des livres de la bibliotheque en precisant la date ,le num de l'operation ,et le type ( 1 : emprunt ou 2 : remise ) et l'id de l'emprunteur et la cote du livre .
Source
- //traite avec visuel c++
-
- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
-
- typedef struct
- {
- char nom[20];
- char prenom[20];
- unsigned id ;
- }lecteur;
-
-
-
-
- typedef struct
- {
- char titre[20];
- char auteur[20];
- unsigned cote ;
- }livre;
-
- typedef struct
- {int type;
- }typeoperator;
-
- typedef struct
- {
- int jour,mois,annee;
- }date;
-
- typedef struct
- {
- unsigned numop;
- typeoperator typeop;
- date dateop;
- unsigned idlecteur;
- unsigned idlivre;
- }gestionemprunt;
-
- /* void saisir_lecteur(lecteur *l);
- void afficher_lecteur(lecteur l);
- void ajouter_lecteur(lecteur l,char *nomfichier);
- void lister_lecteur(char *nomfichier);
- void modifier_lecteur(lecteur l,unsigned id,char *nomfichier);
- void supprimer_lecteur(unsigned id,char *nomfichier); */
-
- ///////////////////////////////////////////////////////
-
-
-
-
- ///////////////////////////////////////////////////////:
- int recherche_livre (char *nomfichier2,unsigned cote)
- {
- int u=0;
- gestionemprunt ge;
- FILE *fp;
- if(fp=fopen(nomfichier2,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&ge,sizeof(gestionemprunt),1,fp);
- if(!feof(fp)&&ge.idlivre==cote)
- {
- u=1;
- return(u);
- }
- }
- fclose(fp);
- }
-
- return(u);
- }
-
- ///////////////////////////////////////////////////////
- int recherche (char *nomfichier, unsigned id)
- {
- int u=0;
- lecteur l;
- FILE *fp;
- if(fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&l,sizeof(lecteur),1,fp);
- if(!feof(fp)&&l.id==id)
- {
- u=1;
- return(u);
- }
- }
- fclose(fp);
- }
-
- return(u);
- }
- ////////////////////////////////////////////////////////
- int existe (char *nomfichier, unsigned numop)
- {
- int u=0;
- gestionemprunt g;
- FILE *fp;
- if(fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&g,sizeof(gestionemprunt),1,fp);
- if(!feof(fp)&&g.numop==numop)
- {
- u=1;
- return(u);
- }
- }
- fclose(fp);
- }
- return(u);
- }
- ///////////////////////////////////////////////////////
- unsigned test(char *nomfich2,unsigned numop)
- {
- gestionemprunt g;
- FILE *fp;
- if(fp=fopen(nomfich2,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&g,sizeof(gestionemprunt),1,fp);
- if(!feof(fp)&&g.numop==numop)
- {
-
- return(g.idlivre);
- }
- }
- fclose(fp);
- }
-
- }
- /////////////////////////////////////////////////////////
- unsigned test1(char *nomfich2,unsigned id)
- {
- gestionemprunt g;
- FILE *fp;
- if(fp=fopen(nomfich2,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&g,sizeof(gestionemprunt),1,fp);
- if(!feof(fp)&&g.idlecteur==id)
- {
- fseek(fp,-sizeof(g),1);
- return(g.numop);
- }
- }
- fclose(fp);
- }
-
- }
-
-
-
-
- ////////////////////////////////////////////////////////
- void saisir_lecteur(lecteur *l)
- {
-
- printf("donner les nouvelles informations du lecteur");
- printf("id?\n");
- scanf("%d",&l->id);
-
- printf("Nom?\n");
- scanf("%s",l->nom);
- printf("prenom ?\n");
- scanf("%s",l->prenom);
- }
- /////////////////////////////////////////////////////////
- void saisir__lecteur(lecteur *l,char *nomfich)
- {
- do
- {
- printf("donner les nouvelles informations du lecteur");
- printf("id?\n");
- scanf("%d",&l->id);
- if(recherche(nomfich,l->id)==1)
- printf("id existant");
- }while(recherche(nomfich,l->id)==1);
-
- printf("Nom?\n");
- scanf("%s",l->nom);
- printf("prenom ?\n");
- scanf("%s",l->prenom);
- }
-
-
- ////////////////////////////////////////////////////////
- void afficher_lecteur(lecteur l)
- {
-
- printf("\n");
- printf("Le lecteur ");
- printf("id : %d ",l.id);
- printf("Nom :%s ",l.nom);
- printf("prenom : %s ",l.prenom);
- }
- ////////////////////////////////////////////////////////
-
- void ajouter_lecteur(lecteur l,char *nomfichier)
- {
- FILE *fp;
- lecteur tmp;
-
- if(fp=fopen(nomfichier,"a+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&tmp,sizeof(lecteur),1,fp);
- if(tmp.id==0||feof(fp))
- {
- fseek(fp,-sizeof(lecteur),1);
- fwrite(&l,sizeof(lecteur),1,fp);
- break;
- }
- }
-
- }
- else
- printf("erreur !!");
- fclose(fp);
- }
-
- /////////////////////////////////////////////////////////:
-
- void lister_lecteur(char *nomfichier)
- {
- FILE *fp;
- lecteur l;
- if (fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
-
- while(!feof(fp))
- {
- fread(&l,sizeof(lecteur),1,fp);
-
- if(!feof(fp)&&l.id)
- afficher_lecteur(l);
-
- }
- }
- fclose(fp);
-
- }
-
- /////////////////////////////////////////////////////////////////////
-
- void modifier_lecteur(lecteur l,unsigned id,char * nomfichier)
- {
- FILE *fp;
- lecteur tmp;
-
- if(fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread (&tmp,sizeof(lecteur),1,fp);
- if(!feof(fp))
- {
- if(tmp.id==id)
-
-
- {
- fseek(fp,-sizeof(lecteur),SEEK_CUR);
- fwrite(&l,sizeof(lecteur),1,fp);
- break;
- }
- }
-
- else
-
- printf("Enregistrement non trouvée");
- }
- }
- else
- printf("erreur");
-
- fclose(fp);
- }
- //////////////////////////////////////////////////////////////////////////:
- void supprimer_lecteur(unsigned id,char * nomfichier)
- {
-
-
- lecteur supl={0,"",""};
-
- modifier_lecteur(supl,id,nomfichier);
-
- }
-
- ///////////////////////////////////////////////////////////////////////
-
-
-
- void saisir_livre(livre *l)
- {
- printf("donner les nouvelles informations du livre");
- printf("cote?\n");
- scanf("%d",&l->cote);
- printf("Titre?\n");
- scanf("%s",l->titre);
- printf("auteur ?\n");
- scanf("%s",l->auteur);
- }
- ////////////////////////////////////////////////////////
- void saisir__livre(livre *l,char *nomfich1)
- {
- do
- {
- printf("donner les nouvelles informations du livre");
- printf("cote?\n");
- scanf("%d",&l->cote);
- if(recherche(nomfich1,l->cote)==1)
- printf("Cote existant");
- }while(recherche(nomfich1,l->cote)==1);
-
- printf("Titre?\n");
- scanf("%s",l->titre);
- printf("auteur ?\n");
- scanf("%s",l->auteur);
- }
- ////////////////////////////////////////////////////////
- void afficher_livre(livre l)
- {
-
- printf("\n");
- printf("Le livre ");
- printf("cote : %d ",l.cote);
- printf("titre:%s ",l.titre);
- printf("auteur : %s ",l.auteur);
- }
- ////////////////////////////////////////////////////////
-
- void ajouter_livre(livre l,char *nomfichier)
- {
- FILE *fp;
- livre tmp;
- if(fp=fopen(nomfichier,"a+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&tmp,sizeof(livre),1,fp);
- if(tmp.cote==0||feof(fp))
- {
- fseek(fp,-sizeof(livre),1);
- fwrite(&l,sizeof(livre),1,fp);
- break;
- }
- }
- fclose(fp);
- }
-
- else
- printf("erreur !!");
-
- }
-
-
- /////////////////////////////////////////////////////////:
-
- void lister_livre(char *nomfichier)
- {
- FILE *fp;
- livre l;
- if (fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
-
- while(!feof(fp))
- {
- fread(&l,sizeof(livre),1,fp);
-
- if(!feof(fp)&&l.cote)
- afficher_livre(l);
-
- }
- }
- fclose(fp);
-
- }
-
- /////////////////////////////////////////////////////////////////////
-
- void modifier_livre(livre l,unsigned cote,char * nomfichier)
- {
- FILE *fp;
- livre tmp;
-
- if(fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread (&tmp,sizeof(livre),1,fp);
- if(!feof(fp))
- {
- if(tmp.cote==cote)
-
-
- {
- fseek(fp,-sizeof(livre),SEEK_CUR);
- fwrite(&l,sizeof(livre),1,fp);
- break;
- }
- }
-
- else
-
- printf("Enregistrement non trouvée");
- }
- }
- else
- printf("erreur");
-
- fclose(fp);
- }
- //////////////////////////////////////////////////////////////////////////:
- void supprimer_livre(unsigned cote,char * nomfichier)
- {
- livre supl={0,"",""};
-
- modifier_livre(supl,cote,nomfichier);
-
-
- }
-
- ////////////////////////////////////////////////////////
- date saisir_date()
- {
- date d;
- printf("Donner le jour,mois ,annee");
- scanf("%d%d%d",&d.jour,&d.mois,&d.annee);
- return d;
- }
- void affiche_date(date d)
- {
- printf("date : %d/%d/%d",d.jour,d.mois,d.annee);
- }
-
- ///////////////////////////////////////////////////////
- void saisir_operation(gestionemprunt *ge,char *nomfich,char *nomfich1,char *nomfich2)
- {
- unsigned cot;
- printf("Donner le numero de l'operation\n");
- scanf("%d",&ge->numop);
-
- do
- {
- printf("Donner le type d'operator\n");
- scanf("%d",&ge->typeop.type);
- }
- while( ge->typeop.type >2 ||ge->typeop.type <1);
- printf("Date \n");
- ge->dateop=saisir_date();
-
- do
- {
- printf("Donner l'id du lecteur\n");
- scanf("%d",&ge->idlecteur);
-
-
- if ( recherche(nomfich,ge->idlecteur)==0)
- printf("Id innexistant !!!");
- }while(( recherche(nomfich,ge->idlecteur)==0));
-
-
- do
- {
- printf("donner l'id du livre\n");
- scanf("%d",&ge->idlivre);
-
- if(recherche(nomfich1,ge->idlivre)==0)
- printf("Cote innexistant !!!");
-
-
- //if(recherche_livre(nomfich2,cot)==1)
- //printf("deja emprunté");
-
- }while((recherche(nomfich1,ge->idlivre)==0));//||recherche_livre(nomfich2,cot)==1);
- }
-
- ////////////////////////////////////////////////////////
- void saisir__operation(gestionemprunt *ge,char *nomfich,char *nomfich1,char *nomfich2)
- {
-
- do
- {
- printf("Donner le numero de l'operation\n");
- scanf("%d",&ge->numop);
- if(existe(nomfich2,ge->numop)==1)
- printf("Op existante");
- }while(existe(nomfich2,ge->numop)==1);
-
-
-
- do
- {
- printf("Donner le type d'operator\n");
- scanf("%d",&ge->typeop.type);
- }
- while( ge->typeop.type >2 ||ge->typeop.type <1);
- printf("Date \n");
- ge->dateop=saisir_date();
- do
- {
- printf("Donner l'id du lecteur\n");
- scanf("%d",&ge->idlecteur);
- if ( recherche(nomfich,ge->idlecteur)==0)
- printf("Id innexistant !!!");
-
-
- }while(( recherche(nomfich,ge->idlecteur)==0));
-
- do
- {
- printf("donner l'id du livre\n");
- scanf("%d",&ge->idlivre);
- if(recherche(nomfich1,ge->idlivre)==0)
- printf("Cote innexistant !!!");
-
- if(recherche_livre(nomfich2,ge->idlivre)==1)
- printf("deja emprunté");
-
- }while((recherche(nomfich1,ge->idlivre)==0)||recherche_livre(nomfich2,ge->idlivre)==1);
- }
-
-
-
- /////////////////////////////////////////////////////////
- void affiche_operation(gestionemprunt ge)
- {
- printf("numop : %d",ge.numop);
- printf("typeop %d",ge.typeop);
- printf("date :");
- affiche_date(ge.dateop);
- printf("id lecteur : %d ",ge.idlecteur);
- printf("id livre :%d",ge.idlivre);
- printf("\n");
- }
- /////////////////////////////////////////////////
-
- void ajouter_operation(gestionemprunt ge,char *nomfichier)
- {
- FILE *fp;
- gestionemprunt tmp;
-
- if(fp=fopen(nomfichier,"a+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&tmp,sizeof(gestionemprunt),1,fp);
- if(feof(fp)||ge.numop==0)
- {
- fseek(fp,-sizeof(gestionemprunt),1);
- fwrite(&ge,sizeof(gestionemprunt),1,fp);
- break;
- }
- }
- fclose(fp);
-
- }
- else printf("erreur");
- }
-
- ////////////////////////////////////////////////////////
- /*gestionemprunt efface(gestionemprunt *ge)
- {
- ge->numop=0;
-
- return *ge;
- }*/
-
-
- //////////////////////////////////////////////////////////
- /*void supprimer_operation(unsigned numop,char *nomfichier)
- {
- FILE *fp;
- gestionemprunt tmp;
-
- gestionemprunt *ge;
-
- ge->numop=0;
-
-
- if(fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&tmp,sizeof(gestionemprunt),1,fp);
- if(!feof(fp))
- {
- if(tmp.numop==numop)
- {
- fseek(fp,-sizeof(tmp),1);
- fwrite(&ge,sizeof(tmp),1,fp);
- break;
- }
- else printf("enregistrement non trouvee");
-
- }
- fclose(fp);
- }
- }else printf("erreur!!");
-
-
- }*/
- //////////////////////////////////////////////////////////
- void modifier_operation(gestionemprunt ge,unsigned numop,char *nomfichier)
- {
- FILE *fp;
- gestionemprunt tmp;
- if(fp=fopen(nomfichier,"r+b"))
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&tmp,sizeof(gestionemprunt),1,fp);
- if(!feof(fp))
- {
- if(tmp.numop==numop)
- {
- fseek(fp,-sizeof(gestionemprunt),1);
- fwrite(&ge,sizeof(gestionemprunt),1,fp);
- break;
- }
-
- }
- else printf("enregistrement non trouvee");
-
- }
-
- }
- else printf("erreur d'ouverture");
- fclose(fp);
-
- }
- //////////////////////////////////////////////////////////
- void supprimer_operation(unsigned numop,char *nomfichier)
- {
- gestionemprunt sup;
- sup.numop=0;
- sup.idlecteur=0;
- sup.idlivre=0;
- sup.typeop.type=0;
- sup.dateop.annee=0;
- sup.dateop.jour=0;
- sup.dateop.mois=0;
- modifier_operation(sup,numop,nomfichier);
- }
-
- /////////////////////////////////////////////////////////
- void lister_operation(char *nomfichier)
- {
- FILE *fp;
- gestionemprunt ge;
- if(fp=fopen(nomfichier,"r+b"))
-
- {
- fseek(fp,0,0);
- while(!feof(fp))
- {
- fread(&ge,sizeof(gestionemprunt),1,fp);
- if(ge.numop!=0 && !feof(fp))
- affiche_operation(ge);
- }
- fclose(fp);
- }
- else printf("erreur");
- }
-
-
- ///////////////////////////////////////////////////////////
-
- void main()
- {
- char nomfich[10];
- char nomfich1[10];
- char nomfich2[10];
- lecteur l;
- int choix;
- unsigned id;
-
- livre lv;
- unsigned cote;
-
- gestionemprunt ge;
- unsigned numop;
- unsigned cot;
- unsigned num;
- printf("donner le nom du fichier a creer pour lecteur\n ");
- scanf("%s",nomfich);
- printf("donner le nom du fichier a creer pour livre\n ");
- scanf("%s",nomfich1);
-
- printf("donner le nom du fichier a creer pour la gestion\n ");
- scanf("%s",nomfich2);
-
-
- do
- {
-
- printf("donner votre choix : \n");
- printf("1: pour ajouter ,2 : pour modifier ,3 : pour supprimer ,4 pour lister \n");
- printf("5: pour ajouter livre ,6: pour modifier livre,7:pour supprimer livre,8:pour lister livre \n");
- printf("9 : pour ajouter operation ,10 :modifier operation 11 : supprimer operation ,12 lister operation \n");
-
- scanf("%d",&choix);
-
- switch(choix)
- {
- case 1 : saisir__lecteur(&l,nomfich);
- ajouter_lecteur(l,nomfich);
-
-
- break;
-
- case 2: saisir_lecteur(&l);
-
- printf("donner l'id a chercher \n");
- scanf("%u",&id);
-
- if ( recherche(nomfich,l.id)==0 || l.id==id )
-
- modifier_lecteur(l,id,nomfich);
- else printf("Cle EXISTE");
-
- break;
-
- case 3: printf("donner l'id a chercher \n");
- scanf("%u",&id);
- supprimer_lecteur(id,nomfich);
-
- while(existe(nomfich2,id)==1)
- {num=test1(nomfich2,id);
- supprimer_operation(num,nomfich2);
- }
- break;
-
- case 4:lister_lecteur(nomfich);
- break;
-
-
- case 5 : saisir__livre(&lv,nomfich1);
- if ( recherche(nomfich1,lv.cote)==0)
- ajouter_livre(lv,nomfich1);
- else printf("Cote EXISTANT");
- break;
-
- case 6: saisir_livre(&lv);
-
- printf("donner le cote a chercher \n");
- scanf("%u",&cote);
- if ( recherche(nomfich1,lv.cote)==0 ||cote==lv.cote)
- modifier_livre(lv,cote,nomfich1);
- else printf("Cote EXISTE");
- break;
-
-
- case 7: printf("donner le cote a chercher \n");
- scanf("%u",&cote);
- supprimer_livre(cote,nomfich1);
-
- //while(existe(nomfich2,cote)==1)
- //{
- //num=test1(nomfich2,cote);
- //supprimer_operation(num,nomfich2);
- //}
- break;
-
- case 8:lister_livre(nomfich1);
- break;
-
- case 9 :saisir__operation(&ge,nomfich,nomfich1,nomfich2);
- ajouter_operation(ge,nomfich2);
-
- break;
-
- case 10 :saisir_operation(&ge,nomfich,nomfich1,nomfich2);
-
- printf("donner le numero d'operation à modifier\n");
- scanf("%d",&numop);
- cot=test(nomfich2,numop);
- if ( existe(nomfich2,ge.numop)==0||numop==ge.numop)
- if(cot==ge.idlivre||recherche_livre(nomfich2,ge.idlivre)==0)
- modifier_operation(ge,numop,nomfich2);
- else printf("Livre deja emprunte");
-
- else printf("Op EXISTE");
-
- break;
-
- case 11 :printf("Donner le num d'operateur a supprimer \n");
- scanf("%d",&ge.numop);
- supprimer_operation(ge.numop,nomfich2);
- break;
-
- case 12:
- lister_operation(nomfich2);
- break;
- }
- }while(choix!=13);
-
-
- }
//traite avec visuel c++
#include<stdio.h>
#include<conio.h>
#include<string.h>
typedef struct
{
char nom[20];
char prenom[20];
unsigned id ;
}lecteur;
typedef struct
{
char titre[20];
char auteur[20];
unsigned cote ;
}livre;
typedef struct
{int type;
}typeoperator;
typedef struct
{
int jour,mois,annee;
}date;
typedef struct
{
unsigned numop;
typeoperator typeop;
date dateop;
unsigned idlecteur;
unsigned idlivre;
}gestionemprunt;
/* void saisir_lecteur(lecteur *l);
void afficher_lecteur(lecteur l);
void ajouter_lecteur(lecteur l,char *nomfichier);
void lister_lecteur(char *nomfichier);
void modifier_lecteur(lecteur l,unsigned id,char *nomfichier);
void supprimer_lecteur(unsigned id,char *nomfichier); */
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////:
int recherche_livre (char *nomfichier2,unsigned cote)
{
int u=0;
gestionemprunt ge;
FILE *fp;
if(fp=fopen(nomfichier2,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&ge,sizeof(gestionemprunt),1,fp);
if(!feof(fp)&&ge.idlivre==cote)
{
u=1;
return(u);
}
}
fclose(fp);
}
return(u);
}
///////////////////////////////////////////////////////
int recherche (char *nomfichier, unsigned id)
{
int u=0;
lecteur l;
FILE *fp;
if(fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&l,sizeof(lecteur),1,fp);
if(!feof(fp)&&l.id==id)
{
u=1;
return(u);
}
}
fclose(fp);
}
return(u);
}
////////////////////////////////////////////////////////
int existe (char *nomfichier, unsigned numop)
{
int u=0;
gestionemprunt g;
FILE *fp;
if(fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&g,sizeof(gestionemprunt),1,fp);
if(!feof(fp)&&g.numop==numop)
{
u=1;
return(u);
}
}
fclose(fp);
}
return(u);
}
///////////////////////////////////////////////////////
unsigned test(char *nomfich2,unsigned numop)
{
gestionemprunt g;
FILE *fp;
if(fp=fopen(nomfich2,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&g,sizeof(gestionemprunt),1,fp);
if(!feof(fp)&&g.numop==numop)
{
return(g.idlivre);
}
}
fclose(fp);
}
}
/////////////////////////////////////////////////////////
unsigned test1(char *nomfich2,unsigned id)
{
gestionemprunt g;
FILE *fp;
if(fp=fopen(nomfich2,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&g,sizeof(gestionemprunt),1,fp);
if(!feof(fp)&&g.idlecteur==id)
{
fseek(fp,-sizeof(g),1);
return(g.numop);
}
}
fclose(fp);
}
}
////////////////////////////////////////////////////////
void saisir_lecteur(lecteur *l)
{
printf("donner les nouvelles informations du lecteur");
printf("id?\n");
scanf("%d",&l->id);
printf("Nom?\n");
scanf("%s",l->nom);
printf("prenom ?\n");
scanf("%s",l->prenom);
}
/////////////////////////////////////////////////////////
void saisir__lecteur(lecteur *l,char *nomfich)
{
do
{
printf("donner les nouvelles informations du lecteur");
printf("id?\n");
scanf("%d",&l->id);
if(recherche(nomfich,l->id)==1)
printf("id existant");
}while(recherche(nomfich,l->id)==1);
printf("Nom?\n");
scanf("%s",l->nom);
printf("prenom ?\n");
scanf("%s",l->prenom);
}
////////////////////////////////////////////////////////
void afficher_lecteur(lecteur l)
{
printf("\n");
printf("Le lecteur ");
printf("id : %d ",l.id);
printf("Nom :%s ",l.nom);
printf("prenom : %s ",l.prenom);
}
////////////////////////////////////////////////////////
void ajouter_lecteur(lecteur l,char *nomfichier)
{
FILE *fp;
lecteur tmp;
if(fp=fopen(nomfichier,"a+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&tmp,sizeof(lecteur),1,fp);
if(tmp.id==0||feof(fp))
{
fseek(fp,-sizeof(lecteur),1);
fwrite(&l,sizeof(lecteur),1,fp);
break;
}
}
}
else
printf("erreur !!");
fclose(fp);
}
/////////////////////////////////////////////////////////:
void lister_lecteur(char *nomfichier)
{
FILE *fp;
lecteur l;
if (fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&l,sizeof(lecteur),1,fp);
if(!feof(fp)&&l.id)
afficher_lecteur(l);
}
}
fclose(fp);
}
/////////////////////////////////////////////////////////////////////
void modifier_lecteur(lecteur l,unsigned id,char * nomfichier)
{
FILE *fp;
lecteur tmp;
if(fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread (&tmp,sizeof(lecteur),1,fp);
if(!feof(fp))
{
if(tmp.id==id)
{
fseek(fp,-sizeof(lecteur),SEEK_CUR);
fwrite(&l,sizeof(lecteur),1,fp);
break;
}
}
else
printf("Enregistrement non trouvée");
}
}
else
printf("erreur");
fclose(fp);
}
//////////////////////////////////////////////////////////////////////////:
void supprimer_lecteur(unsigned id,char * nomfichier)
{
lecteur supl={0,"",""};
modifier_lecteur(supl,id,nomfichier);
}
///////////////////////////////////////////////////////////////////////
void saisir_livre(livre *l)
{
printf("donner les nouvelles informations du livre");
printf("cote?\n");
scanf("%d",&l->cote);
printf("Titre?\n");
scanf("%s",l->titre);
printf("auteur ?\n");
scanf("%s",l->auteur);
}
////////////////////////////////////////////////////////
void saisir__livre(livre *l,char *nomfich1)
{
do
{
printf("donner les nouvelles informations du livre");
printf("cote?\n");
scanf("%d",&l->cote);
if(recherche(nomfich1,l->cote)==1)
printf("Cote existant");
}while(recherche(nomfich1,l->cote)==1);
printf("Titre?\n");
scanf("%s",l->titre);
printf("auteur ?\n");
scanf("%s",l->auteur);
}
////////////////////////////////////////////////////////
void afficher_livre(livre l)
{
printf("\n");
printf("Le livre ");
printf("cote : %d ",l.cote);
printf("titre:%s ",l.titre);
printf("auteur : %s ",l.auteur);
}
////////////////////////////////////////////////////////
void ajouter_livre(livre l,char *nomfichier)
{
FILE *fp;
livre tmp;
if(fp=fopen(nomfichier,"a+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&tmp,sizeof(livre),1,fp);
if(tmp.cote==0||feof(fp))
{
fseek(fp,-sizeof(livre),1);
fwrite(&l,sizeof(livre),1,fp);
break;
}
}
fclose(fp);
}
else
printf("erreur !!");
}
/////////////////////////////////////////////////////////:
void lister_livre(char *nomfichier)
{
FILE *fp;
livre l;
if (fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&l,sizeof(livre),1,fp);
if(!feof(fp)&&l.cote)
afficher_livre(l);
}
}
fclose(fp);
}
/////////////////////////////////////////////////////////////////////
void modifier_livre(livre l,unsigned cote,char * nomfichier)
{
FILE *fp;
livre tmp;
if(fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread (&tmp,sizeof(livre),1,fp);
if(!feof(fp))
{
if(tmp.cote==cote)
{
fseek(fp,-sizeof(livre),SEEK_CUR);
fwrite(&l,sizeof(livre),1,fp);
break;
}
}
else
printf("Enregistrement non trouvée");
}
}
else
printf("erreur");
fclose(fp);
}
//////////////////////////////////////////////////////////////////////////:
void supprimer_livre(unsigned cote,char * nomfichier)
{
livre supl={0,"",""};
modifier_livre(supl,cote,nomfichier);
}
////////////////////////////////////////////////////////
date saisir_date()
{
date d;
printf("Donner le jour,mois ,annee");
scanf("%d%d%d",&d.jour,&d.mois,&d.annee);
return d;
}
void affiche_date(date d)
{
printf("date : %d/%d/%d",d.jour,d.mois,d.annee);
}
///////////////////////////////////////////////////////
void saisir_operation(gestionemprunt *ge,char *nomfich,char *nomfich1,char *nomfich2)
{
unsigned cot;
printf("Donner le numero de l'operation\n");
scanf("%d",&ge->numop);
do
{
printf("Donner le type d'operator\n");
scanf("%d",&ge->typeop.type);
}
while( ge->typeop.type >2 ||ge->typeop.type <1);
printf("Date \n");
ge->dateop=saisir_date();
do
{
printf("Donner l'id du lecteur\n");
scanf("%d",&ge->idlecteur);
if ( recherche(nomfich,ge->idlecteur)==0)
printf("Id innexistant !!!");
}while(( recherche(nomfich,ge->idlecteur)==0));
do
{
printf("donner l'id du livre\n");
scanf("%d",&ge->idlivre);
if(recherche(nomfich1,ge->idlivre)==0)
printf("Cote innexistant !!!");
//if(recherche_livre(nomfich2,cot)==1)
//printf("deja emprunté");
}while((recherche(nomfich1,ge->idlivre)==0));//||recherche_livre(nomfich2,cot)==1);
}
////////////////////////////////////////////////////////
void saisir__operation(gestionemprunt *ge,char *nomfich,char *nomfich1,char *nomfich2)
{
do
{
printf("Donner le numero de l'operation\n");
scanf("%d",&ge->numop);
if(existe(nomfich2,ge->numop)==1)
printf("Op existante");
}while(existe(nomfich2,ge->numop)==1);
do
{
printf("Donner le type d'operator\n");
scanf("%d",&ge->typeop.type);
}
while( ge->typeop.type >2 ||ge->typeop.type <1);
printf("Date \n");
ge->dateop=saisir_date();
do
{
printf("Donner l'id du lecteur\n");
scanf("%d",&ge->idlecteur);
if ( recherche(nomfich,ge->idlecteur)==0)
printf("Id innexistant !!!");
}while(( recherche(nomfich,ge->idlecteur)==0));
do
{
printf("donner l'id du livre\n");
scanf("%d",&ge->idlivre);
if(recherche(nomfich1,ge->idlivre)==0)
printf("Cote innexistant !!!");
if(recherche_livre(nomfich2,ge->idlivre)==1)
printf("deja emprunté");
}while((recherche(nomfich1,ge->idlivre)==0)||recherche_livre(nomfich2,ge->idlivre)==1);
}
/////////////////////////////////////////////////////////
void affiche_operation(gestionemprunt ge)
{
printf("numop : %d",ge.numop);
printf("typeop %d",ge.typeop);
printf("date :");
affiche_date(ge.dateop);
printf("id lecteur : %d ",ge.idlecteur);
printf("id livre :%d",ge.idlivre);
printf("\n");
}
/////////////////////////////////////////////////
void ajouter_operation(gestionemprunt ge,char *nomfichier)
{
FILE *fp;
gestionemprunt tmp;
if(fp=fopen(nomfichier,"a+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&tmp,sizeof(gestionemprunt),1,fp);
if(feof(fp)||ge.numop==0)
{
fseek(fp,-sizeof(gestionemprunt),1);
fwrite(&ge,sizeof(gestionemprunt),1,fp);
break;
}
}
fclose(fp);
}
else printf("erreur");
}
////////////////////////////////////////////////////////
/*gestionemprunt efface(gestionemprunt *ge)
{
ge->numop=0;
return *ge;
}*/
//////////////////////////////////////////////////////////
/*void supprimer_operation(unsigned numop,char *nomfichier)
{
FILE *fp;
gestionemprunt tmp;
gestionemprunt *ge;
ge->numop=0;
if(fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&tmp,sizeof(gestionemprunt),1,fp);
if(!feof(fp))
{
if(tmp.numop==numop)
{
fseek(fp,-sizeof(tmp),1);
fwrite(&ge,sizeof(tmp),1,fp);
break;
}
else printf("enregistrement non trouvee");
}
fclose(fp);
}
}else printf("erreur!!");
}*/
//////////////////////////////////////////////////////////
void modifier_operation(gestionemprunt ge,unsigned numop,char *nomfichier)
{
FILE *fp;
gestionemprunt tmp;
if(fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&tmp,sizeof(gestionemprunt),1,fp);
if(!feof(fp))
{
if(tmp.numop==numop)
{
fseek(fp,-sizeof(gestionemprunt),1);
fwrite(&ge,sizeof(gestionemprunt),1,fp);
break;
}
}
else printf("enregistrement non trouvee");
}
}
else printf("erreur d'ouverture");
fclose(fp);
}
//////////////////////////////////////////////////////////
void supprimer_operation(unsigned numop,char *nomfichier)
{
gestionemprunt sup;
sup.numop=0;
sup.idlecteur=0;
sup.idlivre=0;
sup.typeop.type=0;
sup.dateop.annee=0;
sup.dateop.jour=0;
sup.dateop.mois=0;
modifier_operation(sup,numop,nomfichier);
}
/////////////////////////////////////////////////////////
void lister_operation(char *nomfichier)
{
FILE *fp;
gestionemprunt ge;
if(fp=fopen(nomfichier,"r+b"))
{
fseek(fp,0,0);
while(!feof(fp))
{
fread(&ge,sizeof(gestionemprunt),1,fp);
if(ge.numop!=0 && !feof(fp))
affiche_operation(ge);
}
fclose(fp);
}
else printf("erreur");
}
///////////////////////////////////////////////////////////
void main()
{
char nomfich[10];
char nomfich1[10];
char nomfich2[10];
lecteur l;
int choix;
unsigned id;
livre lv;
unsigned cote;
gestionemprunt ge;
unsigned numop;
unsigned cot;
unsigned num;
printf("donner le nom du fichier a creer pour lecteur\n ");
scanf("%s",nomfich);
printf("donner le nom du fichier a creer pour livre\n ");
scanf("%s",nomfich1);
printf("donner le nom du fichier a creer pour la gestion\n ");
scanf("%s",nomfich2);
do
{
printf("donner votre choix : \n");
printf("1: pour ajouter ,2 : pour modifier ,3 : pour supprimer ,4 pour lister \n");
printf("5: pour ajouter livre ,6: pour modifier livre,7:pour supprimer livre,8:pour lister livre \n");
printf("9 : pour ajouter operation ,10 :modifier operation 11 : supprimer operation ,12 lister operation \n");
scanf("%d",&choix);
switch(choix)
{
case 1 : saisir__lecteur(&l,nomfich);
ajouter_lecteur(l,nomfich);
break;
case 2: saisir_lecteur(&l);
printf("donner l'id a chercher \n");
scanf("%u",&id);
if ( recherche(nomfich,l.id)==0 || l.id==id )
modifier_lecteur(l,id,nomfich);
else printf("Cle EXISTE");
break;
case 3: printf("donner l'id a chercher \n");
scanf("%u",&id);
supprimer_lecteur(id,nomfich);
while(existe(nomfich2,id)==1)
{num=test1(nomfich2,id);
supprimer_operation(num,nomfich2);
}
break;
case 4:lister_lecteur(nomfich);
break;
case 5 : saisir__livre(&lv,nomfich1);
if ( recherche(nomfich1,lv.cote)==0)
ajouter_livre(lv,nomfich1);
else printf("Cote EXISTANT");
break;
case 6: saisir_livre(&lv);
printf("donner le cote a chercher \n");
scanf("%u",&cote);
if ( recherche(nomfich1,lv.cote)==0 ||cote==lv.cote)
modifier_livre(lv,cote,nomfich1);
else printf("Cote EXISTE");
break;
case 7: printf("donner le cote a chercher \n");
scanf("%u",&cote);
supprimer_livre(cote,nomfich1);
//while(existe(nomfich2,cote)==1)
//{
//num=test1(nomfich2,cote);
//supprimer_operation(num,nomfich2);
//}
break;
case 8:lister_livre(nomfich1);
break;
case 9 :saisir__operation(&ge,nomfich,nomfich1,nomfich2);
ajouter_operation(ge,nomfich2);
break;
case 10 :saisir_operation(&ge,nomfich,nomfich1,nomfich2);
printf("donner le numero d'operation à modifier\n");
scanf("%d",&numop);
cot=test(nomfich2,numop);
if ( existe(nomfich2,ge.numop)==0||numop==ge.numop)
if(cot==ge.idlivre||recherche_livre(nomfich2,ge.idlivre)==0)
modifier_operation(ge,numop,nomfich2);
else printf("Livre deja emprunte");
else printf("Op EXISTE");
break;
case 11 :printf("Donner le num d'operateur a supprimer \n");
scanf("%d",&ge.numop);
supprimer_operation(ge.numop,nomfich2);
break;
case 12:
lister_operation(nomfich2);
break;
}
}while(choix!=13);
}
Conclusion
,mais son defaut qu'il y on a des contraintes qui ne sont pas encore traités , et je cherche une aide . ce code sera termine dans 3 semaines au max
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Sources de la même categorie
Commentaires et avis
|
Comparez les prix Nouvelle version
|