|
|
|
|
Salut tout le monde;
un problème de gestion de l'école avec l'utilisation des listes chainnées:
Problème Listes chainées Structure contenant des structures
#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 !!!!!!!
...........
...........
}
Configuration: Windows XP Firefox 2.0.0.3
Le problème de créer une liste de classe et chaque classe a son nom et sa liste des eleves et liste des profs
|
Voila merci pour tous, mais encore des problèmes (c'est la vie hahaha)
#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;
} |