Les Fous du Binaire
Les Fous du Binaire
Les Fous du Binaire
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Imaginez un forum qui vous aide a comprendre vos cours d'informatique vos propose des exercices (solutionner / non solutionner), vos aide a réaliser vos Tp d'informatique...& plein d'autre choses intéressantes Un tel forum est : les Fous du Binaire
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

 

 Algorithme de la bibliothèque

Aller en bas 
5 participants
AuteurMessage
Choubisoft
Admin
Choubisoft


Masculin Messages : 123
Points : 7125
Date de naissance : 02/11/1989
Date d'inscription : 18/02/2010
Age : 35
Localisation : Casablanca
Emploi/loisirs : Etudiant

Algorithme de la bibliothèque Empty
MessageSujet: Algorithme de la bibliothèque   Algorithme de la bibliothèque I_icon_minitimeDim 23 Mai - 12:28

Bonjour / Bonsoir chers membres,

Voila le code source de la bibliothèque Smile bon le code est simple, bien commenter, les fonctions sont si simple a comprendre Smile 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
Revenir en haut Aller en bas
https://fous-du-binaire.1fr1.net
adib jihad

avatar


Messages : 21
Points : 5431
Date d'inscription : 23/02/2010

Algorithme de la bibliothèque Empty
MessageSujet: Re: Algorithme de la bibliothèque   Algorithme de la bibliothèque I_icon_minitimeDim 23 Mai - 12:57

thanks youuuuuuuu choubi Very Happy
Revenir en haut Aller en bas
coucou

coucou


Féminin Messages : 6
Points : 5325
Date de naissance : 19/01/1993
Date d'inscription : 07/05/2010
Age : 31
Localisation : lll
Emploi/loisirs : natation

Algorithme de la bibliothèque Empty
MessageSujet: Re: Algorithme de la bibliothèque   Algorithme de la bibliothèque I_icon_minitimeDim 23 Mai - 13:55

merciiiiiiii[u] Smile
Revenir en haut Aller en bas
khalidmaroc1988

khalidmaroc1988


Masculin Messages : 39
Points : 5506
Date de naissance : 19/11/1988
Date d'inscription : 01/03/2010
Age : 36

Algorithme de la bibliothèque Empty
MessageSujet: Re: Algorithme de la bibliothèque   Algorithme de la bibliothèque I_icon_minitimeVen 28 Mai - 17:17

merci
Revenir en haut Aller en bas
TSDI2008

TSDI2008


Masculin Messages : 34
Points : 5379
Date de naissance : 12/08/1985
Date d'inscription : 27/08/2010
Age : 39
Localisation : laayoune
Emploi/loisirs : etudiant

Algorithme de la bibliothèque Empty
MessageSujet: Re: Algorithme de la bibliothèque   Algorithme de la bibliothèque I_icon_minitimeLun 25 Oct - 4:40

merci M l'Admin
Revenir en haut Aller en bas
http://tsdi2008.skyrock.com
Contenu sponsorisé





Algorithme de la bibliothèque Empty
MessageSujet: Re: Algorithme de la bibliothèque   Algorithme de la bibliothèque I_icon_minitime

Revenir en haut Aller en bas
 
Algorithme de la bibliothèque
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Qu’est-ce qu’un algorithme ?
» Algorithme de l'Annuaire
» Algorithme du dictionnaire
» algorithme de l'employer
» A quoi sert un algorithme ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les Fous du Binaire :: Programmation :: Langage C-
Sauter vers: