Gestionnaire de bibliotheque

Contenu du snippet

C'est un programme qui à pour but de gérer les bouquins dans une bibliothèque
dans ce programme, il y a une petite particularité que je voudrais signaler : c'est que le nombre de bouquin n'augmente qu'après confirmation de l'utilisateur

Source / Exemple :


/*
  Name: bilblio gestionner progect 
  Copyright: all right reserved (°c)2009 by Anon_inc.
  Author: anass hajji
  Date: 13/01/10 23:37
  Description: devoir de gestion de bibliothèque

  • /
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <dos.h> #include <string.h> typedef struct { int jour; int mois; int annee; }date; typedef struct bib { int isbn; char titre[81]; char auteur[81]; char editeur[81]; float prix; date day; }bib; int recherche(bib t[],int n,int x); void cadre(int dc,int fc,int dl,int fl,int c) { int i; textcolor(c); gotoxy(dc,dl); cprintf("É"); gotoxy(dc,fl); cprintf("È"); gotoxy(fc,dl); cprintf("»"); gotoxy(fc,fl); cprintf("&#188;"); for(i=dl+1;i<fl;i++) { gotoxy(dc,i); cprintf("º"); gotoxy(fc,i); cprintf("º"); } for(i=dc+1;i<fc;i++) { gotoxy(i,dl); cprintf("Í"); gotoxy(i,fl); cprintf("Í"); } } void menu(); void remplissage(bib t[],int* n) { int j;float x; int i1; do { clrscr(); printf("bouquin numero %d",*n); getch(); clrscr(); cadre(5,75,3,36,2); gotoxy(21,20);puts("ISBN :"); gotoxy(21,22);puts("TITRE :"); gotoxy(21,24);puts("AUTEUR :"); gotoxy(21,26);puts("EDITEUR :"); gotoxy(21,28);puts("PRIX :"); gotoxy(21,30);puts("DATE EDITION:"); do{gotoxy(34,20);clreol();scanf("%d",&t[*n].isbn);}while(recherche(t,*n,t[*n].isbn)!=0); do{gotoxy(34,22);clreol();scanf("%s",t[*n].titre);}while(strlen(t[*n].titre)>20);fflush(stdin); do{gotoxy(34,24);clreol();scanf("%s",t[*n].auteur);}while(strlen(t[*n].auteur)>20);fflush(stdin); do{gotoxy(34,26);clreol();scanf("%s",t[*n].editeur);}while(strlen(t[*n].editeur)>20);fflush(stdin); gotoxy(34,28);scanf("%f",&x);t[*n].prix=x; do{gotoxy(34,30);clreol();scanf("%d%d%d",&t[*n].day.jour,&t[*n].day.mois,&t[*n].day.annee);}while(t[*n].day.jour<=0||t[*n].day.jour>31||t[*n].day.mois<=0||t[*n].day.mois>12); gotoxy(34,31);printf("continuer(1/0)?"); gotoxy(48,31);scanf("%d",&j);
  • n+=1;
}while(j!=0||*n>100);//i&#8225;i,on suppose que notre gestionnaire ne peut supporter plus que 100 bouquins menu(); }//fin de gestion de remplissage void tri_auteur(bib t[],int n) { int i,j; bib x; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(strcmp(t[i].auteur,t[j].auteur)>0) { x=t[i]; t[i]=t[j]; t[j]=x; } } } } void tri_annee(bib t[],int n) { int i,j; bib x; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(t[i].day.annee>t[j].day.annee||t[i].day.annee%100!=0&&t[i].day.annee%400==100&&t[j].day.annee%100==0&&t[j].day.annee%400!=100)//on a ajouté au controle de l'annee le fait que si la premiere annee est ou non bisextille { x=t[i]; t[i]=t[j]; t[j]=x; if(t[i].day.mois<t[j].day.mois) { x=t[i]; t[i]=t[j]; t[j]=x; } } } } } void aff1(bib t[],int *n) { int i; clrscr(); tri_auteur(t,*n); for(i=0;i<=*n;i++) { gotoxy(21,20);puts("ISBN :"); gotoxy(21,22);puts("TITRE :"); gotoxy(21,24);puts("AUTEUR :"); gotoxy(21,26);puts("EDITEUR :"); gotoxy(21,28);puts("PRIX :"); gotoxy(21,30);puts("DATE D'EDITION:"); gotoxy(34,20);printf("%d",t[i].isbn); gotoxy(34,22);puts(t[i].titre); gotoxy(34,24);puts(t[i].auteur); gotoxy(34,26);puts(t[i].editeur); gotoxy(34,28);printf("%f",t[i].prix); gotoxy(34,30);printf("%d/%d/%d",t[i].day.jour,t[i].day.mois,t[i].day.annee); getch(); } printf ("retour au menu principale dans 3sec!!"); delay(3000); } void aff2(bib t[],int *n) { int i; clrscr(); tri_annee(t,*n); for(i=0;i<*n;i++) { gotoxy(21,20);puts("ISBN :"); gotoxy(21,22);puts("TITRE :"); gotoxy(21,24);puts("AUTEUR :"); gotoxy(21,26);puts("EDITEUR :"); gotoxy(21,28);puts("PRIX :"); gotoxy(21,30);puts("DATE D'EDITION:"); gotoxy(34,20);printf("%d",t[i].isbn); gotoxy(34,22);puts(t[i].titre); gotoxy(34,24);puts(t[i].auteur); gotoxy(34,26);puts(t[i].editeur); gotoxy(34,28);printf("%f",t[i].prix); gotoxy(34,30);printf("%d/%d/%d",t[i].day.jour,t[i].day.mois,t[i].day.annee); getch(); } printf("retour au menu principale dans 3sec!"); delay(3000); } int recherche2(bib t[],int n,int x); int recherche(bib t[],int n,int x) { int i,j,find=0; for(i=0;i<n;i++) { if(t[i].isbn==x){find=1;break;} } return find; } int recherche2(bib t[],int n,int x) { int i,j,find=0; for(i=0;i<n;i++) { if(t[i].isbn==x){find=i;break;} } return find; } void add(bib t[],int *n) { remplissage(t,n); menu(); } void sup(bib t[],int *n,int num) { int i; int find; clrscr(); if(*n==0){clrscr();printf ("rien &#8230; supprimer");} else { clrscr(); find=recherche2(t,*n,num); if(find==0) {clrscr();printf("element introuvable...impossible de supprimer");} else { for(i=find;i<*n;i++) t[i]=t[i+1];
  • n=*n-1;
printf("&#8218;l&#8218;ment supprim&#8218; avec succŠs"); } } } void modif(bib t[],int n,int x) { int i,found;float price; found=recherche(t,n,x); clrscr(); if(found==0){clrscr();system("PAUSE");} else { gotoxy(40,33);puts("entrer votre prix:"); gotoxy(58,33);scanf("%f",&price); t[found].prix=price; } } void menu() { //declaration des variables necessaires au traitement bib t[100]; int i; int x; int isbn1; int choix,CC; int r;//recherche de l'isbn en cas de modification du prix d'un bouquin char menu2[2][81]={"1-Par auteur","2-Par annee"}; char men[5][81]={"1-Remplissage.","2-Affichage.","3-Tri(par auteur/par annee).","4-Recherche.","5-Mises à jour"}; char menu3[2][81]={"1-Par auteur.","2-Par date."}; char menu4[3][81]={"1-Ajout bouquin.","2-Suppression bouquin.","3-modification prix."}; int leprix; int C1,C2,C3; int n;n=0; //debut de traitement clrscr(); cadre(5,75,3,36,1);//construction du cadre du menu principal-->remarque:la même fct de cadre sera appelée +rs fois for(i=0;i<5;i++) {gotoxy(i+10,4*i+10);puts(men[i]);} gotoxy(40,33);printf ("entrer votre choix:"); gotoxy(59,33);scanf("%d",&choix); switch(choix) { case 1:clrscr(); cadre(5,75,3,36,1); gotoxy(21,20); remplissage(t,&n); menu(); break; case 2:clrscr(); cadre(5,75,3,36,1); for(i=0;i<2;i++) {gotoxy(i+10,4*i+10);puts(menu2[i]);} gotoxy(40,33); puts("entrer votre choix:"); gotoxy(59,33); scanf("%d",&C1); switch(C1) { case 1:aff1(t,&n); menu(); break; case 2:aff2(t,&n); menu(); break; } break; case 3:clrscr(); cadre(5,75,3,36,1); for(i=0;i<2;i++) {gotoxy(i+10,4*i+10);puts(menu3[i]);} gotoxy(40,33);puts("entrer votre choix:"); gotoxy(59,33);scanf("%d",&C2); switch(C2) { case 1:tri_auteur(t,n); menu(); break; case 2:tri_annee(t,n); menu(); break; } break; case 4:clrscr(); gotoxy(40,25);puts("entrer isbn:"); gotoxy(53,25);scanf("%d",&x); CC=recherche2(t,n,x); printf("%d",CC); if(CC==x) printf("bouquin TROUVE"); else if(CC==0)printf("bouquin introuvable!!"); getch(); menu(); break; case 5:clrscr(); cadre(5,75,3,36,1); for(i=0;i<3;i++) {gotoxy(i+10,4*i+10);puts(menu4[i]);} gotoxy(40,33);puts("entrer votre choix:"); scanf("%d",&C3); switch(C3) { case 1:clrscr(); cadre(5,75,3,36,1); add(t,&n); menu(); break; case 2:clrscr(); cadre(5,75,3,36,1); clrscr(); gotoxy(30,25); printf("entrer l'isbn:"); gotoxy(44,25);scanf("%d",&isbn1); sup(t,&n,isbn1); menu(); break; case 3:clrscr(); cadre(5,75,3,36,1); clrscr(); gotoxy(31,25); printf("entrer le prix:"); gotoxy(44,25);scanf("%d",&leprix); clrscr(); gotoxy(31,25); puts("entrer isbn:"); gotoxy(44,25);scanf("%d",&isbn1); r=recherche(t,n,isbn1); if(r){ modif(t,n,leprix); printf("prix modifié avec succes"); getch(); } else {clrscr(); getch();} menu(); } getch(); menu(); break; } } void main() { clrscr(); menu(); getch(); }

A voir également