Skip to content

Commit 9e30d14

Browse files
committed
rendu
1 parent 17ad799 commit 9e30d14

10 files changed

+221
-17
lines changed

Readme.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Awaleh Abdillahi
2+
Maxime Dubois
3+
4+
Liste des fichiers :
5+
Main : fichier main.
6+
Menu : Ce fichier permet d'afficher le menu du projet.
7+
TypGraphe : ce fichier permet de gerer les graphes(creation,lecture,enregistrement,insertion d'arr�te, insertion d'un sommet,suppression d'arr�te, suppression d'un sommet etc ...).
8+
TypVoisin : ce fichier contient tout les fonctions permettant de gerer les voisins.
9+
Makefile : Notre fichier Makefile.
10+
11+
12+
Make all : cette commande permet de lancer le projet.

TypGraphe.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ static TypVoisins* _insertionAreteTypGraphe(TypGraphe* self, voisinT from,
4545
return emplaceBackTypVoisins(self->listesAdjacences[from], to, data);
4646
}
4747

48-
TypVoisins* sommetAdjacentTypGraphe(TypGraphe* self, voisinT from, voisinT to)
48+
TypVoisins* getSommetAdjacentTypGraphe(TypGraphe* self, voisinT from, voisinT to)
4949
{
5050
return checkSommetExist(self, from)
5151
? searchForVoisin(self->listesAdjacences[from], to)

TypGraphe.h

Lines changed: 101 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
extern "C"
1414
{
1515
#endif
16-
16+
/**
17+
* La structure TypGraphe
18+
*/
1719
typedef struct
1820
{
1921
bool estOriente : 1;
@@ -23,6 +25,10 @@ typedef struct
2325

2426
typedef int errorcode;
2527

28+
/**
29+
* chaines des caracteres correspondant aux erreurs renvoyées par les fonctions
30+
* ci dessous.
31+
*/
2632
static const char* TYPGRAPH_ERRORS[] = {
2733
"wtf (What a Terrible Failure)",
2834
"impossible d'acceder au sommet",
@@ -34,23 +40,115 @@ static const char* TYPGRAPH_ERRORS[] = {
3440
"erreur lors de la suppression de l'arrete",
3541
"impossible d'ouvrir le fichier"
3642
};
37-
43+
/**
44+
* Crée un nouveau graph.
45+
* @param nbMaxSommets le nombre maximum de sommets
46+
* @param estOriente si le graph est oriente ou pas
47+
* @return un graph malloced.
48+
*/
3849
TypGraphe* newTypGraphe(int nbMaxSommets, bool estOriente);
50+
51+
/**
52+
* Verification d'un acces a une liste d'adjacences
53+
* @param self le graph
54+
* @param i le sommet cible
55+
* @return un boolean
56+
*/
3957
bool checkAccessListesAdjacences(TypGraphe* self, voisinT i);
58+
59+
/**
60+
* Verification de l'existance d'un sommet.
61+
* @param self le graph
62+
* @param i le sommet cible
63+
* @return un boolean
64+
*/
4065
bool checkSommetExist(TypGraphe* self, voisinT i);
4166

67+
/**
68+
* insertion d'un sommet dans un graph
69+
* @param self le graph
70+
* @param numero le sommet cible
71+
* @return une erreur si < 0
72+
*/
4273
errorcode insertionSommetTypGraphe(TypGraphe* self, voisinT numero);
74+
75+
/**
76+
* la fonction qui insert réelement une arrete dans un graph.
77+
* @param self le graph
78+
* @param from le sommet de depart
79+
* @param to le sommet d'arrivé
80+
* @param data la donnée
81+
* @return le nouvel element de la liste chainé ou null si erreur.
82+
*/
4383
static TypVoisins* _insertionAreteTypGraphe(TypGraphe* self, voisinT from,
4484
voisinT to, dataT data);
4585

46-
TypVoisins* sommetAdjacentTypGraphe(TypGraphe* self, voisinT from, voisinT to);
86+
/**
87+
* permet de savoir si le sommet est adjacent a un autre.
88+
* @param self le graph
89+
* @param from le sommet de depart
90+
* @param to le sommet d'arrivé
91+
* @return l'element de la liste chainé qui definit le lien ou null pas de lien
92+
*/
93+
TypVoisins* getSommetAdjacentTypGraphe(TypGraphe* self, voisinT from, voisinT to);
94+
95+
/**
96+
* insertion d'une nouvelle arrete dans un graph.
97+
* @param self le graph
98+
* @param from le sommet de depart
99+
* @param to le sommet d'arrivé
100+
* @param data la donnée
101+
* @return une erreur si < 0
102+
*/
47103
errorcode insertionAreteTypGraphe(TypGraphe* self, voisinT from, voisinT to, dataT data);
104+
105+
/**
106+
* insertion d'un chemin bidirectionnel entre deux sommet.
107+
* @param self le graph
108+
* @param from le sommet de depart
109+
* @param to le sommet d'arrivé
110+
* @param data la donnée
111+
* @return une erreur si < 0
112+
*/
48113
errorcode insertionSymetriqueAreteTypGraphe(TypGraphe* self, voisinT from, voisinT to, dataT data);
114+
115+
/**
116+
* la fonction qui supprime réelement une arrete d'un graph
117+
* @param self le graph
118+
* @param from le sommet de depart
119+
* @param to le sommet d'arrivé
120+
* @return une erreur si < 0
121+
*/
49122
errorcode _suppressionAreteTypGraphe(TypGraphe* self, voisinT from, voisinT to);
123+
124+
/**
125+
* supprime une arrete dans un graph
126+
* @param self le graph
127+
* @param from le sommet de depart
128+
* @param to le sommet d'arrivé
129+
* @return une erreur si < 0
130+
*/
50131
errorcode suppressionAreteTypGraphe(TypGraphe* self, voisinT from, voisinT to);
132+
133+
/**
134+
* supprime un sommet d'un graph
135+
* @param self le graph
136+
* @param sommet le sommet a supprimer
137+
* @return une erreur si < 0
138+
*/
51139
errorcode suppressionSommetTypGraphe(TypGraphe* self, voisinT sommet);
52140

141+
/**
142+
* Sauvegarde le graph dans un format specifié
143+
* @param g le graph
144+
* @param fichier le fichier où sauvegarder
145+
*/
53146
void sauvegardeTypGraphe(TypGraphe* g, FILE* fichier);
147+
148+
/**
149+
* Affichage d'un graph sur la sortie standard
150+
* @param g le graph
151+
*/
54152
void affichageTypGraphe(TypGraphe* g);
55153

56154

TypVoisin.h

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ extern "C"
1616
typedef int voisinT;
1717
typedef int dataT;
1818

19+
/**
20+
* La valeur de la sentinel
21+
*/
1922
static const voisinT SENTINEL_VALUE = -1;
2023

2124
typedef struct _TypVoisins
@@ -26,28 +29,113 @@ typedef struct _TypVoisins
2629
struct _TypVoisins* voisinPrecedent;
2730
} TypVoisins;
2831

32+
/**
33+
* permet de connaitre la valeur de la sentinel
34+
* @return
35+
*/
2936
int getSentinelValue();
3037

38+
/**
39+
* Crée une nouvelle liste malloced (contient une sentinel)
40+
* @return une liste
41+
*/
3142
TypVoisins* newTypVoisins();
43+
44+
/**
45+
* Supprime en chaine la liste chainé.
46+
* @param self la liste
47+
*/
3248
void deepDeleteTypVoisins(TypVoisins* self);
3349

50+
/**
51+
* Crée un element d'une liste chainé malloced.
52+
* @param voisin le voisin
53+
* @param data la donnée
54+
* @return le nouvel element de la liste
55+
*/
3456
TypVoisins* createTypVoisins(voisinT voisin, dataT data);
3557

58+
/**
59+
* peremet de connaitre si l'element est la sentinel.
60+
* @param self un element de la liste
61+
* @return
62+
*/
3663
bool isSentinelTypVoisins(TypVoisins* self);
3764

65+
/**
66+
* part a la recherche de la sentinel dans la liste.
67+
* @param self un element de la liste
68+
* @return la sentinel
69+
*/
3870
TypVoisins* getSentinelTypVoisins(TypVoisins* self);
71+
72+
/**
73+
* part a la recherche du dernier element de la liste.
74+
* @param self un element de la liste
75+
* @return le dernier element de la liste
76+
*/
3977
TypVoisins* getLastTypVoisins(TypVoisins* self);
78+
79+
/**
80+
* part a la recherche du premier element de la liste.
81+
* @param self un element de la liste
82+
* @return le premier element de la liste
83+
*/
4084
TypVoisins* getFirstTypVoisins(TypVoisins* self);
4185

86+
/**
87+
* insertion d'un element entre deux elements
88+
* @param left l'element precedent
89+
* @param incoming le nouvel element
90+
* @param rigth l'element suivant
91+
*/
4292
void insertTypVoisins(TypVoisins* left, TypVoisins* incoming, TypVoisins* rigth);
4393

94+
/**
95+
* ajout en fin d'un nouvel element dans la liste
96+
* @param self la liste
97+
* @param incoming le nouvel element
98+
* @return le nouvel element ou null si erreur
99+
*/
44100
TypVoisins* appendTypVoisins(TypVoisins* self, TypVoisins* incoming);
101+
102+
/**
103+
* ajout au debut d'un nouvel element dans la liste
104+
* @param self la liste
105+
* @param incoming le nouvel element
106+
* @return le nouvel element ou null si erreur
107+
*/
45108
TypVoisins* prependTypVoisins(TypVoisins* self, TypVoisins* incoming);
109+
/**
110+
* Construit sur place un nouvel element d'une liste
111+
* @param self la liste
112+
* @param voisin le voisin
113+
* @param data la donnée
114+
* @return
115+
*/
46116
TypVoisins* emplaceBackTypVoisins(TypVoisins* self, voisinT voisin, dataT data);
47117

118+
/**
119+
* Supprime un element de la liste
120+
* @param self
121+
* @return
122+
*/
48123
bool removeTypVoisins(TypVoisins* self);
49124

125+
/**
126+
* Recherche d'un element suivant son voisin
127+
* @param self la liste
128+
* @param seek la valeur voisin a rechercher
129+
* @return l'element qui a la valeur voisin; NULL sinon
130+
*/
50131
TypVoisins* searchForVoisin(TypVoisins* self, voisinT seek);
132+
133+
/**
134+
* Recherche d'un element suivant son data
135+
* @param self la liste
136+
* @param seek la valeur data a rechercher
137+
* @return l'element qui a la valeur data; NULL sinon
138+
*/
51139
TypVoisins* searchForData(TypVoisins* self, dataT seek);
52140

53141

main.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
int main(int argc, char** argv)
1616
{
1717
MenuPrincipal();
18-
/*FILE* f = fopen("toto.txt", "r");
18+
/*FILE* f = fopen("titi", "r");
19+
1920
TypGraphe* g = parse(f);
21+
2022
printf("%p", g);
2123
affichageTypGraphe(g);
2224
fclose(f);

menu.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,12 @@ void MenuPrincipal()
215215
fclose(f);
216216
if (graph){
217217
printf("\t Message: Chargement du graphe effectuer avec succes\n");
218+
}else{
219+
quitter();
218220
}
219221
}else{
220222
printf("Impossible d'ouvrir le fichier");
223+
quitter();
221224
}
222225

223226

nbproject/Makefile-Debug.mk

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,27 +69,27 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/graph.exe: ${OBJECTFILES}
6969
${OBJECTDIR}/TypGraphe.o: TypGraphe.c
7070
${MKDIR} -p ${OBJECTDIR}
7171
${RM} "$@.d"
72-
$(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypGraphe.o TypGraphe.c
72+
$(COMPILE.c) -g -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypGraphe.o TypGraphe.c
7373

7474
${OBJECTDIR}/TypVoisin.o: TypVoisin.c
7575
${MKDIR} -p ${OBJECTDIR}
7676
${RM} "$@.d"
77-
$(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypVoisin.o TypVoisin.c
77+
$(COMPILE.c) -g -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypVoisin.o TypVoisin.c
7878

7979
${OBJECTDIR}/main.o: main.c
8080
${MKDIR} -p ${OBJECTDIR}
8181
${RM} "$@.d"
82-
$(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.c
82+
$(COMPILE.c) -g -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.c
8383

8484
${OBJECTDIR}/menu.o: menu.c
8585
${MKDIR} -p ${OBJECTDIR}
8686
${RM} "$@.d"
87-
$(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/menu.o menu.c
87+
$(COMPILE.c) -g -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/menu.o menu.c
8888

8989
${OBJECTDIR}/parser.o: parser.c
9090
${MKDIR} -p ${OBJECTDIR}
9191
${RM} "$@.d"
92-
$(COMPILE.c) -g -std=c11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/parser.o parser.c
92+
$(COMPILE.c) -g -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/parser.o parser.c
9393

9494
# Subprojects
9595
.build-subprojects:

nbproject/Makefile-Release.mk

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,27 +69,27 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/graph.exe: ${OBJECTFILES}
6969
${OBJECTDIR}/TypGraphe.o: TypGraphe.c
7070
${MKDIR} -p ${OBJECTDIR}
7171
${RM} "$@.d"
72-
$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypGraphe.o TypGraphe.c
72+
$(COMPILE.c) -O2 -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypGraphe.o TypGraphe.c
7373

7474
${OBJECTDIR}/TypVoisin.o: TypVoisin.c
7575
${MKDIR} -p ${OBJECTDIR}
7676
${RM} "$@.d"
77-
$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypVoisin.o TypVoisin.c
77+
$(COMPILE.c) -O2 -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TypVoisin.o TypVoisin.c
7878

7979
${OBJECTDIR}/main.o: main.c
8080
${MKDIR} -p ${OBJECTDIR}
8181
${RM} "$@.d"
82-
$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.c
82+
$(COMPILE.c) -O2 -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.c
8383

8484
${OBJECTDIR}/menu.o: menu.c
8585
${MKDIR} -p ${OBJECTDIR}
8686
${RM} "$@.d"
87-
$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/menu.o menu.c
87+
$(COMPILE.c) -O2 -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/menu.o menu.c
8888

8989
${OBJECTDIR}/parser.o: parser.c
9090
${MKDIR} -p ${OBJECTDIR}
9191
${RM} "$@.d"
92-
$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/parser.o parser.c
92+
$(COMPILE.c) -O2 -std=c99 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/parser.o parser.c
9393

9494
# Subprojects
9595
.build-subprojects:

nbproject/configurations.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
</toolsSet>
4646
<compileType>
4747
<cTool>
48-
<standard>10</standard>
48+
<standard>3</standard>
4949
</cTool>
5050
</compileType>
5151
<item path="TypGraphe.c" ex="false" tool="0" flavor2="0">
@@ -78,6 +78,7 @@
7878
<compileType>
7979
<cTool>
8080
<developmentMode>5</developmentMode>
81+
<standard>3</standard>
8182
</cTool>
8283
<ccTool>
8384
<developmentMode>5</developmentMode>

0 commit comments

Comments
 (0)