From 63e83a960172d473821fc5b790adcf680d687800 Mon Sep 17 00:00:00 2001 From: Lukian LEIZOUR Date: Mon, 27 Nov 2023 16:14:53 +0100 Subject: [PATCH] commit --- conf.c | 46 +++++++++++++++++++---- conf.h | 10 +++-- data/relations | 2 +- fileManager.c | 96 +++++++++++++++++++----------------------------- main.exe | Bin 52411 -> 52993 bytes screenManager.c | 84 ++++++++++++++++++++++++++++++++++-------- 6 files changed, 153 insertions(+), 85 deletions(-) diff --git a/conf.c b/conf.c index 0255477..9913d62 100644 --- a/conf.c +++ b/conf.c @@ -147,7 +147,7 @@ void removeListener(ptListener listenerChain, int id) { } } -void addConfToConfList(ptConfList confList, ptConf conf) { +void addConfToConfList(ptConfList confList, ptConf conf, int grade) { ptConfList px = confList; while (px -> next != NULL) { @@ -156,6 +156,7 @@ void addConfToConfList(ptConfList confList, ptConf conf) { px -> conf = conf; px -> next = (ptConfList) malloc(sizeof(tConfList)); + px -> grade = grade; px -> next -> next = NULL; } @@ -164,13 +165,13 @@ void printConfList(ptConfList confList) { printf("Participation aux conferences : "); while (px -> next != NULL) { - printf("%s ", px -> conf -> title); + printf("%s(%d) ", px -> conf -> title, px -> grade); px = px -> next; } printf("\n"); } -void addListenerToListenerList(ptListenerList listenerList, ptListener listener) { +void addListenerToListenerList(ptListenerList listenerList, ptListener listener, int grade) { ptListenerList px = listenerList; while (px -> next != NULL) { @@ -179,6 +180,7 @@ void addListenerToListenerList(ptListenerList listenerList, ptListener listener) px -> listener = listener; px -> next = (ptListenerList) malloc(sizeof(tListenerList)); + px -> grade = grade; px -> next -> next = NULL; } @@ -187,13 +189,13 @@ void printListenerList(ptListenerList listenerList) { printf("Participants : "); while (px -> next != NULL) { - printf("%s ", px -> listener -> name); + printf("%s(%d) ", px -> listener -> name, px -> grade); px = px -> next; } printf("\n"); } -void participateToConf(ptConf confChain, ptListener listenerChain, int confId, int listenerId) { +void participateToConf(ptConf confChain, ptListener listenerChain, int confId, int listenerId, int grade) { ptConf px = confChain; ptListener py = listenerChain; ptListenerList pz; @@ -218,6 +220,36 @@ void participateToConf(ptConf confChain, ptListener listenerChain, int confId, i return; } - addListenerToListenerList(px -> listeners, py); - addConfToConfList(py -> confs, px); + addListenerToListenerList(px -> listeners, py, grade); + addConfToConfList(py -> confs, px, grade); +} + +int confGradeAvg(ptConf conf) { + ptListenerList px = conf -> listeners; + int total = 0, nb = 0; + + while (px -> next != NULL) { + total += px -> grade; + nb++; + px = px -> next; + } + + if (nb != 0) { + return total / nb; + } else { + return -1; + } + +} + +int confParticipations(ptConf conf) { + ptListenerList px = conf -> listeners; + int nb = 0; + + while (px -> next != NULL) { + nb++; + px = px -> next; + } + + return nb; } \ No newline at end of file diff --git a/conf.h b/conf.h index 7924973..194d026 100644 --- a/conf.h +++ b/conf.h @@ -16,6 +16,7 @@ typedef struct conf { typedef struct confList { struct conf* conf; + int grade; struct confList* next; } tConfList; @@ -31,6 +32,7 @@ typedef struct listener { typedef struct listenerList { struct listener* listener; + int grade; struct listenerList* next; } tListenerList; @@ -47,10 +49,12 @@ int findListenerId(ptListener listenerChain); ptListener newListenerChain(); void addListener(ptListener listenerChain, int id, char name[], int age, int level); void removeListener(ptListener listenerChain, int id); -void addConfToConfList(ptConfList confList, ptConf conf); +void addConfToConfList(ptConfList confList, ptConf conf, int grade); void printConfList(ptConfList confList); -void addListenerToListenerList(ptListenerList listenerList, ptListener listener); +void addListenerToListenerList(ptListenerList listenerList, ptListener listener, int grade); void printListenerList(ptListenerList listenerList); -void participateToConf(ptConf confChain, ptListener listenerChain, int confId, int listenerId); +void participateToConf(ptConf confChain, ptListener listenerChain, int confId, int listenerId, int grade); +int confGradeAvg(ptConf conf); +int confParticipations(ptConf conf); #endif // CONF_H diff --git a/data/relations b/data/relations index f53a0b2..ced4fda 100644 --- a/data/relations +++ b/data/relations @@ -1 +1 @@ -1:3,2,1,6,11,12,13,14,15,16 +1:1;12,2;12,12;0 diff --git a/fileManager.c b/fileManager.c index 58c5296..e6d6088 100644 --- a/fileManager.c +++ b/fileManager.c @@ -4,56 +4,45 @@ #include "conf.h" void readConfs(ptConf confChain) { - FILE *file = fopen("./data/confs", "r"); - char line[100]; - char *tokens[6]; - char *token; - - if (file == NULL) { - printf("ça marche pas."); - return; - } - - while (fgets(line, sizeof(line), file)) { - token = strtok(line, ","); - - int i = 0; + FILE *file = fopen("./data/confs", "r"); + char line[100]; + char *token; - while (token != NULL && i < 6) { - tokens[i] = token; - i ++; - token = strtok(NULL, ","); - } - - addConf(confChain, atoi(tokens[0]), tokens[1], tokens[2], atoi(tokens[3]), atoi(tokens[4]), atoi(tokens[5])); + if (file == NULL) { + printf("ça marche pas."); + return; + } + + while (fgets(line, sizeof(line), file)) { + int id = atoi(strtok(line, ",")); + char *title = strtok(NULL, ","); + char *speaker = strtok(NULL, ","); + int day = atoi(strtok(NULL, ",")); + int month = atoi(strtok(NULL, ",")); + int year = atoi(strtok(NULL, ",")); + + addConf(confChain, id, title, speaker, day, month, year); } fclose(file); } void readListeners(ptListener listenerChain) { - FILE *file = fopen("./data/listeners", "r"); - char line[100]; - char *tokens[4]; - char *token; - - if (file == NULL) { - printf("ça marche pas."); - return; - } - - while (fgets(line, sizeof(line), file)) { - token = strtok(line, ","); - - int i = 0; + FILE *file = fopen("./data/listeners", "r"); + char line[100]; + char *token; - while (token != NULL && i < 4) { - tokens[i] = token; - i ++; - token = strtok(NULL, ","); - } - - addListener(listenerChain, atoi(tokens[0]), tokens[1], atoi(tokens[2]), atoi(tokens[3])); + if (file == NULL) { + printf("ça marche pas."); + return; + } + + while (fgets(line, sizeof(line), file)) { + int id = atoi(strtok(line, ",")); + char *name = strtok(NULL, ","); + int day = atoi(strtok(NULL, ",")); + int month = atoi(strtok(NULL, ",")); + addListener(listenerChain, id, name, day, month); } fclose(file); @@ -62,10 +51,8 @@ void readListeners(ptListener listenerChain) { void readRelations(ptConf confChain, ptListener listenerChain) { FILE *file = fopen("./data/relations", "r"); char line[100]; - char *tokens[50]; - char *token; - int i; - int j; + char *token1; + char *token2; if (file == NULL) { printf("ça marche pas."); @@ -73,22 +60,13 @@ void readRelations(ptConf confChain, ptListener listenerChain) { } while (fgets(line, sizeof(line), file)) { - token = strtok(line, ":"); - printf("%d\n", atoi(token)); + int confId = atoi(strtok(line, ":")); - i = 0; - - while (token != NULL) { - tokens[i] = token; - i ++; - token = strtok(NULL, ","); + while ((token1 = strtok(NULL, ";")) != NULL && (token2 = strtok(NULL, ",")) != NULL) { + participateToConf(confChain, listenerChain, confId, atoi(token1), atoi(token2)); } } - for (j = 1; j < i; j++) { - participateToConf(confChain, listenerChain, atoi(tokens[0]), atoi(tokens[j])); - } - fclose(file); } @@ -124,7 +102,7 @@ void saveRelations(ptConf confChain) { } while (py -> next != NULL) { - fprintf(file, "%d", py -> listener -> id); + fprintf(file, "%d;%d", py -> listener -> id, py -> grade); if (py -> next -> next != NULL) { fprintf(file, ","); } else { diff --git a/main.exe b/main.exe index 3fff02407fe2c130e9175ca134b5fb3d30cf9a71..396e74c9664318f256d20cb3d09bbe9dd096d608 100644 GIT binary patch delta 11194 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 delta 10382 zcma)C3tUuX+CS&ag%L&=6$}Ys6a+KFF%@s9hs!9HDH*6KI-m@Ri$E}x+p42GP8*H5 zqpuaI1zEXX%Fo1%)UPNk)a_zftF7%u#kS)@yR^%?wzkdwpL5P!j<)-K=jWMo=KuVk z%lkaf`=0jy(S+e|t+aF7Iqn{T)sYy&=5v%Nw(dqEh)elOg_SFtO=wy-2kI=_|8)}%A5W)Rz;IVOx2S*G@0 z;ruM-(N4N~_biTcUFGZF>l@-W<~O(mB;*DQ8PYZ305#RlqTM-KoE5(qfo?^0Q* zE>ZY=CUfc%gpQePmu|SwSI3U)#w4yHbG=%hn8Dp zZuSC)J5R2K#BZpv0>Tag^SzG`Pn?mgn0#N1faUH!-+jX&IXRQ9){ls60HGl<)i-_? zdt9F*6wPFx>L1FV2oy26+haDrEDwmQfr$>^-)2aH=PKc!hC75{s9%$CL&G}+-lBkC z&tOdv7UAR!b~YkGXqv&kj;OwAzHH%4hu2%w@CStB>NWco+{`KsiJ8Tyt0yltp2BY# zq}`i!2cK zPGyFuB4O54W{X;!{rD8grKc#ip&*`27R5IdBnJF-LaO*POa9Cue`Cqt-YM*A)E&Z4 zrm$RNuJF!e_NehL;nT_N6JxRSXOlV3d!~c()H~W^H8fcJdj?2Ww78XT-0k(>NM4N% zrhwB4&{LdhWtQUfI%D9Mp;o@0OpfarK}^oouBEg=;;wN*^dUsDiExjfKpsiaAAtBe zqyMi6w?ps$jBqww!chZ-c;}CY2#MvtM>rsp?TQx7aUN^0hx2gLt+9?;x)+hcUik(o z{DS$TN6(z#=O&j= zP)hNh-|zP&;se<@L1|Bz$WjOWTzFyv+c(HO%rPNQgnM1R=xT#US~EsXU|$SM5x5CV zKiE9}_qQYC)_#|@kH;{kTaD|E!P?)+^538@#oTE9C=ii<0$VireC$_JE?C?i0DbRx@Gx|mR*lv!O5SSZi6A4HP}V@#_tJQ@ zq|yPEM(bzFaFYpY0_3rN=DI4xZ2lH%uBlfAXC&5HN8;r?JRn?GH8GnnV7YZ&)y8a2 z26Fi}d<23RDXG(px$I&mhonTLlF^yt+1Eo-oL0Jzl^C=FpcmZjj%c~$6z-G%ltPm_ z{0|mo0^|oKKt7g5cePxN`DE!~iDIPaX_CUgHjMZ33IwNo_x1bz4c0ycR|Ey8?ttKN?fFO4S3^rPyQN$jC=F4I)-7l52FNSB!B8!_yoF$1r4i^uS#VsTrZgGKn2Qy-FqM{1lN^Onj@5w1AuVN4Kf|Du+czR;sHzP7%kTI0 zlwm|KlGFWg&}eOveL7R63U45%GNzdMUC3h94HiYo;t;i)N|f9yFF@%1GPLJ8xI=q> zBVBw#Eqzn9=LZ=W|8@PzuHD$5FMb#5&)$q1`twadf&M&8{TXV{52da|dzJ;-^F`cT zK8_EmJ#|RPT^a22n)m}6dJAVO3kH?dL0nL$t5w_YeeNyTtHHFnq~2wBt9sKrH&d9kZ)vP z#HTsSrHV-&uj;OkiB?Cs2MWoGRkCt2+(`l;k5z({xQ~Sl{^|yUuUy{(?2%z{&U{q8 z4h~TDtC!*A4isgHT7pL}wE*o9l_e^P$_u_%cJs7cbdYmEfCO zrBFl?e~0@gDJ~iPZ;WK!(y&Xq>r%ns-1O6wcu&4NE@$33-8_3`z~Ul zF|U(TvwW6bw5c8v+z-L!2;ls0UW-MLnoUbOPHQ&`0R^rH zdzCIvQFp@*cL^9SYZo8T31s&C81mBXTHnn%^sezU_qQk7P1Ts*pWf(?ie8&(iE&5vW020g}1hnZCC2;9-+cMgsIi-}o2qY|}PgCYh0qyF=MO}F$MZC$(&HwZ zG$l(ss*h#>u9%n2I5X@AM~Uq?4zyP4mWMxXy0>v z6W%KubFJ^^>Ob;WeX8Qi{@OvI%0GyK;W>ivxgL>rjhiK_6vQiJrNiTnCN~7UKtM5T zPl%m4{IBG>7dx)r>DIn=ZR7-uGB7rsqGT+US_hru>dm6?-o{Wd8fhkGu6UM>b!}FpovbGLrh$q9sqYxukvw(aZzThLWMFnW%Z`s_e@-?y zMcDGXPEC{p!0Sbrcd0BfAV@o8X%E$cfh+qX?15<;Ok1Xh38D%}bLNkdqh4}!HVt_y zCLXrj0eMeIe!vKVYzCItFU{jeYOy~G7_Q$b`BLw=7PNk8PSyxfe`wXDe#KAW7Kohd zn%^N3n9F-&-Q0rKq_jGX&|lZe zZi(fcMhBSfDBQEfUJ;dcM07OL4CUHRKZr``2&JOmMqgc5BQ|tNwKBV|M#XIPQBo$6 z#C;{k{Y&~b{9XEXDaO5tz70HwZznz`=uFJ!*8!a%wkOwseQb<7mmh$ALx*wGwbKu> zakp9%9Eb*Wz>7bJmohx;B)TNtdh6I>q+9!u>y#NYs-xjb<4KfAGRe;0+AN5UR>xSq zL1=NbuAA5&F=!8rIR-ZL`EtKS@9OtB*ru#s3%Jai;S!EI*!dZ^2*(`khZ*B=X&pB+ zGxFv+Z{mS1ALw^~-#sEZ;OM?}(CWYOaU8Z=9OCkGB7THH1r(8w-#+&j%rm!|pUB4F zeJiGAMVWb;c~n`Xqry>Xr`x*7x*B`wPwchw7j9J9IQ(O8-)-YLmNIV?tC^S2PR%<% zVPSPet+}$)TvJ->s90H1Q|hRwt}>UJ>#OYMmDN?{_F8)tekaNtXTGPt!r`#javXbR zeon%dsUkNOX93PKob+8j*@A*O8pOhO7Tkh81!u9eo-N4KFmL|FBZX@P=iR`#>}Z2q z$Qh^;?s(gXR~M>57ApVk6Mlc8N?s6@7ehYkNx%O;>92!)0p$Nle>dchJn1+2+f@!u zviU`$coSQ*D48F_8u2-ey|gG<*wMt^UzEhJWZx`GDcQEu@Bfsl5r|v!i9mtT#-$7A zolpDytHR}ZE{(<}bYx4>bJF+>@c&q|-=BwT$d1SpWqV<~b1Y!WLsN_2Ul7i@;}@Do zv@V@Sr5SZO{7sNk7JqR`V&=bvXC#@%z)m`EwBK&HRvHuvjj+=W)L9 z9J{hOZTdOf4t?J5cjFq28{-q!$r==MKhB51=?>=zT}bV4R%tT`mKWHD`xXjo_p#sH zH!~rBzu!;MbMvB2#nD>MjN6GgOZKyjB_nlPAWmd27bdgHB7?ATKijY*NjSWpJ+ow* zPJ6)b*GRJOmly=!ex_eKO)wr{IZI~?g$LMUOJ@p453sXKa|F{t7G0bqhzD6lak+5% zAbX;Cp0M^M_I2^?!qJyl!m>;u@eo_EY>ZHHh;3L_B^*A?{=5t^9$~YW&lbE#*w*D^ zgri5;@#Psp>H9W8QcB-J?ul<&CF6_ z5h~l+ijo|`_a@t0GE#_ri=8bQBTRXVT`9>(TJ;tRfZ=kv(WZMMqqW&l^61t-?6OXLW8X_zfk?R^KN~^*)i@sG`X%qxgX6xXpANUAUrpQgp6xqw( zWH!|s)tX&%FmVvA&+%y}O;pSPoyNF8Y~7Tv;g4)xDCsTsp5jSAY5O^ia8Aqm9`^~| zS{A)~B>Vn}R6d`Lc=AG_8_Ok++E80_+*$W))I%~ zG<>a|)ikZRmhh>%*Jrew?JaxAf$B-NGV=IWW=_{UR9sHqI%jO6$1Zzh6E64 zSc3s&NzN$j1IWupHfZOvnBBlNbn;zDTLk;ODNYzGjgmLAS9hlHd)cL($$A}xzS!-% zlGd1TH)UwRHZ(cLMHSZ`L;|6U5<;Ow(S_kx3N!~>9O)%a|)lyhPR~fc`UmnT`;Aw)h*?G0s9b; zjs3kPowu{$&!*_I(qNgr+!W7}cSf)+EqPGh|12rLhtC4`Ek5&D+@5ryK#ysgu+5^? zS5ic2fx3uk?2$b=lOF`wh2K6yt-cw^xy%3(7}a5Nhzx0XrwPjtYi^Eu=VnJ84RZA0IDZAs;jDmh=yGj9YVe1RPylCuw5yOyKuoj3Ie#WC z72*fd5<~)FTc!uX{sMs{wB|mq8NfT)oR^Zvm;e-FlH($c0#gdNm_HoKsvu*5^kp;e zOCxoC*{~#K{DYU~^Mx$=P_8~(7Oy&#q@RylZ4TRVXrypd&ki3dcNPPwLCR=?kVTGj z09lM%8L`<`+SgV%xOg(m1=i1>gChnJTTQ)V<*L%!jbb?Gad7C*Xc)0#nX=ri^7Xb8 zP+QOtxxWD9s*3bSAaqc8a)?)e>{Ds!up$_9+E4MJfK)`=*P6sP;b*Y zkvSEV1(I21Iv>bp6=yk+0u^UHki#m@4j>K{au5g|2AuLRj_bJ9+&&fQ1CR_6;W2&% zWJi!=v)OBFtExFucKFEj7}7-*k_<$h{0Zz|hf|y)4IT$};YtvT3BhCuArD9#a~R?Q zLPZF1ex=w!sEVD}Za{v019FKqzntRi0e(6-A{gNOKsKt76d3lZMl=D)yDH8cApI(2 zA&@C5t^0w{W{h$#Cw*foAfHNY3y?=uYAwuuB;}4*ffph)8i%a>9*|0vx!(ezBb1sb z6qp|UA+2HT!y|FdHZiV}2Yd}V;lF$ici;D9(kc}$Nw?JT+qb$fN(qQ{QFAs9iwmL`c z%IeC>#bR!FL_MmITWR=R$GWN??Qk>Pm z=|B~g^8Ji-Re?SRWUk8NQ$W_LIQxNMdoI}k6~{3k78U1hAnifK=BTc$);(mewc!6l z9J8c-1Syw8DGNl>1*Ay~PvV~<*_LA?o&SWO2DH#b(PQ&!Rw09dh^nBIfzTm$s;#`H zwxY^W-Y$ka7zYmi<{oBwx>^g}TsFAAhVuo-K_>5JvtCUZvxKO@5!lMBYwT6Xr5JEv zTUlCJS-q0$64{nllbjWb<VU_d!WCxs(os&SCkVmDDYVDHW zwZTBZ=YH!1NvksbHIUINq#sBd$h7oBfWv?n5cPv#IFKxr)>t4VLHDFJ4M>wJ=*337 zlXR(|73{UPlp&R%dR59lXMbsnbC!s~G_H};*b+p@#ct?@KmS)&R@d3Niz?0maN<>= zz6PXALo=#Oj|5^+ac%=b>qMwfvw^5r zxWy7De7&&)(QwIuh{!}8phA_iO>D&RxJ9BE9^_%L0@E5~94CMjsPxVdCy3ZeS5(*H z9k)+q=K^ayp5p8UGd9R1Yu^DmrOI72-aO5a1iW(G%|KSEI2Isd!3oXXd>}QdMA?C) zsyOwx12U`JZvyhX%Jg0!@_{<>3G9JGan3h@ffSbW3koY#1s{+SmF<533G_S!ID{B% zO2zQ>8i7nyX(a$LrOEzet#l_KIzo?_EFkKoc^;69!GYMy@3%YZ&|YG=vtq?gDCo67 zDuY_&!*c`Yxftwj%Yre|qqq`FQohP`E7U$#89D>R0)wFveE}ptJ3OF1ASEiT7&P)K z6(`-qIXU_nGcLe}S()S|n0r(e&_ZzN|7e7??gygISp$$P5JH@0Aboh#2)%5y z0kKmRL+#iB2>-%1E9dcbbkM!6?x%GQ`x next != NULL) { - printf("id : %d\ntitle : %s\nspeaker : %s\n", px -> id, px -> title, px -> speaker); - printf("%d/%d/%d\n",px -> day, px -> month, px -> year); + printf("Id : %d\nTitre : %s\nConférencier : %s\n", px -> id, px -> title, px -> speaker); + printf("Date : %d/%d/%d\n",px -> day, px -> month, px -> year); + printf("Nombre de participants : %d\n", confParticipations(px)); if (px -> listeners -> next != NULL ) { printListenerList(px -> listeners); } + int avg; + if ((avg = confGradeAvg(px) != -1)) { + printf("Moyenne des notes : %d\n", confGradeAvg(px)); + } printf("\n"); px = px -> next; } system("pause"); menuConf(confChain, listenerChain); break; + } case 2: { @@ -148,6 +154,33 @@ void menuConf(ptConf confChain, ptListener listenerChain) { } case 4: + { + int day, month, year, time; + printf("Jour : "); + scanf("%d", &day); + printf("Mois : "); + scanf("%d", &month); + printf("Annee : "); + scanf("%d", &year); + + time = day + 31 * month * 365 * year; + + ptConf px = confChain; + + while(px -> next != NULL) { + if ((px -> day + px -> month * 31 + px -> year * 365) < time) { + ptConf py = px -> next; + removeConf(confChain, px -> id); + px = py; + } else { + px = px -> next; + } + } + + menuConf(confChain, listenerChain); + } + + case 5: menu(confChain, listenerChain); break; @@ -168,7 +201,7 @@ void menuAbo(ptConf confChain, ptListener listenerChain) { switch (choice) { case 1: - system ("cls"); + { ptListener py = listenerChain; while (py -> next != NULL) { @@ -182,6 +215,7 @@ void menuAbo(ptConf confChain, ptListener listenerChain) { system("pause"); menuAbo(confChain, listenerChain); break; + } case 2: { @@ -226,10 +260,10 @@ void menuAbo(ptConf confChain, ptListener listenerChain) { void menu(ptConf confChain, ptListener listenerChain) { - char *options[] = {"1/ Gestion des conferences", "2/ Gestion des abonnes", "3/ Participer a une conference", "4/ Voir la meilleure conference", "5/ Voir la participation a une conference", "6/ Quitter"}; + char *options[] = {"1/ Gestion des conferences", "2/ Gestion des abonnes", "3/ Participer a une conference", "4/ Voir la meilleure conference", "5/ Quitter"}; system("cls"); - drawMenu(options, 6); - goToCoords(0, 14); + drawMenu(options, 5); + goToCoords(0, 13); printf("Que voulez-vous faire ? : "); int choice; scanf("%d", &choice); @@ -246,26 +280,46 @@ void menu(ptConf confChain, ptListener listenerChain) case 3: { - int confId, listenerId; + int confId, listenerId, grade; printf("Entrez l'ID de la conference : "); scanf("%d", &confId); printf("Entrez l'ID du participant : "); scanf("%d", &listenerId); + printf("Entrez la note attribuée par le participant : "); + scanf("%d", &grade); - participateToConf(confChain, listenerChain, confId, listenerId); + participateToConf(confChain, listenerChain, confId, listenerId, grade); saveRelations(confChain); menu(confChain, listenerChain); break; } case 4: + { + ptConf px = confChain; + int max = confGradeAvg(px); + ptConf confMax = px; + + while (px -> next != NULL) { + int tmp = confGradeAvg(px); + if (tmp > max) { + confMax = px; + max = tmp; + } + + px = px -> next; + } + + printf("La conférence la mieux notée est : %s\n\n", confMax -> title); + + system("pause"); + menu(confChain, listenerChain); + break; + } case 5: break; - - case 6: - break; default: break;