From 4cacef5677ebcc8a0281e03643fea80b890485b1 Mon Sep 17 00:00:00 2001 From: Roxane ROSSETTO Date: Fri, 16 Dec 2022 11:59:34 +0100 Subject: [PATCH] plusieurs fonctions monter dans test part2 --- part2.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++-------- part2.h | 5 ++-- test | Bin 17368 -> 17440 bytes 3 files changed, 71 insertions(+), 13 deletions(-) diff --git a/part2.c b/part2.c index fb0dfc3..3ec5a44 100644 --- a/part2.c +++ b/part2.c @@ -28,11 +28,14 @@ Choix lirechx (void){//Fonction qui va lire les choix de la ville et du departem Candidat lireCandidat(void)//fonction qui lit un candidat sur le clavier { Candidat c; + + printf("Veuillez entrer votre numéro de Candidat"); + scanf("%d%*c", &c.nEtu ); printf("Nom du candidat :\n"); - fgets(c.nom, 20, stdin); + fgets(c.nom, 23, stdin); c.nom[strlen(c.nom)-1]= '\0'; printf("Prénom du candidat :\n"); - fgets(c.prenom, 20, stdin); + fgets(c.prenom, 23, stdin); c.prenom[strlen(c.prenom)-1]= '\0'; printf("Moyenne de maths :\n"); scanf("%f", &c.moymat); @@ -61,6 +64,7 @@ Choix * chargeChoix(Choix *tchoix, TAILLE, nbchx){ void AffC(Candidat c) { + printf("%d", c.nEtu); printf("%s \n %s\n", c.nom, c.prenom); printf("%.2f\t%.2f\t%.2f\t%.2f\n", c.moymat,c.moyfr, c.moyen, c.moyspe); printf("%d\n", c.nbchx); @@ -96,10 +100,16 @@ void AffListeCandidat (Listecand l){ AffListeCandidat(l->suivcand); } -Listecand recherche (Listecand l, char *nom ){ +Listecand recherchenom (Listecand l, char *nom ){ if ( l == NULL ){ return l;} if ( strcmp ( l->cand.nom, nom ) == 0) return l; - return recherche (l->suivcand, nom ); + return recherchenom (l->suivcand, nom ); +} + +Listecand recherchenum (Listecand l, int num){ + if ( l == NULL ){ return l;} + if ( l->cand.nEtu == num ) return l; + return recherchenum (l->suivcand, num ); } Listecand InsertT(Listecand list, Candidat c)//Insert en tête de la liste @@ -121,20 +131,56 @@ Listecand InsertT(Listecand list, Candidat c)//Insert en tête de la liste } -Listecand Insert(Listecand list, Mailloncand * c)//insert globalement +Listecand Insert(Listecand list, Candidat c)//insert globalement { if (list == NULL){return InsertT(list, c);} - if (strcmp(list->departement, m->departement)>0){return InsertT(list, m);} - list->suiv = Insert(list->suiv, m); + if (strcmp(list->cand.nom, c.nom)>0){return InsertT(list, c);} + list->suivcand = Insert(list->suivcand, c); return list; } +void Chargementlistecandidat( Mailloncand *cand, char *nameFile, int *n)// fonction de chargement de la liste des candidats +{ + FILE *f; + Maillon *tmp; + int n = 0, cpt, nbcand; + f = fopen(nameFile, "r"); + if (f == NULL){printf("pb ouv file"); return -1;} + + fscanf(f, "%d", n); + + for ( int j = 0; j < = n; j++ ) + { + + cand = (Mailloncand *)malloc(sizeof(Mailloncand)); + if (cand == NULL){printf("pb malloc");exit;} + + fscanf(f, " %d %s %s %.2f %.2f %.2f %.2f %d ", &cand->cand.nEtu, cand->cand.nom, cand->cand.prenom, &cand->cand.moymat, &cand->cand.moyfr, &cand->cand.moyen, &cand->cand.moyspe, &cpt); + + for (cpt; cpt > 0; cpt--) + { + Maillonchx *chx; + chx = (Maillonchx*)malloc(sizeof(Maillonchx));//création du maillon + if (chx == NULL){printf("pb malloc"); exit;} + lireM(f, chx);//lire le maillon avec la fonction plus haut + chx->ldept = Insert(tmp->lchx, chx);//insert le maillon à sa bonne place + } + tV[i] = v; + i++; + } + return i; + + +} void test (void){ - int menu1, menugest1; + int menu1, menugest1, numet; + Candidat cand1; + Listecand lcand, l2cand; + printf("Menu :\n");//Premier affichage menu pour choisir si on veut afficher le menu d'un candidat ou toutes les candidatures @@ -155,9 +201,20 @@ void test (void){ printf("(1) Ajouter une Candidature\n (2) Modifier une Candidature\n (3) Supprimer une Candidature"); scanf("%d", &menugest1); - if (menugest1 == 1) - //FONCTION INSERTION LISTE AVEC AFFICHAGE NOUVELLE LISTE - //else if (menugest1 == 2) + if (menugest1 == 1){ + printf("Veuillez renseigner votre numéro d'étudiant\n"); + scanf("%d", &numet); + l2cand = recherchenum( lcand, numet); + AffListeCandidat(l2cand); + + + cand1 = lireCandidat(); + lcand = Insert(lcand , cand1); + AffListeCandidat(lcand); + } + + + //else if (menugest1 == 2) //FONCTION MISE A JOUR LISTE AVEC AFFICHAGE NOUVELLE LISTE //else if (menugest1 == 3) //FONCTION SUPPRESSION LISTE AVEC AFFICHAGE NOUVELLE LISTE diff --git a/part2.h b/part2.h index d8d3fd7..dcaa594 100644 --- a/part2.h +++ b/part2.h @@ -11,7 +11,6 @@ typedef struct { - int nEtu;//numéro d'étudiant char ville[20];//ville choisie char dptmt[20];//département choisi int dec;//décision du choix @@ -28,6 +27,7 @@ typedef Maillonchx * Listechx; typedef struct { + int nEtu;//numéro d'étudiant char nom[20];//nom de l'étudiant char prenom[20];//prénom de l'étudiant float moymat;//moyenne en maths @@ -52,7 +52,8 @@ Candidat lireCandidat(void); void AffC(Candidat c); Candidat lireFich1Cand (FILE * fe); void AffListeCandidat (Listecand l); -Listecand recherche (Listecand l, char *nom ); +Listecand recherchenom (Listecand l, char *nom ); +Listecand recherchenum (Listecand l, int num); void test (void); diff --git a/test b/test index 34984078a1b3c3ddb21642226f5160c5cd12fe51..c17c5e192b333df3b7ef7d45c18e60d9ea0073a0 100755 GIT binary patch delta 3306 zcma)9dr(x@8NYX75s17juq$cD1w_!ub3o8SS%hsasi|vp6N9A_3~OLaR!g}y+R-Il zscctLk~5iDJ8id(LvhTcM*6_X)a*nOu*p=+s5O&mV-q{QjikW{kr?gi?>pzROOk(b zXYPLQ-}zqm3|u;(hWpfkA~pQf^2*sy$>k_K?CKjpb3B6Yn%S*c3%+8;pEX+M;sX)r$BY$G48QffGUhU{wRFgK$d@4-kR6bVWJv4mnbRIE_^*vxV6p>M9YS&^QWRx`P>u21qJ*#(d=2{1 zIlbSQ5{9~y&=~uP4_SXvO!a%hC?lTAuu)pUv&J)X7=Z}%V}_Sx*@`37iUWkQcL{`d-Jy6R^!~y+vcaz`wm|vOnD~|fv#YuIm z$nW`>U#0Z3N;n}F|0&LgQ(p}oNv=86Bp4Ku!LKB2D5XMPxf{B1>tz|#S z%*}14(0Cf{K7@u`>ja<{1?*sNWG?o*2Idb^?(4=FJ7{CZM*L#;4wI*JC^H=_rh~BWiPps&nwY)Tw6{t70tt}A-pP7WJ`o$2jNm z6T%mS4{h&kP@mQUduJ6rfr73squ-FS+BIz|vIJJhsf9e#!Hd+CQ}Zz#z%X8R(~NRI zK?{O7Siogq^e1r*$?Pu7!WMGfC9^Vj16l2pdQ#ibz9KW(N1$d+wiSM{E|kIbvYT{YFIty{Y`encs8Bh=n7^DEt73#0t$z-|+gIIR4@MDHs z-dzJU-;HxSCRSmB>*HLHaD9a9$GJYl^)S~Dab38+BrfVvw^(C<-%IgUU=7FxGj?FM zqL$XvX-j&Ls?zYly8gQL`C#sE4qj~VGzVuIHZ=rqd9?mwC)69)Ex%3kHyUS#U$VQb zPdnVD_j~ouM<4a>ad>^*UEVIot{or_pZ?hCqg^{3?OsP?o3FjIy{%g*XfIgtFk9~! zVmBSDSaEKZMNwFL?j>>QL}9wTzVCZGAMt$=s_^vDZoR#;&DV`o)jQ+9eh@SrZ_fvu zUjlXfmvco`lrqpE$XOq9ZioCnXf5cg*EoL&bo)n~_kg~Ao%18A(x{Y7b3O`1FX$D} zGobOvZto1|OF=haL`|S?VOcsrr$GBa-I&G%DC+oQUY^>+-pVVrgeO^Y{xa3h%JXgh z8KicB92!#7e{5+?NpJU^KLbEte!5B8m($JnN(MnMcXm9h)@OZ;0={R5CiU9F5*qi3t{lctJDjMv6 zhW+>R?Uvs~<2zvAfUchZjQy;zJD}@Rl|sde?t+OW5EqceLPdu>4_oI9Ygw9;@CMk2 zX4sykYm+k3=f^P*b@-_T+Y^~lyjsl}&MWzMoSMUuD@xQb+fb1ezep*|AHJ{RAF5@4 z0jsFo1@+O&LiGuDu5w9EC;efBM`RD04D>}xsxk$Hs%2^}E3aCg1bMAMGiBMqHDkceI2g|6o zE&hRN9mtXXt!CH(AeX8I?0eO=^26{+R~9Qfou<(wgJ$e*GnT$QdX9;#M%g*!HbJ?m z?=!W=w!#`GYyY9ypN-O8$u{-Z%-Z|Z;k7l#RCZ&vgMF|%DbBa!F_yiiKA{=+Kvy^0 zw8pit%lmMLw+k<>mFEtvu?#<3yERTtW;g3glgwv)-a!W~&>klOC^;#yi>W#%h(Z7aI%z4?^zGpa1{> delta 2628 zcmZWq4NMbf7`|&kS`=tmrBzrcC<0EXFt8QDwL;y&aNjEUOLCYPLjlhMCMcw#==IiYWe6h25U-zH5uD$=&<+ywCf+ z?|av4+r?kp$@}y8`hEF>S`8=v#xx|AFHG!@V`hIGso_s%m1i?^qHJbvu9@Vkju_Ty zxc1;T7kaMTBZbSQy}iX92$mhK04y&$%9zJ5URfb{uDy&l58#OHNjTyMW3#Y*(=$hqapov)flN}7PjP2sxVa1$o)Y1EjNvjU?r;oO!f^dl ziXyty9tMhV;D^*2mdquAsZye|JEtJ?)& zWOZw)9$lT+3FQBGwVHz5blJ+Xa${L^SqS**^6(@fyL8@UEL;q-9bJB)l=9WhQQ~Ri z<0oTr`Xti)yNToSKZ?bzB?@3*JmBpZz^25_;|r{NK#~n>h&!#AKSz$I+4PhpjFAir z;sAZ_28fhqb{~@@iM;`M0q}OTgubn#lRkPM=NFOSX$f;pdMwa{>a4d7G)BqjX2GP7 z+I0rD^gcoSIrJdR_Dqi#9!b&L^W@z|tU1&ozZgx4UY9_fVx5glHl@3L6??Qe!EvOc zte5Ja$hvcsZT>U3*hz-q_c}-A=e{-SJpk`j0l7PA?ncJ*In~!Oy_@RGncheB#j?)$ zQNIR0R$vbTDBub6n>DgjHFYq%X#ooCr^$(oh(wd7F}5%}?HK-18JR;S3xmwhMjp~) z`f{wHHzjiieYrWu?A5itilsTwR#l4w4p+5!$Fb5Oj=BV2fgSD@wfSS%l_peqFYwiL zXZ)eI1l9ZIIqC0BkQw@RXHz^)~t(eK3%lD>!BF(gUX zAX_0@A>XKJwGf-d61KCNm4E3e#loKACBM!gM9Y3By~czL-teqjwB63mfw{m zgNox;LY6>wK{i9;n?RnN@i-qQ%Vt%nFs!LN6DAtT?8!ihDdKd-AW7Hq=GAIM?k8vGG6Mo1jM&*^`X1LJ&EH3+| zB)vG1WKE1D1YjdsGBcCkk9)eCPUH+GaTNX-X-AY)KztP@H1tUPA9iy1=)vd|&6t{Q zJmwh&se&^}=FTTvHew;~)OWx$m$)_c`{6=!FBy;+&X$&a0 z1~n07Qt_w^gRyiLZzM&fOSOyWryV~(5lib)>yJ`Po|3nMMYv;1-oaGnkaq<2YqFu# z$e)$(*Xg}lQjq5rQh5GjZ$f%pbXDli%kVRi!GDSqw-O z(OZrDGUBirr>$3*{3eE#M+$WldEIK^(@DG4Smcper*WI?5k4mOD!E&fTzOpxwbE+* zQNr7dsxOtAKanDvarTgsVVy7$N%8MCGUg#J@P_ROPb$i^B%>^g)RZkGd&{Z