// Structures
typedef struct Note {
float note;
char* matiere;
struct Note* note_suiv;
} T_Note;
typedef T_Note* T_ListeNotes;
typedef struct Etudiant {
int id;
char* prenom;
char* nom;
T_ListeNotes notes;
int nbNotes;
float moyenne;
struct Etudiant* etu_suiv;
} T_Etudiant;
typedef T_Etudiant* T_ListeEtu;
// Prototypes
T_Note *creerNote(float note, char *matiere);
T_Etudiant *creerEtudiant(int idEtu, char *nom, char *prenom);
T_ListeNotes ajouterNote(float note, char *matiere, T_ListeNotes listeNotes);
T_ListeEtu ajouterNoteEtu(float note, char *matiere, int idEtu, T_ListeEtu listeEtu);
T_ListeEtu supprimerNoteEtu(char *matiere, int idEtu, T_ListeEtu listeEtu);
void afficherListeEtu(T_ListeEtu listeEtu);
void afficherClassement(T_ListeEtu listeEtu);
void afficherSousListes(T_ListeEtu listeEtu, char *matiere);
void afficherMenu();
void afficherNotes(T_ListeNotes);
void afficherListeTrier(T_ListeEtu);
void afficherEtu(T_ListeEtu);