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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.