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

Catégorie :Base de données Niveau : Débutant Date de création : 10/04/2005 Vu / téléchargé: 10 754 / 1 132

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
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

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

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.