Accueil > > > GESTION DE BIBLIOTHEQUE
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
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Forum
ARBRE BINAIREARBRE BINAIRE par pacotheking
Cliquez pour lire la suite par pacotheking
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|