Ajout du Makefile, réorganisation
This commit is contained in:
parent
8baef5005e
commit
df36fba854
5 changed files with 89 additions and 22 deletions
23
Makefile
Normal file
23
Makefile
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
CC=gcc
|
||||||
|
CFLAGS=-Wall
|
||||||
|
SRC=src/
|
||||||
|
EXEC=main
|
||||||
|
CLEAN=clean
|
||||||
|
|
||||||
|
all: $(EXEC) exec
|
||||||
|
|
||||||
|
main: liste.o coureur.o
|
||||||
|
$(CC) $(CFLAGS) -o $@ $^
|
||||||
|
|
||||||
|
liste.o: src/liste.c
|
||||||
|
$(CC) $(CFLAGS) -c $^
|
||||||
|
|
||||||
|
coureur.o: src/coureur.c
|
||||||
|
$(CC) $(CFLAGS) -c $^
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf *.o
|
||||||
|
rm $(EXEC)
|
||||||
|
|
||||||
|
exec:
|
||||||
|
./$(EXEC)
|
17
header/coureur.h
Normal file
17
header/coureur.h
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
typedef struct{ //definition de la structure coureur
|
||||||
|
char * nom;
|
||||||
|
char * prenom;
|
||||||
|
int dossard;
|
||||||
|
char * equipe;
|
||||||
|
int temps;
|
||||||
|
} coureur;
|
||||||
|
|
||||||
|
//Prototype
|
||||||
|
coureur * creerCoureur(char nom[],char prenom[],int dossard, char equipe[],int temps);//Creation d'un coureur en memoire avec recupération de son adrresse avec le parametrage de c'est different champs
|
||||||
|
void ajouterTemps(int leTemps,coureur * leCoureur); //Modifier le temps d'un coureur a partir de son adresse et d'une valeur de cumule
|
||||||
|
void afficherCoureur(coureur * leCoureur); //Afficher le temps d'un coureur stocker en seconde sous forme d'heures, de minutes et de secondes ( a partir de l'adresse de sa structure de définition)
|
27
header/liste.h
Normal file
27
header/liste.h
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#include "coureur.h" //inclure le fichier "coureur.h" qui contien les libs et la structure coureur
|
||||||
|
|
||||||
|
struct element{ //definition de la structure qui element qui sera encaspule/chaine
|
||||||
|
coureur * coureurActuel; //"contient" l'adresse d'une structure coureur
|
||||||
|
struct element * suiv; //"contient" l'adresse d'une autre strucutre element(chainage)
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct{ //definition de la structure liste qui "contient" l'encaspsulation
|
||||||
|
struct element * debut; //"contient" un element en debut *voir init dans liste.c
|
||||||
|
struct element * courant; //"contient"element actuel *voir init dans liste.c
|
||||||
|
struct element * fin; //"contient"element en fin de la liste (NULL) *voir init dans liste.c
|
||||||
|
} liste;
|
||||||
|
|
||||||
|
//Prototype de fonction
|
||||||
|
struct element * initElement(void); //initialise un element en memoir qui encapsule une strucure de coureurau champs vide
|
||||||
|
liste initListe(void); //initialise chaque element de la liste a partir de initElement
|
||||||
|
void ajoutListe(liste * listeActuel,coureur * leCoureur); //ajoute un element contenant un courreur dans le chainage d'une liste
|
||||||
|
void printlist(liste l); //afficher le coureur dans chaque element d'une liste
|
||||||
|
void allerDebut(liste * l); //mettre le poiteur courant sur l'element premier d'une liste
|
||||||
|
void allerFin(liste * l); //mettre le poiteur courant sur l'element de fin d'une liste
|
||||||
|
void avancer(liste * l); //mettre le poiteur courant sur l'element suivant de la liste dans la qu'elle qu'il pointe
|
||||||
|
coureur * coureurCourant(liste * l); //rien a foutre ici
|
||||||
|
void effacerCoureur(liste * listeActuel,coureur * coureurSuppr);//enleve un element d'une liste a partir de l'adresse d'un courreur, sans briser le chainage
|
||||||
|
int tailleListe(liste l); //retourne le nombre d'elements chaine d'une liste
|
||||||
|
coureur * getCoureur(liste l,int nb); //retourne le courreur contenue dans l'element nb d'une liste (on considere un element 0)
|
||||||
|
void invertCoureur(liste * l,int nb); //inverse l'element nb et nb+1 dans une liste (on considere un element 0)
|
||||||
|
void triListe(liste * l,int taille); //trie bulle des element d'une liste a partir du temps contenue dans la structure encapsule dans l'element
|
|
@ -1,4 +1,4 @@
|
||||||
#include "coureur.h" //inclure le fichier "coureur.h" qui contien les libs, structure et prototypes
|
#include "../header/coureur.h" //inclure le fichier "coureur.h" qui contien les libs, structure et prototypes
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -1,13 +1,13 @@
|
||||||
#include "liste.h" //gcc -Wall liste.c coureur.c -o tp
|
#include "../header/liste.h"
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
coureur * c1 = creerCoureur("Paris","Simon",15,"TRAUFORE",50000); //creation coureur
|
coureur * c1 = creerCoureur("Paris","Simon",15,"TRAUFORE",50000);
|
||||||
coureur * c2 = creerCoureur("Bougeont","Yoann",65,"MEILLEUR",99994); //creation coureur
|
coureur * c2 = creerCoureur("Bougeont","Yoann",65,"MEILLEUR",99994);
|
||||||
coureur * c3 = creerCoureur("Barakai","Obama",120,"AMERICA",372); //creation coureur
|
coureur * c3 = creerCoureur("Barakai","Obama",120,"AMERICA",372);
|
||||||
coureur * c4 = creerCoureur("Boujon","Yohan",56,"MAISYEUR",49999); //creation coureur
|
coureur * c4 = creerCoureur("Boujon","Yohan",56,"MAISYEUR",49999);
|
||||||
coureur * c5 = creerCoureur("Runner","Tedi",1,"JUDOOOKA",120); //creation coureur
|
coureur * c5 = creerCoureur("Runner","Tedi",1,"JUDOOOKA",120);
|
||||||
coureur * c6 = creerCoureur("Fatigue","Jean",69,"DODODODO",11554751); //creation coureur
|
coureur * c6 = creerCoureur("Fatigue","Jean",69,"DODODODO",11554751);
|
||||||
printf(" -- COUREUR -- \n");
|
printf(" -- COUREUR -- \n");
|
||||||
afficherCoureur(c1); //Afficher les champs de la structure coureur c1
|
afficherCoureur(c1); //Afficher les champs de la structure coureur c1
|
||||||
ajouterTemps(50,c1); //Ajoutee 50 seconde dans le champ temp de c1
|
ajouterTemps(50,c1); //Ajoutee 50 seconde dans le champ temp de c1
|
||||||
|
@ -197,24 +197,24 @@ void invertCoureur(liste * l,int nb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void triListe(liste * l,int taille)
|
void triListe(liste * l,int taille)
|
||||||
|
{
|
||||||
|
bool tabOrdered = true;
|
||||||
|
for(int i=taille-1;i>1;i--) //pour i allant du nombre d'element dans la liste a 2 step -1
|
||||||
{
|
{
|
||||||
bool tabOrdered = true;
|
for(int j=0;j<=i-1;j++) //pour j allant de 0 a i-1 step 1
|
||||||
for(int i=taille-1;i>1;i--) //pour i allant du nombre d'element dans la liste a 2 step -1
|
|
||||||
{
|
{
|
||||||
for(int j=0;j<=i-1;j++) //pour j allant de 0 a i-1 step 1
|
if(getCoureur(*l,j+1)->temps < getCoureur(*l,j)->temps)//si leCourreur taille -i a un temps < au coureur taille-i+1
|
||||||
{
|
{
|
||||||
if(getCoureur(*l,j+1)->temps < getCoureur(*l,j)->temps)//si leCourreur taille -i a un temps < au coureur taille-i+1
|
invertCoureur(l,j); //inverser les courreurs
|
||||||
{
|
tabOrdered = false;
|
||||||
invertCoureur(l,j); //inverser les courreurs
|
|
||||||
tabOrdered = false;
|
|
||||||
}
|
|
||||||
//printlist(*l);
|
|
||||||
}
|
|
||||||
if(tabOrdered)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
//printlist(*l);
|
||||||
|
}
|
||||||
|
if(tabOrdered)
|
||||||
|
{
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue