Commit ed2fb921 authored by Anthony Bocquet's avatar Anthony Bocquet

tout est ok

parent 31b0eef9
......@@ -2,9 +2,11 @@
#include <stdlib.h>
#include "tp3.h"
// mettre des fflush
// libérer la mémoire
//
// améliorer l'affichage
// commenter
// rapporter
int main(){
......
No preview for this file type
......@@ -139,19 +139,6 @@ T_ListeEtu ajouterNoteEtu(float note, char *matiere, int idEtu, T_ListeEtu liste
listeEtu = ajouterEtuListe(e, listeEtu);
return listeEtu;
/*
if(temp->identifiant > idEtu){
if(prec){
prec->suivant = e;
}
e->suivant = temp;
}else{
temp->suivant = e;
}
return e;
*/
}
}
......@@ -216,14 +203,6 @@ T_ListeEtu ajouterNoteEtu(float note, char *matiere, int idEtu, T_ListeEtu liste
/* -------------------------------------------------------------------*/
T_ListeEtu ajouterEtu(int idEtu, char *nom, char *prenom, T_ListeEtu listeEtu){
T_Etudiant* e = creerEtudiant(idEtu, nom, prenom);
if(listeEtu->identifiant != -1) e->suivant = listeEtu;
return e;
}
/* -------------------------------------------------------------------*/
......@@ -249,9 +228,6 @@ void afficherListeEtu(T_ListeEtu listeEtu){
/* -------------------------------------------------------------------*/
float calculMoyenneEtu(T_Etudiant* etu){
int i;
float somme=0;
......@@ -277,78 +253,68 @@ void calculMoyenne(T_ListeEtu liste){
/* -------------------------------------------------------------------*/
T_ListeEtu trierListeEtu(T_ListeEtu liste){
calculMoyenne(liste);
T_ListeEtu trie = malloc(sizeof(T_ListeEtu));
T_ListeEtu max = liste;
T_ListeEtu prec = NULL;
int n = 1;
for(T_ListeEtu temp = liste; temp->suivant != NULL; temp = temp->suivant){
if(max->moyenne < temp->suivant->moyenne){
max = temp->suivant;
prec = temp;
}
n++;
void afficherClassement(T_ListeEtu listeEtu){
//printf("\n------------ Affichage du classement -------------\n");
T_ListeEtu p_aux = listeEtu;
calculMoyenne(listeEtu);
//Rajouter tableau de booléen
if(p_aux == NULL){ //Si la liste est vide On renvoie directement "fin de la liste"
printf("-- Fin de la liste --\n\n");
}
trie = max; // on met max en première position
//suppression du max dans la liste originale et initialisation de max à la première valeur de la liste
if(prec){
prec->suivant = max->suivant;
max = liste;
}else{
liste = liste->suivant;
else {
int nbEtu = 0;
while (p_aux != NULL) { //On compte le nombre d'étudiant présent dans notre liste pour allouer la mémoire en fonction
p_aux = p_aux->suivant;
nbEtu++;
}
for(int i = 0; i < n-1; i++){
for(T_ListeEtu temp = liste; temp->suivant != NULL; temp = temp->suivant){
if(max->moyenne < temp->suivant->moyenne){
max = temp->suivant;
prec = temp;
}
T_ListeEtu *tabEtu = malloc(nbEtu*sizeof(T_ListeEtu)); //Tableau de nos étudiants
p_aux = listeEtu; //On "replace le curseur" au niveau de la tête de la liste
int i,j;
for(i=0; i<nbEtu; i++){ //On remplit le tableau
tabEtu[i] = p_aux;
p_aux = p_aux->suivant;
}
T_ListeEtu temp2 = trie;
while(temp2->suivant != NULL){
temp2 = temp2->suivant;
} //on va se placer à la fin de la listre triée
temp2->suivant = max;
if(prec){
prec->suivant = max->suivant;
max = liste;
}else{
liste = liste->suivant;
for (i=0; i<nbEtu; i++) {
for (j=i; j<nbEtu; j++) {
if(tabEtu[j]->moyenne < tabEtu[i]->moyenne){ //On trie le tableau par ordre décroissant
p_aux= tabEtu[i];
tabEtu[i] = tabEtu[j];
tabEtu[j] = p_aux;
}
}
}
printf("\nClassement des étudiants : \n");
for(i = nbEtu -1 ; i >= 0; i--){
printf("%.2f %s %s\n", tabEtu[i]->moyenne, tabEtu[i]->nom, tabEtu[i]->prenom); //On affiche finalement les éléments du tableau trié
}
printf("-- Fin de la liste --\n");
}
return trie;
}
void afficherClassement(T_ListeEtu liste){
T_ListeEtu temp = trierListeEtu(liste);
afficherListe(temp);
}
/* -------------------------------------------------------------------*/
T_ListeEtu ajouterEtu(int idEtu, char *nom, char *prenom, T_ListeEtu listeEtu){
T_Etudiant* e = creerEtudiant(idEtu, nom, prenom);
if(listeEtu->identifiant != -1) e->suivant = listeEtu;
return e;
}
/* -------------------------------------------------------------------*/
......@@ -361,6 +327,9 @@ void afficherListe(T_ListeEtu listeEtu){
}
}
/* -------------------------------------------------------------------*/
void sousListes(T_ListeEtu listeEtu, char* matiere){
T_ListeEtu current = listeEtu;
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment