From 99546ef62e2c5bd78bfec7bc61d70b5d45300624 Mon Sep 17 00:00:00 2001 From: Roxane ROSSETTO Date: Tue, 27 Dec 2022 18:56:32 +0100 Subject: [PATCH] finalisation du premier onglet de la partie 2, avancement du deuxieme onglet avec directives en comm --- part2.c | 113 +++++++++++++++++++++++++++++++++++++++---------------- part2.h | 4 ++ test | Bin 22040 -> 22208 bytes tpart2.c | 2 +- 4 files changed, 85 insertions(+), 34 deletions(-) diff --git a/part2.c b/part2.c index 5e3432e..d512b2b 100644 --- a/part2.c +++ b/part2.c @@ -11,12 +11,10 @@ Choix lirechx (void){//Fonction qui va lire les choix de la ville et du departem Choix chx; printf("Saisir le choix de la ville \n"); - fgets(chx.ville, 20, stdin); - chx.ville[strlen(chx.ville)-1]= '\0'; + scanf( "%s", chx.ville); printf("Saisir le choix du departement d'étude\n"); - fgets(chx.dptmt, 20, stdin); - chx.dptmt[strlen(chx.dptmt)-1]= '\0'; + scanf("%s" , chx.dptmt); chx.dec = 0; chx.valid = 0; @@ -91,6 +89,7 @@ Listechx InsertTC(Listechx list, Choix m)//Insert en tête de la liste } + Listechx InsertC(Listechx list, Choix m)//insert globalement dans liste de choix { if (list == NULL){return InsertTC(list, m);} @@ -149,6 +148,23 @@ Listecand recherchenum (Listecand l, int num){ return recherchenum (l->suivcand, num ); } +Listechx recherchechx (Listechx l, char *nom )//recherche du nom de département dans la liste +{ + if ( l == NULL ){ return l;} + if ( strcmp ( l->chx.dptmt, nom ) == 0) return l; + return recherchechx (l->suivchx, nom ); +} + +Listechx majchoix (Listechx chx, Choix c){//Mise à jour du de la liste choix en modifiant un maillon + + strcpy(chx->chx.ville, c.ville); + strcpy (chx->chx.dptmt, c.dptmt); + chx->chx.dec = c.dec; + chx->chx.valid = c.valid; + + return chx; +} + Listecand InsertT(Listecand list, Candidat c)//Insert en tête de la liste { Mailloncand *c1; @@ -206,25 +222,19 @@ Listecand Chargementlistecandidat(FILE *fe, Listecand lC, int *nbC)// fonction d return lC; } +Listechx suppressionchxT (Listechx l){//Fonction suppression d'un maillon + Listechx tmp; + tmp = l->suivchx; + free(l); + return tmp; +} - -void testchgt(void) -{ - int nbC = 0; - Listecand lC=NULL; - FILE *fe; - printf("avantouverture\n"); - fe=fopen("part2.don", "r"); - if (fe == NULL){printf("pb ouv file"); return;} - printf("apres ouverture\n"); - - lC = Chargementlistecandidat(fe, lC, &nbC); - printf("apres chargement\n"); - - AffListeCandidat(lC); - printf("apres affichage\n"); - - Save(lC, nbC); +Listechx suppressionchx(Listechx l , char *depart){//suppression d'un maillon viale nom de son departement + if ( l == NULL) return l; + if ( strcmp ( depart, l->chx.dptmt ) == 0 ) + return suppressionchxT(l); + l->suivchx = suppressionchx( l->suivchx , depart); + return l; } @@ -268,21 +278,26 @@ void saveChx(Listechx lCh, FILE *fs) void test (void){ - int menu1, menugest1, numet,modifcand; - char nomet[20]; + int menu1, menugest1, numet,modifcand, cont = 0, nbC; + char nomet[20], nomdpt[20], nomville[20]; Candidat cand1; Choix choix1; Listecand lcand, l2cand; + Listechx chx; + FILE *fe; + fe = fopen ("part2.don", "r"); + if ( fe == NULL ){printf("prob ouverture fichier\n"); return;} + lcand = Chargementlistecandidat(fe, lcand, &nbC); printf("Menu :\n");//Premier affichage menu pour choisir si on veut afficher le menu d'un candidat ou toutes les candidatures printf("(1) Gestion Candidature\n(2) Affichage Candidature\n"); scanf("%d", &menu1); printf("%d", menu1); - while (menu1 != 1 && menu1 !=2){// Traitement des erreurs + while (menu1 != 1 && menu1 !=2 ){// Traitement des erreurs printf("Erreur de saisie veuillez refaire votre choix ! \n"); printf("(1) Gestion Candidature\n"); printf("(2) Affichage Candidature\n"); @@ -307,19 +322,51 @@ void test (void){ else if (menugest1 == 2){// - printf("Entrer le numéro de candidat\n"); - scanf("%d",&modifcand ); + printf("Veuillez renseigner votre nom d'étudiant\n"); + scanf("%s", nomet); + l2cand = recherchenom ( lcand, nomet ); + printf("Entrer le nom du departement de l candidature concernée\n"); + scanf("%s", nomdpt); + //PROBLEME SUR L'ASSIGNATION DU RESULTAT DE RECHERCHE... J'ARRIVE PAS + l2cand->cand.lchx = recherchechx(l2cand->cand.lchx, nomdpt); + while ( l2cand->cand.lchx->chx.dptmt == NULL){ + printf("departement inconnu veuillez saisir à nouveau\n"); + scanf("%s", nomdpt); + l2cand->cand.lchx = recherchechx(l2cand->cand.lchx , nomdpt); + } + choix1 = lirechx(); - //FONCTION MISE A JOUR LISTE AVEC AFFICHAGE NOUVELLE LISTE + l2cand->cand.lchx = majchoix(l2cand->cand.lchx, choix1); + AffListeCandidat(l2cand); } - //else if (menugest1 == 3) - //FONCTION SUPPRESSION LISTE AVEC AFFICHAGE NOUVELLE LISTE - //} - //else if (menu1 == 2){ - printf(""); + else if (menugest1 == 3){ + printf("Veuillez renseigner votre nom d'étudiant\n"); + scanf("%s", nomet); + l2cand = recherchenom ( lcand, nomet ); + + printf("Entrer le nom du departement que vous souhaitez supprimer\n"); + scanf ("%s", nomdpt); + l2cand->cand.lchx = suppressionchx(l2cand->cand.lchx , nomdpt ); + printf("Voici votre nouvelle liste de candidature\n"); + AffListeCandidat(l2cand); + } + + } + else if (menu1 == 2){ + printf("Entrer le nom du departement dont vous souhaitez afficher les candidats"); + scanf("%s", nomdpt); + + printf("Entrer le nom de la ville dans laquelle se trouve le departement en question\n"); + scanf("%s", nomville); + + //FAIRE UNE FONCTION DE RECHERCHE RECURSIVE + /*FONCTION AFFICHE (CANDIDATS , VILLE, DEPARTEMENT) + EX : SI L->CHX.VILLE == VILLE && L->CHX.DEPARTEMENT == DEPARTEMENT + ALORS AFFICHE MAILLON CANDIDAT + RETURN AFFICHE CANDIDAT->SUIVANT, VILLE, DEPARTEMENT) } } diff --git a/part2.h b/part2.h index 81020e8..9103b8a 100644 --- a/part2.h +++ b/part2.h @@ -60,7 +60,11 @@ void AffListeCandidat (Listecand l);//affiche complet de la liste de candidats void AffListChoix(Listechx l);//affichage complet de la liste de choix Listecand recherchenom (Listecand l, char *nom );//recherche par un nom dans une liste de candidats Listecand recherchenum (Listecand l, int num);//recherche par le numéro dans une liste de candidats +Listechx recherchechx (Listechx l, char *nom );// recherche par le nom d'un depratement dans une listedederpartement +Listechx majchoix (Listechx chx, Choix c);// mise jour d'un choix Listecand Chargementlistecandidat(FILE *fe, Listecand lC, int *nbC);//chargement du fichier dans une liste de candidats +Listechx suppressionchxT (Listechx l);//Fonction suppression d'un maillon +Listechx suppressionchx(Listechx l , char *depart);//suppression d'un maillon viale nom de son departement Listecand Insert(Listecand list, Candidat c);//insertion en tête d'un maillon de type Candidat Listecand InsertT(Listecand list, Candidat c);//insertion globale d'un maillon de type Candidat void test (void);//fonction globale diff --git a/test b/test index 689c844145641ff2ef706261d3fb653042d9b03a..268402d87527e64385dbbd59214e7767518106f4 100644 GIT binary patch delta 6238 zcma)AeRx#WnZNfYlT2brX7V*j$j4wLMzLX_ga|SulVsoq0!$#m$8E8sFqo;3gh>X` z)ebfdWp+9xcs3HPkH*#Vh=L8IR@Szf79?tS6}zrdgf)DqLlF#!OF-z|-+S&y2J9bu zp6AYc?(h9P?|IL;XHMTPacH;Llap?@3cOXRM5tP_?e-l>{bu#Gf7@TDCNIiXUlwJv zbg?YioTR>*lh^{WENMVeU*BSnia(o_IYWKBkzQ0`;Uc?DdMWd%wfn!atl2QXe&yv; z*>g$<4w$DaEGpenoB=TrPXZTzR@ekeSSFtLz3;BOuc?_GcV#e-lpt zPgo$&hXG2$v#cS(<`&XPMi539sZ`60Fr=le$8$ZdzaL(r;xrJ6?M|@eYFXoOG=@8Y z9ZRsWl*AP0SPV*o)?2^k!vug5p|>0jPXr(`XW~}T%>FZRzL>(Y%*#?X#c-LmI%BZi zd{5$DizEggsuYA4j9EBsQP3uzm@5ctdUUJP&enzAzgG^Okh@NedK&8^rsOO^kRubG zgKs(F>;_S?9*54ww4z!LxnNL^m}V21HP)FWhfS^E%iTkrNyp9Ci zmx)InxwYZwkC{EA*y@N?FMtS(q`QMHa_Esh#C0@Zk4sXu`_(wk8TbN@J5K_LzI>Iu zn?9d|h$2n>2q2yUuxSCjN9>5Z9{~U#jy^;0T~YC1t?79vIQNi^9}yS~o1Pmtk`rqr zJZ=Q|aP)iQM)r}BE;3RwE_8<)a1gMXq9-}ext`?y{*4ilLzTOm%LQpB{Howe68vyn zaE2;4)iAg~m0Lz~FOSRJsmdi9ayP4Ti%D+txZE67?&*nofLFdzOf-po>=)T}Y<1Sm z)P3L?Q+$xUkX2~Cbj66A=W>{Rly$51jd7GGXDds~{z2;Jr~p!rr%_#C4`)AEI(8ZA zA$L^ndL$|YCL(VuA*3egDe&H)1r(L8umW3e;zR)5LqBE@*(S0NYzuB(maB_)k5Lp& zrI=N%K<_emKIYD;51z?^EO(p^*|58wm-{<}A{rrj^^&6Wtk~a#6(UCh76kIH!5aY& zmTyrL^jiae3wYRlC%5z~1KrEfIUL=pqf+!KmY&;qQ@IXAoos#X)8gyQlDD3HmRm3( z6PX?*5225u#XvKI4msQem9^ds*}kWF`c&U5|_jfix?UFd3hweLO+UY-e6k?)i&` zryO`H)dD_pksZ(bz4&wX^u!la*U&zuZv>redH&>7+S3fk#X|XoR{vK#sRLMqyhN(m zzWlnh0qo0$;O{OlOF@}*>LRNu*dQjeR|`7I-#AYJbUR}6!H0lBMdff6mJbF%edJ{+ z7j}=aW4VRFdK$JIL56sud0P7*&^;7LLBgKSMD?4i0Ki+z@uATE8$n(f~UZjHqv zUm8)US&Wpo#q!r_{II7~Gx=p&jLF3Yn@W&89*Sj8)vd>*p4~MmBWS^iW!Qa{$`Cp? zk;jPhO{hjwNhJhRU5|_k0V-H>7=7TJqMZI~9LY6(Acq&BFd!3pmujMywkFzfBF-Zu zyAZPIAEkaJ@4Jtx3q1i4)qYTjz6wUzeUz{1(Nuj&xPYFKp?sK><5WY}sDJ4!H=2Y{ zqi58Kd zAvYNo6S&30u$b2UOP)9hAKT68nK<2s z-H204>)wKSMmAT|Kwtd=O6su${++EUdZ1Ik9q8ZGeQN}A_mJ+xs&2nJ#_t-c7YWyb z=jQ@-Z=FZu3^$EXY-eg+qN7)FA0FgkaW9>A~vu@y1Kis6J#I5?#3k|W)tbcR9( zyD9##`Wo&Xm$IAFkPqr4JE^;B`&Qy__$g>hfplh;xo`Pj*CZ<^{o7o`yG@xnu0o6>zIh}0$ifoW90(Brz^)nXz7{?f1$1C(x zuOx<;8eO5QO>*Qrqkxyy-*!#z`obLj>h$2k;;)k)b4->d zcMRU@@QLCBtbbZ2`)b-9C4QmZ-}Xa$TVR9N-x=_G?Q49iT6|u=u*lmQu+K(bsIi{u zIfIqci$yxFp}AW-{a(L)t=Hb#w$8pfU|;QRZ}xY3*Lhnz(YLR)uWD{x?OWZ|d~NUsd~4TwAF_8e`#OAn`~H3yM_A2)7=OWk-tPCU!#LEoyv?`D2O)&5T7@V3T3<(}m%@z+7UJT>xVuI{aa{;s8Ac z>H+OKr6}#7Cqa8aSAVJ~1E4R09s(6VQd^M;!~gw(9@uvIAOW4_j4EkusI3? zpgT}61E7aM4}so=S{nuZHK+xj!6+891M~^3N)PBO_$qgT{s-v4g5GgKQI4_|Gm53L zkJ(RVl$qW-0t4)o8O3vZK2{X{-zufij_3P$)*%_sg9@%x%Vw!&LV~+1PI@vWk!0<7 zHsLvYlx3ISEcF~?vq9#6!tMomVubw!g(q0T%tC3` z304B~mlJH>%tA4Vd1n>{zk}4>4U>jDX({)G)4gD!6oSwHTkGLSvcY$NzYYAiuhTzZ z@IBzq##DT89sfOp-!9?fcn$(~2pR#zO_WH20_XvL4s&yRtN}0A=llWi$H2comM^U_ z92^3_22Y=LzG>r%wnYFS~lvzV%ktI*PqYhwX9AXO`;hxKzQ8 z>k1nMb$fN0n90^xXT_%r=5pq*{sk_5#2Oo2?bKwkvYP3Lv$@8WyXgjhli*wuQiUP5 z4bm^Loi$S>A)Otm*&xNwVoPf`NSQO(JGCX^6?VS1NW8|ZZkx5LL=9Qb4FYxBOjGb` zXD%sY+I^U8yO1Mn@x%^I5avT79nMY_syHtebeEI9=%e4*S@9cGTjblSC>rH}DW z?Qyn#o-KGy<6gCMP~i25t_fqNvCY@weoP#Qn@Dowi;0~zX2tk*%VT4y~f_CP3Jt#+&#n<{q$SV1sO`+ji$E( z=gAd!vh{Vge>$MqT8P_3Y8$iy{IiBH(UQpbQt;_>NJG4&mCU1DOAwB0`0hz6kRLyI zqRuXw=%TlZ?J||7^5cWIqr-=jOUuT=f`tw-?Ru<{)z>dGuWSC%s+Kn2M)q|5Eh&EQ zsur&w4^-G6>)Y8$Q{G_XqMwR`|Gl_a6vx=*B~z`XbOnp1(+jL2E`!y3@~!%AsMFio zgPy5La)K%^vpt@Qq>b9!Mt0s)VeGB?9_wMV8iHmzx=>@y4L0^sgO!yowXm@UhjCA@ zSHh$$HhXDVvcA}{Tl$yIlhWhaYfH|@iKDwBq)RQ(?IU{ghsXMy_m8Td`Q3gjmpDbJAu7V@>!BDOXmv#oL!XhMTKU9U8p=m&+^dC4qAXjPu ztNvNot6u`c!pDq}n2v44U?YC0nQLmI7z<;Yu}@rMLXCl;&-1V{-0bKP#po#`Uly8a zo8UK=|B~09k3GbBN?U?M;byB=BjV+L)rBmN{A;BrK%6b0FlGvTB?B3L=PHDZrZCwZ?HFt)fw6U@Bq@*P>=^qp}wpX(`~ zH7%f@hvPW|QP(gXXCVJG1SS3@jJY0@G)bjgg#`Lyg7Li#@lL<~NwhmRbTk;0Q!zQN}SX8p@{!f9;?MS zcOc&-|MYW6<0$KL$c(|F*o6}oqZFFkX&SPNeEg0!XP{3nLCxn=c`ex}AE8$UN^D9@ zO#kri+mJca$Akr?(`kNtPh2FtE!d%ArkUh^6~56nurOt#>aVI&|;c9 z22kF0^vvh}BF(*pg2wZpdJMu`x8vL`G79Hos#lEF0p2lK7nHXVDZ|$Sv@6{BYBOpF%TKOZg1E6@Ra3 zQy;4qX90X4|Lf=jxXu(lfcC)$@W_xgsa>})+~<&;&1+@Wn22>NL?=G)$I!McFRe zR208sn(Flmv6u~$4qG21m7S=v zbsDRaAA>8FS@*1B;3%wy*eEytrU zE-}ekeFHuGj$UV=+=5x9QdYkI%4Ij8I`LnU0?9*nMPI}d9$Khx;rP%|(UI}}s5fEI zu;Hfj*VK8n;c-(}X)ioD%oTHg|Jbx^0K?LB8*f18u+`FQFk$#AZ`M^xU_%D3%tyRn z&E2*xM>o~c+2!a}F_8ZtUZ?WSD>OuQ0rqh!rNXm1-< z7t3`3E%MdxalAl&C-pC=eMdJxKJUe7i@g9v{f=(+pu8MnW%Rz}#MpflyNm0bqy7uL z-$VV)yifC%pHlk{uNYu{Na_w6aDe7ssUcEDUE@yv9J4`>?>{)m$0RVBi*;e2Z$l4P zlzGO3LV~+hK^X;OHf-gyy-EUl@}CiK9OeNAtSlE=s|vXfW6^MTs(Y}8E)&}Rfeqz& zf@oXT^6K_D{Y6E}-p7$u_O8G`U>a`mlEbL$=-9kJ!|8XUOmPvH>yk_GvbZ$P@4$?7 zjU#b7UdqOE8NCCJb3B=e(ONPmk#FJKUrxoVT}^R*=i;=Or1dx%#_SJI!?KUX&TNke@ki%+Jo|?npV<9lU4s4MVUkvO~8yV-%jN;Jq0&lCf%a zRb9jK#?_wshQ@jitB2Oixa?XFt6EX-S!L@p@aIKKtLm3{mU-$LghSQh#WhGS@vz^* zbD24jWuCf5+XVd5uFSFoW3o~t@2FMGQP)uKskha7Y;}#xI$x<@Zmag#7FE?%*Hl+E z;EQ2m*n`J#GW1UI{0T)Fi3|PvlZrA8@sEhtkze_>qEzGaeRNAz66c*Ns~TM=V%Y1$Dx5sxAM0e8f0#OD!*;+emVSd9pg**0Cv2^gE5 zreE=uqMU;H*(n97IL-cV!Zw`ZqxjL|bU#OA_Gsf%x{|1HM{}6&;GhWdwc)1;KX09c z_p?Xn=6(%l5R9iFJZFS%;b|C)u>Ukn&l#?peg^7thD%2wkdvf~I}5KN*LW5_L3r*g ze2=EjASyRWx(Um26ZJ-%_Fo~8n;4#fy_x6XwcLbJ<iT z5S5o0-h#dHGNk1tgtuY0;v!7XOPF#PyJs)r4UCHtiVu5N;&Wk)G_Ir1lUPqY0)0MH zxyK}=;;^2NUxGb(#fC?*+k&oAa7W}dy;b`?qW%7$L8xs6sUS(WJ_SY;ERc+_t{_Re z3_A)6r93!YkYviB-v-zOusL8VER<4VMqyIa9r`_i4PRlFGqBG#LtA9+=AtJ26~x;{ zXf5i>GzvG3B@9DBE&P{!Buj;r_V_RZ4zmNMWSd#S`gDmHH}9x@KD#8v}ox^zgei6X$N7mVFuK8ks4G^jx?aw-_tY%tmY}(`;(G?Quke}LVwh2C_MQ~h zXKX6T-r&H_3w|m6h`_ds1G_BvkMWD2S{Da)P4M5~%Ph5rIne5;qqmD1R0=*^U8%CRFInFp}+by=%cPz=0@z9bQY%l zKo{a{i%`!IJAjTKwZDPgY0i8@Sm!5kc0A6K+S`J+iHgtXH0x4pO5avST-oh+?Tx7- z$|z>?D-rdj;LqUeGqtBUu(QaM&fPoV2jL$sMpv&9jG=1(BbsaGL(E8qi{Szn9R5p)LTJuUod@qL}zYEhj{g1;!@ z@vBa4Ab5+&X`SF-6ntqiC-zCfDN}3`{BG*7;LB6fBsf2<0*cB~U`5&T$Og}|tFT-hMwJS=)R7jqYZb+s7&0tG~xifMNbHvje z*ft|KbYE)sCf=emyf{WxMY;hGEpM=`A{SaJjJlPvaHb+{pmzN5YD<_oS=Sr}3umU8 zv>Q&t6R=}udTiwbTtma{VZk#q3naYllHKVBZA&-7Tz9TPTb>r!<}SqlW*v7I8rq9^ ad