eishtein
Messages postés52Date d'inscriptiondimanche 6 décembre 2009StatutMembreDernière intervention23 janvier 2014
-
14 janv. 2010 à 06:37
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
17 janv. 2010 à 19:20
/*
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
{
gotoxy(34,31);printf("continuer(1/0)?");
gotoxy(48,31);scanf("%d",&j);
*n+=1;
}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(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;
}
}
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;
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];
*n=*n-1;
printf("‚l‚ment supprim‚ 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);