begin process at 2012 02 05 04:19:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > GESTION DE BIBLIOTHEQUE

GESTION DE BIBLIOTHEQUE


 Information sur la source

Note :
4 / 10 - par 2 personnes
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Niveau :Débutant Date de création :10/04/2005 Vu / téléchargé :20 055 / 1 762

Auteur : alma3rifa

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 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

Les Membres Club peuvent 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

GESTION DE FICHIER ET DOSSIER + AUTRES par shinji63
Source avec une capture CONVERTISSEUR par smartties
Source avec Zip CREATION D'UN FICHIER DBF (EN C) par Stanel
Source avec Zip STRUCTURE DES FICHIERS DBF par Stanel
Source avec Zip Source avec une capture GESTION DES ENTREES/ SORTIES AVEC CODEBARRE par YvaddavY

Commentaires et avis

Commentaire de fethihouita le 07/12/2009 02:45:09

slt , j'ai bien aimer ce code mais , je n'arrive pas a faire compilation , au niveau fonction suprimer lecteur , je n'arrive pas a avoir le defaut , ce prog va m'aider de faire mini projet sur gestion du club vedio , merci de me repondre brevement
a++++++

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales