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("¼");
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);
}while(j!=0||*n>100);//i‡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 … 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];
printf("‚l‚ment supprim‚ avec succs");
}
}
}
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();
}
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.