IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème Listes chainées Structure contenant


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème Listes chainées Structure contenant
    Salut tout le monde;
    un problème de gestion de l'école avec l'utilisation des listes chainnées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <windows.h>
     
    // Structure pour renseignements sur les eleves 
    typedef struct ListeEleves
    {   char Nom[20];
        char Prenom[20];
        char Sexe[1];    
        float Notes[4];
        float Moyenne;
        struct ListeEleves *next;
    }ListeEleves;
    typedef struct ListeEleves *Eleve_l;
     
    // Structure pour renseignements sur les profs 
    typedef struct ListeProfs
    {   char Nom[20];
        char Prenom[20];
        char Module[20];
        char Sexe[1];    
        struct ListeProfs *next;
    }ListeProfs;
    typedef struct ListeProfs *Prof_l;
     
    // Structure pour renseignements sur les classes 
    typedef struct ListeClasses
    {   char Nom[20];
        Eleve_l *ListeEleve;
        Prof_l *ListeProf;
        struct ListeClasses *next;
    }ListeClasses;
    typedef struct ListeClasses *Classe_l;
     
    // Structure pour les renseignements d'une ecole 
    typedef struct Ecoles
    {   
        char R_Sociale[20];
        int Nb_Classes;
        int Nb_Prof;
        int Nb_Eleves;
        Classe_l *ListeClasse;
    }Ecoles;
    typedef struct Ecoles *Ecole;
     
    Eleve_l Creer_Eleve()
    {
        int i=0, Somme=0;
    	Eleve_l E=NULL;
     
    		E=(Eleve_l)malloc(sizeof(ListeEleves));
    		printf("\n\n\n");
            puts("                    ***Les informations d'eleve***");
            puts("==>Nom: ");
    		gets(E->Nom);
    		puts("==>Prenom: ");
    		gets(E->Prenom);
    		puts("==>Sexe (f ou m): ");
    		gets(E->Sexe);
    		for(i=0;i<4;i++)
            {printf("==>Note %d: ", i+1); scanf("%f",&E->Notes[i]); Somme+=Somme;}
            E->Moyenne=Somme/4;
    		E->next=NULL;
     
    	return E;
    }
     
    Prof_l Creer_Prof()
    {
    	Prof_l P=NULL;
     
    		P=(Prof_l)malloc(sizeof(ListeProfs));
    		printf("\n\n\n");
            puts("                    ***Les informations de prof***");
    		puts("==>Nom: ");
    		gets(P->Nom);
    		puts("==>Prenom: ");
    		gets(P->Prenom);
            puts("==>Sexe (f ou m): ");
    		gets(P->Sexe);
            puts("==>Module: "); 
            gets(P->Module);
    		P->next=NULL;
     
    	return P;
    }
     
    Classe_l Creer_Classe()
    {
    	Classe_l C=NULL, nouveau;
     
    		nouveau=(Classe_l)malloc(sizeof(ListeClasses));
    		printf("\n\n\n");
            puts("                    ***Les informations de classe***");
            puts("==>Nom de la Classe: ");
    		gets(nouveau->Nom);
    		*nouveau->ListeEleve=Creer_Eleve();
                    *nouveau->ListeProf=Creer_Prof();
     
     
    //le problème est ici ici ici !!!!!!!
    ...........
    ...........
    }
    le problème est de créer une école contenant des classes des profs et des élèves, (et que les classes contenant les élèves et les profs)
    je suis en 1er jour de manipulation, et je veux que vous m'aidez. C'est urgent!!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    je vois :

    Citation Envoyé par loco info
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //le problème est ici ici ici !!!!!!!
    ...........
    ...........
    et je me dis :

    ou est la question sur le langage C ??????????

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    d'abord, merci pour le passage!
    le broblème de créer une liste pointe sur deux listes (liste classe sur liste des élèves et listes des profs)
    *nouveau->ListeEleve=Creer_eleve(); ça marche pas après la compilation j'ai un problème et le programme doit s'arreter!

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    voila merci pour tous, mais encore des problèmes (c'est la vie hahaha)

    j'ai réorganiser le code, et j'ai créé une fonction qui créer liste des eleves et une autre créer liste des profs.
    aprés l'execution tout ça marche bien mais quand la liste des classe arrive à pointer sur la liste des eleves crées ça bloqué et doit fermer.
    voici le code modifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <windows.h>
     
    // Structure pour renseignements sur les eleves 
    typedef struct ListeEleves
    {   char Nom[20];
        char Prenom[20];
        char Sexe[1];    
        float Notes[4];
        float Moyenne;
        struct ListeEleves *next;
    }ListeEleves;
    typedef struct ListeEleves *Eleve_l;
     
    // Structure pour renseignements sur les profs 
    typedef struct ListeProfs
    {   char Nom[20];
        char Prenom[20];
        char Module[20];
        char Sexe[1];    
        struct ListeProfs *next;
    }ListeProfs;
    typedef struct ListeProfs *Prof_l;
     
    // Structure pour renseignements sur les classes 
    typedef struct ListeClasses
    {   char Nom[20];
        Eleve_l *ListeEleve;
        Prof_l *ListeProf;
        struct ListeClasses *next;
    }ListeClasses;
    typedef struct ListeClasses *Classe_l;
     
    // Structure pour les renseignements d'une ecole 
    typedef struct Ecoles
    {   
        char R_Sociale[20];
        int Nb_Classes;
        int Nb_Prof;
        int Nb_Eleves;
        struct Classe_l *ListeClasse;
    }Ecoles;
    typedef struct Ecoles *Ecole;
     
    Eleve_l Creer_Eleve()
    {
        int rep, i=0, Somme=0;
    	Eleve_l E=NULL, nouveau;
        do
    	{
    		nouveau=(Eleve_l)malloc(sizeof(ListeEleves));
    		printf("\n\n\n");
            puts("                    ***Les informations d'eleve***");
            puts("==>Nom: ");fflush(stdin);
    		gets(nouveau->Nom);
    		puts("==>Prenom: ");fflush(stdin);
    		gets(nouveau->Prenom);
    		puts("==>Sexe (f ou m): ");fflush(stdin);
    		gets(nouveau->Sexe);
    		for(i=0;i<4;i++)
            {printf("==>Note %d: ", i+1); scanf("%f",&nouveau->Notes[i]); Somme+=Somme;}
            nouveau->Moyenne=Somme/4;
    		nouveau->next=E;
    		E=nouveau;
    		printf("Voulez-vous ajouter un autre eleve? (0 sinon)");
    		scanf("%d",&rep);
        }
        while (rep!=0);
    	return E;
    }
     
    Prof_l Creer_Prof()
    {
    	int rep;
        Prof_l P=NULL, nouveau;
        do
    	{
    		nouveau=(Prof_l)malloc(sizeof(ListeProfs));
    		printf("\n\n\n");
            puts("                    ***Les informations de prof***");
    		puts("==>Nom: ");fflush(stdin);
    		gets(nouveau->Nom);
    		puts("==>Prenom: ");fflush(stdin);
    		gets(nouveau->Prenom);
            puts("==>Sexe (f ou m): ");fflush(stdin);
    		gets(nouveau->Sexe);
            puts("==>Module: ");fflush(stdin); 
            gets(nouveau->Module);
    		nouveau->next=P;
    		P=nouveau;
    		printf("Voulez-vous ajouter un autre prof? (0 sinon)");
    		scanf("%d",&rep);
        }
        while (rep!=0);
    	return P;
    }
     
    Classe_l Creer_Classe()
    {
    	Classe_l C=NULL, nouveau;
     
    		nouveau=(Classe_l)malloc(sizeof(ListeClasses));
    		printf("\n\n\n");
            puts("                    ***Les informations de classe***");
            puts("==>Nom de la Classe: ");fflush(stdin);
    		gets(nouveau->Nom);
    		*nouveau->ListeEleve=Creer_Eleve();fflush(stdin);
    		*nouveau->ListeProf=Creer_Prof();        
    		nouveau->next=C;
    		C=nouveau;
     
    	return C;
    }
     
    int main()
    {
    Classe_l BM=NULL;
    BM=Creer_Classe();
     
     
    getchar();
    return 0;
    }

Discussions similaires

  1. problème liste chainée
    Par jonjon83 dans le forum C
    Réponses: 11
    Dernier message: 28/02/2007, 18h58
  2. liste chainée & structure
    Par hunter99 dans le forum C
    Réponses: 8
    Dernier message: 10/12/2006, 16h31
  3. les listes chaineés(structures)
    Par snakemetalgear dans le forum C
    Réponses: 18
    Dernier message: 14/11/2006, 18h09
  4. Problème Liste chainée
    Par skyangel dans le forum C++
    Réponses: 16
    Dernier message: 07/06/2006, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo