#include #include #include #include "part2.h" //##########################TABLEAU POINTEUR##################################################### Choix lirechx (void){//Fonction qui va lire les choix de la ville et du departement demandé par le candidat Choix chx; printf("Saisir le choix de la ville \n"); fgets(chx.ville, 20, stdin); chx.ville[strlen(chx.ville)-1]= '\0'; printf("Saisir le choix du departement d'étude\n"); fgets(chx.dptmt, 20, stdin); chx.dptmt[strlen(chx.dptmt)-1]= '\0'; chx.dec = 0; chx.valid = 0; return chx; } 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, 23, stdin); c.nom[strlen(c.nom)-1]= '\0'; printf("Prénom du candidat :\n"); fgets(c.prenom, 23, stdin); c.prenom[strlen(c.prenom)-1]= '\0'; printf("Moyenne de maths :\n"); scanf("%f", &c.moymat); printf("Moyenne de français :\n"); scanf("%f", &c.moyfr); printf("Moyenne d'anglais :\n"); scanf("%f", &c.moyen); printf("Moyenne de spécialité au choix :\n"); scanf("%f", &c.moyspe); printf("Nombre de choix :\n"); scanf("%d%*c", &c.nbchx); return c; } /* 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); } Candidat lireFich1Cand (FILE * fe){ Candidat cand; fgets(cand.nom, 20, fe); cand.nom[strlen(cand.nom)-1]= '\0'; fgets(cand.prenom, 20, fe); cand.prenom[strlen(cand.prenom)-1]= '\0'; fscanf(fe, "%f", &cand.moymat); fscanf(fe, "%f", &cand.moyfr); fscanf(fe, "%f", &cand.moyen); fscanf(fe, "%f", &cand.moyspe); fscanf(fe, "%d%*c", &cand.nbchx); return cand; } //######################################### LISTES ########################################## void AffListeCandidat (Listecand l){ if ( l == NULL) return; AffC(l->cand); AffListeCandidat(l->suivcand); } Listecand recherchenom (Listecand l, char *nom ){ if ( l == NULL ){ return l;} if ( strcmp ( l->cand.nom, nom ) == 0) return l; 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 { Mailloncand *c1; c1 = (Mailloncand*)malloc(sizeof(Mailloncand)); if (c1 == NULL){printf("pb malloc"); exit;} strcpy(c1->cand.nom, c.nom); strcpy(c1->cand.prenom, c.prenom); c1->cand.moymat = c.moymat; c1->cand.moyfr = c.moyfr; c1->cand.moyen = c.moyen; c1->cand.moyspe = c.moyspe; c1->cand.nbchx = c.nbchx; c1->suivcand = list; return c1; } Listecand Insert(Listecand list, Candidat c)//insert globalement { if (list == NULL){return InsertT(list, c);} 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, 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 printf("(1) Gestion Candidature\n(2) Affichage Candidature\n"); scanf("%d", &menu1); printf("%d", menu1); 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"); printf("(3) Quitter\n"); scanf("%d", &menu1); } if (menu1 == 1){ printf("Menu : \n");//Menu gestion ajout/modification/suppression d'une candidature printf("(1) Ajouter une Candidature\n (2) Modifier une Candidature\n (3) Supprimer une Candidature"); scanf("%d", &menugest1); 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 //} //else if (menu1 == 2){ printf(""); } } //####################################### FILES #################################################