Choubisoft Admin
Messages : 123 Points : 7125 Date de naissance : 02/11/1989 Date d'inscription : 18/02/2010 Age : 35 Localisation : Casablanca Emploi/loisirs : Etudiant
| Sujet: Algorithme de la bibliothèque Dim 23 Mai - 12:28 | |
| Bonjour / Bonsoir chers membres,
Voila le code source de la bibliothèque bon le code est simple, bien commenter, les fonctions sont si simple a comprendre mais ça empêche d'en discuter si vous rencontrez des difficulté ....
juste je doit motionner que si les barre des encadrement des tableaux et tout; s'il s'affiche bizarrement enlever les et remplacer les par leur code ASCII que vous pouvez retrouver ICI
Donc sans tarder voila le code C: - Code:
-
/** Name: Biblio Author : Boukhris Chouaib. Date: 09/05/10 12:25. Derniere Mise a Jour : 23/05/10 19:25 . Description: Manipulation des structures . Licence : Copyleft OpenSource. **/ #include <stdio.h> #include <stdlib.h> #include <string.h>
#define MaxL 50 #define MaxA 100
typedef char titre[50]; typedef titre Livres[MaxL];
typedef struct { char Nom[30]; int Nb_liv; Livres Liv; }Auteur;
typedef Auteur *Bib;
//=================================================================================================================== // Saisie d'un auteurs. void Saisie_aut(Bib biblio, int j){ int i=0;
if(j == -1) printf("\n\tDonnez le nom de l'auteur a ajouter : "); else printf("\n\tDonnez le nom de l'auteur N°%d : ", j+1);
scanf("%s", biblio->Nom); do{ printf("\n\t\tDe combien de livre dispose %s : ", biblio->Nom); scanf("%d", &biblio->Nb_liv); system("clear"); }while(biblio->Nb_liv > MaxL);
while(i < biblio->Nb_liv){ printf("\n\tDonnez le nom du livre N°%d : ", i+1); scanf("%s", biblio->Liv[i]); i++; } }
//=================================================================================================================== // Saisie des auteurs. void Saisie_N_aut(Bib biblio, int N){ int i;
for(i=0; i <N; i++){ Saisie_aut(biblio+i, i); system("clear"); } }
//=================================================================================================================== // Affichage des auteurs. void Affiche_aut(Bib biblio, int N){ int i, j;
for(i=0; i <N; i++){ printf("Aut[%d] : %s", i+1,(biblio+i)->Nom);
printf("\t Dispose de %d \n", (biblio+i)->Nb_liv);
j=0; while(j<(biblio+i)->Nb_liv){ printf("livre N°%d : %s\n", j+1, (biblio+i)->Liv[j]); j++; } } }
//================================================================================================================== // Fonction Trouver_auteur qui renvoie l'indice de l'auteur dans la bibliothèque s'il existe et sinon -1. int Trouv_Aut(Bib biblio, int N, char *Nom_Aut){ int i=0;
while(strcmp((biblio+i)->Nom, Nom_Aut) != 0 && i<N) i++;
// si i= N renvoyer -1 si non la valeur de i. return (i == N)? -1 : i; }
//================================================================================================================== /* Fonction Ajouter_auteur qui renvoie la position de l'auteur s’il existe déjà ou le nombre actuel d'auteurs dans la bibliothèque (après ajout de ce dernier) */ int Ajou_Aut(Bib biblio, int *N, Auteur aut){ int pos;
pos=Trouv_Aut(biblio, *N, aut.Nom);
if(pos == -1){ *(biblio+*N) = aut; *N+=1; return *N; }
return pos; }
//=================================================================================================================== /* Fonction Ajouter_livre qui permet d'ajouter un livre à la liste des livres de l'auteur concerné (Evidement si le livre ne figure pas dans la liste)*/ void Ajout_liv(Bib biblio, int N, char *Nom_Aut){ int pos;
pos=Trouv_Aut(biblio, N, Nom_Aut);
if(pos != -1){ if((biblio+pos)->Nb_liv < MaxL){ printf("Donnez le nom du livre a jouter : "); scanf("%s", (biblio+pos)->Liv[(biblio+pos)->Nb_liv]); (biblio+pos)->Nb_liv +=1; } else printf("Cette auteur a assez de livre ... :D"); } else printf("%s n'existe pas dans la liste :D", Nom_Aut);
}
//================================================================================================================== //fonction Lister qui liste les livres d'un auteur fournit en donnée. void Lister(Bib biblio, int N, char *Nom_Aut){ int pos, i;
pos=Trouv_Aut(biblio, N, Nom_Aut);
if(pos != -1){ i=0; system("clear"); printf("\n\t%s dispose de %d livre : \n",(biblio+pos)->Nom, (biblio+pos)->Nb_liv); while(i < (biblio+pos)->Nb_liv){ printf("Livre[%d] : %s\n", i+1, (biblio+pos)->Liv[i]); i++; } } else printf("%s n'existe pas dans la liste :D", Nom_Aut); }
//==================================================================================================================== // Menu. int menu(void){
int choix;
printf("\n\n╭───────────────────────────────────────────────────────────────────────────╮\n"); printf("│ Menu │\n"); printf("├─────────┬─────────────────────────────────────────────────────────────────┤\n"); printf("│ N° │ Choix │\n"); printf("├─────────┼─────────────────────────────────────────────────────────────────┤\n"); printf("│ 1 │ Saisir une liste d'auteur │\n"); printf("├─────────┼─────────────────────────────────────────────────────────────────┤\n"); printf("│ 2 │ Afficher les auteurs │\n"); printf("├─────────┼─────────────────────────────────────────────────────────────────┤\n"); printf("│ 3 │ Trouver un auteur │\n"); printf("├─────────┼─────────────────────────────────────────────────────────────────┤\n"); printf("│ 4 │ Ajouter un auteur │\n"); printf("├─────────┼─────────────────────────────────────────────────────────────────┤\n"); printf("│ 5 │ Ajouterun livre │\n"); printf("├─────────┼─────────────────────────────────────────────────────────────────┤\n"); printf("│ 6 │ Lister les livres d'un auteur │\n"); printf("├─────────┼─────────────────────────────────────────────────────────────────┤\n"); printf("│ 0 │ ** Qutier le programme ** │\n"); printf("╰─────────┴─────────────────────────────────────────────────────────────────╯"); printf("\n\t\t\tTapez votre choix : ");
scanf("%d",&choix);
return (choix); }
//==================================================================================================================== // Main int main(void){ Bib Biblio= (Bib)malloc(sizeof(Auteur)*MaxA); int Nbr, ch, in=0, val, aux; char c, Nom_rech[30];
while(1){ system("clear"); ch= menu();
switch (ch){
case 0: exit (0); // end of programme.
case 1: system("clear"); do{ printf("\n\n\tDonnez Le nobre d'auteur a saisir : "); scanf("%d", &Nbr); }while(Nbr > MaxA);
Saisie_N_aut(Biblio, Nbr); in++; printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break;
case 2: system("clear"); if(in == 0){ printf("Saisissez d'abord une liste ;)"); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; } else{ Affiche_aut(Biblio, Nbr); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; }
case 3: system("clear"); if(in == 0){ printf("Saisissez d'abord une liste ;)"); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; } else{ printf("\n\n\t Donnez le nom a chercher : "); scanf("%s", Nom_rech); val = Trouv_Aut(Biblio, Nbr, Nom_rech); if(val != -1) printf("\n\tL'indice de l'auteur %s est %d", Nom_rech, val); else printf("\n\n\t %s n'existe pas dans la lise ...", Nom_rech);
printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; }
case 4: system("clear"); if(in == 0){ printf("Saisissez d'abord une liste ;)"); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; } else{ Auteur aut; Saisie_aut(&aut, -1); system("clear"); aux = Nbr; val = Ajou_Aut(Biblio, &Nbr, aut);
if(aux != Nbr) printf("\n\n\tLe nombre actuelle des auteurs est : %d", Nbr); else printf("L'auteur que vous avez saisie se trouve déja dans la case %d", val+1); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break;
}
case 5: system("clear"); if(in == 0){ printf("Saisissez d'abord une liste ;)"); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; } else{ printf("\n\n\t Donnez le nom de l'auteur dont vous voulez ajouter un livre : "); scanf("%s", Nom_rech); Ajout_liv(Biblio, Nbr, Nom_rech); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; }
case 6: system("clear"); if(in == 0){ printf("Saisissez d'abord une liste ;)"); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; } else{ printf("\n\n\t Donnez le nom a chercher : "); scanf("%s", Nom_rech); Lister(Biblio, Nbr, Nom_rech); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; }
default : printf("╭───────────────────────────────────────────────────────────────────────────────╮\n"); printf("│ Erreur...!! │\n"); printf("│ Choix invalide │\n"); printf("╰───────────────────────────────────────────────────────────────────────────────╯\n"); printf("\n\n\t\tAppuyer sur n'importe quel touche pour continuer ..."); while( (c=getchar())!='\n' && c!=EOF ); getchar(); system("clear"); break; } } return 0; }
Cordialement.
Dernière édition par Choubisoft le Mar 25 Mai - 2:46, édité 1 fois | |
|
adib jihad
Messages : 21 Points : 5431 Date d'inscription : 23/02/2010
| Sujet: Re: Algorithme de la bibliothèque Dim 23 Mai - 12:57 | |
| thanks youuuuuuuu choubi | |
|
coucou
Messages : 6 Points : 5325 Date de naissance : 19/01/1993 Date d'inscription : 07/05/2010 Age : 31 Localisation : lll Emploi/loisirs : natation
| Sujet: Re: Algorithme de la bibliothèque Dim 23 Mai - 13:55 | |
| merciiiiiiii[u] | |
|
khalidmaroc1988
Messages : 39 Points : 5506 Date de naissance : 19/11/1988 Date d'inscription : 01/03/2010 Age : 36
| Sujet: Re: Algorithme de la bibliothèque Ven 28 Mai - 17:17 | |
| | |
|
TSDI2008
Messages : 34 Points : 5379 Date de naissance : 12/08/1985 Date d'inscription : 27/08/2010 Age : 39 Localisation : laayoune Emploi/loisirs : etudiant
| Sujet: Re: Algorithme de la bibliothèque Lun 25 Oct - 4:40 | |
| | |
|
Contenu sponsorisé
| Sujet: Re: Algorithme de la bibliothèque | |
| |
|