Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer une bibliothèque, louer des livres

23 mai 2017 à 21:08:31

Le but de mon programme est de créer un système de gestion de bibliothèque c'est à dire, ajouter des livres, ajouter des membres et je ne sais pas comment faire pour créer un module qui va permettre à un membre de louer un livre en indiquant aussi la date à laquelle il l'a loué.

Voici le code de mon programme :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*--------------------------------------- VARIABLES GLOBALES -----------------------------------------*/
// comme ça, les variables sont accessibles dans toutes les fontions!

void gerer_membres();
void gerer_livres();
void tab();
void showTab();
void save();
void locationLivre();

/*--------------------------------------- DECLARATION DES STRUCTURES -----------------------------------------*/

struct
{
    int ID;
    char nom[50];
    char prenom[50];
    char titre_livre[50];
    char resultat[100];
    int CP_ville;

}ligneTab[15];

/*--------------------------------------- Modules -----------------------------------------*/

void gerer_membres()
{
     char choix;
     int i,j;
do{
        system("cls");
        printf("\nQuelle action voulez-vous faire concernant les membres ?\n\n");
        printf("- A = Ajouter un membre\n");
        //printf("- S = Supprimer un membre\n");
        printf("- R = Revenir au menu principal\n");
        printf("\nVotre choix : ");

        scanf("%c", &choix);
        fflush(stdin);
        printf("\n");

        switch (choix)
        {
        case 'A':

            printf("Combien de membres a rajouter ? ");
            scanf("%d", &i);
            fflush(stdin);
            for (j=0;j<i;j++)
                {
                    printf("\nNom: ");
                    fgets(ligneTab[j].nom,500,stdin);

                    printf("\nPrenom: ");
                    fgets(ligneTab[j].prenom,500,stdin);
                    printf("\nCode Postal de la ville : ");
                    scanf("%d",&ligneTab[j].CP_ville);
                    fflush(stdin);

                }
                break;

        }

    }while( choix != 'R');
}

void gerer_livres()
{
    /*------------Ouverture du fichier des livres ----------------*/

    char choix;
     int j,livre_add;
do{
        system("cls");
        printf("\nQuelle action voulez-vous faire concernant les livres ?\n\n");
        printf("- A = Ajouter un livre\n");
        printf("- R = Revenir au menu principal\n");
        printf("\nVotre choix : ");

        scanf("%c", &choix);
        fflush(stdin);
        printf("\n");

        switch(choix)
        {
    case 'A':
            printf("Combien de livres a rajouter ? ");
            scanf("%d", &livre_add);
            fflush(stdin);

            for (j=0;j<livre_add;j++)
                {
                    
                    printf("Titre du livre: ");
                    gets(ligneTab[j].titre_livre);

                   /* printf("Nom de l auteur : ");
                    fflush(stdin);
                    gets(auteur[j].nom);

                    printf("Prenom de l auteur : ");
                    fflush(stdin);
                    gets(auteur[j].prenom);

                    printf("Maison d edition : ");
                    fflush(stdin);
                    gets(livre[j].maison_edit);*/

                        system("pause");
                        break;
                }
        }

  }while( choix != 'R');


void Tab()
{
    int i;
    for(i=0;i<=15;i++) // va tourner 1 seule fois
    {
        ligneTab[i].ID = i + 1;
        ligneTab[i].CP_ville = 0; // initialise la variable de 0 à 14
        memset(ligneTab[i].nom, 0, 50); // créé une ligne du tableau pour les noms ( membre ) -- memset(*str, int c, size_t n) *str = ou ca va l'écrire, c = la valeur écrite, taille de ce qu'on écrit
        memset(ligneTab[i].prenom, 0, 50); // créé une ligne du tableau pour les prénoms ( membre )
         // créé une ligne du tableau pour les villes ( membre )
        memset(ligneTab[i].titre_livre, 0, 50); // créé une ligne du tableau pour les livres ( livres )
        memset(ligneTab[i].resultat, 0, 100);
    }

    // création du tableau
    strcpy(&ligneTab[0].ID, "1. ");
    strcpy(&ligneTab[1].ID, "2. ");
    strcpy(&ligneTab[2].ID, "3. ");
    strcpy(&ligneTab[3].ID, "4. ");
    strcpy(&ligneTab[4].ID, "5. ");
    strcpy(&ligneTab[5].ID, "6. ");
    strcpy(&ligneTab[6].ID, "7. ");
    strcpy(&ligneTab[7].ID, "8. ");
    strcpy(&ligneTab[8].ID, "9. ");
    strcpy(&ligneTab[9].ID, "10. ");
    strcpy(&ligneTab[10].ID,"11. ");
    strcpy(&ligneTab[11].ID,"12. ");
    strcpy(&ligneTab[12].ID,"13. ");
    strcpy(&ligneTab[13].ID,"14. ");
    strcpy(&ligneTab[14].ID,"15. ");

}

void showTab()
{
    int i;
    for(i=0; i<15; i++)
    {
        if(ligneTab[i].nom == 0  )
        {
            printf(" AH...Pas de nom -"); // Cela met /
        }

        else
        {
            printf("Test %s -",ligneTab[i].nom); // Sinon, affiche les noms
        }
    }
printf("\n");
    for(i=0; i<15; i++)
    {
        if(ligneTab[i].prenom != 0)
        {
            printf(" %s -",ligneTab[i].prenom); // Sinon, affiche les prenoms
        }

        else
        {
            printf(" Pas de prenom -"); // Cela met /
        }

    }
printf("\n");


    for(i=0; i<15; i++)
    {
        if(ligneTab[i].CP_ville != 0)
        {
            printf(" %d -",ligneTab[i].CP_ville); // Sinon, affiche les codes postales de ville
        }

        else
        {
            printf(" Pas de CP -"); // Cela met /
        }
    }
printf("\n");


    for(i=0; i<15; i++)
    {
        if(ligneTab[i].titre_livre != 0)
        {
            printf(" %s -",ligneTab[i].titre_livre); // Sinon, affiche les noms
        }

        else
        {
            printf(" Pas de titre -"); // Cela met /
        }
    }
printf("\n");
}

void save()
{
    int i;
    FILE *fichier = NULL; //initialisé sur NULL pour être certain qu'il n'y ai pas d'erreur, c'est + sûr
    fichier = fopen("tableau.txt", "w");
    if(fichier != NULL)
    {
        for(i=0;i<15;i++)
        {
            fprintf(fichier,"%s %s %d\n%s  %s",ligneTab[i].nom,ligneTab[i].prenom,ligneTab[i].CP_ville,ligneTab[i].titre_livre,ligneTab[i].resultat);
        }
    }
    fclose(fichier);
}

void lire_Save()
{
    int i;
    FILE *fichier = NULL; //initialisé sur NULL pour être certain qu'il n'y ai pas d'erreur, c'est + sûr
    fichier = fopen("tableau.txt", "r");
    if(fichier != NULL)
    {
        for(i=0;i<15;i++)
        {
            fscanf(fichier,"%s %s %d\n%s ",&ligneTab[i].nom,&ligneTab[i].prenom,&ligneTab[i].CP_ville,&ligneTab[i].titre_livre,&ligneTab[i].resultat);
        }
        fclose(fichier);
    }
}

void locationLivre()
{
    printf("Quel est votre nom de membre ? ");

    printf("Quel livre souhaitez-vous louer ? ");
}

/*--------------------------------------------  MAIN  --------------------------------------------------*/

int main()
{
    Tab(); // pour generer les lignes du tableau
    lire_Save(); // récupère les valeurs du tableau et les remets dedans

    char choix;

 //--------------------------- ACTIONS -----------------------------//

    do
    {
        system("cls");
        printf("\nQuelle action voulez-vous faire ?\n\n");
        printf("- M  = Gerer les membres\n");
        printf("- L  = Gerer les livres\n");
        printf("- T = Afficher tout le tableau\n");
        printf("- S  = Sortir du programme\n\n");
        printf("Votre choix : ");

        scanf("%c", &choix);
        fflush(stdin);
        printf("\n");

         // On ne peut rien declarer dans un switch
        switch(choix)
        {
        case 'M':
            gerer_membres(); //pour ajouter des membres
            system("pause");
            break;

        case 'L':
            gerer_livres(); // pour ajouter des livres
            system("pause");
            break;

        case 'P': //P pour print
            affiche_livres(&livre,&auteur, &compteur_livre);
            system("pause");
            break; */

        case 'T':
            showTab(); // Pour afficher le tableau
            system("pause");
            break;

        case 'E':
            locationLivre(); //Pour louer un livre
            system("pause");
            break;


        }
    } while (choix != 'S');

save();//pour sauvegarder les valeurs du tableau dans un fichier

    return 0;
}



  • Partager sur Facebook
  • Partager sur Twitter