From da798d175361ad41eae45376654f22a314f7aa87 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Thu, 5 Jan 2023 09:34:10 +0100 Subject: [PATCH] gestion des erreurs --- .vscode/settings.json | 4 + SAE.h | 29 +++++- exe | Bin 0 -> 27008 bytes partie_3.c | 26 ++--- structures.c | 221 ++++++++++++++++++++++++++++++++++-------- 5 files changed, 220 insertions(+), 60 deletions(-) create mode 100644 .vscode/settings.json create mode 100755 exe diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1e6db57 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "files.autoSaveDelay": 1000, + "files.autoSave": "afterDelay" +} \ No newline at end of file diff --git a/SAE.h b/SAE.h index bed6c22..b464700 100755 --- a/SAE.h +++ b/SAE.h @@ -45,6 +45,33 @@ void modificationRespDept(VilleIUT *tiut[], int nb); // Partie 3 +// Liste Admission +ListeAdmission listenouvAdm(void); +ListeAdmission insererEnTeteAdm(ListeAdmission la, Admission candidat); +ListeAdmission insererAdm(ListeAdmission la, Admission candidat); +void afficherAdm(ListeAdmission la); +bool videAdm(ListeAdmission la); +ListeAdmission supprimerEnTeteAdm(ListeAdmission la); +ListeAdmission supprimerAdm(ListeAdmission la, Admission candidat); +bool rechercheAdm(ListeAdmission la, Admission candidat); +int TeteAdm(ListeAdmission la); +int longueurAdm(ListeAdmission la); +void afficherCandidatsAdm(Admission candidat); + +// Liste Departement +ListeDepartement listenouvDpt(void); +ListeDepartement insererEnTeteDpt(ListeDepartement ld, Departement dpt); +ListeDepartement insererDpt(ListeDepartement ld, Departement dpt); +ListeDepartement supprimerEnTeteDpt(ListeDepartement ld); +ListeDepartement supprimerDpt(ListeDepartement ld, Departement dpt); +bool rechercheDpt(ListeDepartement ld, Departement dpt); +int TeteDpt(ListeDepartement ld); +bool videDpt(ListeDepartement ld); +void afficherDpt(ListeDepartement ld); +void afficherDepartement(Departement dpt); +int longueurDpt(ListeDepartement ld); + +/* Departement lireDpt(FILE *flot); void afficherDpt(Departement dpt); Admission lireCandidat(FILE *flot); @@ -60,7 +87,7 @@ int modifNoteMinAdmis(); int modifNbAdmisMax(); // Authentification -/* + int ConnexionUtilisateur(char *login, char *mdp); ListeUtilisateurs chargerUtilisateurs(char *ficUtilisateurs, ListeUtilisateurs Utilisateurs); Utilisateur lireUtilisateur(FILE *flot); diff --git a/exe b/exe new file mode 100755 index 0000000000000000000000000000000000000000..23a11fb1762cbdc1c56b2b726f89699b7e3f1e19 GIT binary patch literal 27008 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.num); fgets(candidat.nom, 22, flot); candidat.nom[strlen(candidat.nom) - 1] = '\0'; fgets(candidat.prenom, 22, flot); @@ -32,7 +31,7 @@ Admission lireCandidat(FILE *flot) { if(strcmp(dpt.departement, dptResAdmi) == 0) { - candidat.ldept = insererDpt(candidat, dpt); + candidat.ldept = inserer(candidat, dpt); } dpt = lireDpt(flot); i++; @@ -54,18 +53,17 @@ void afficherCandidats(Admission candidat) // Regarder si le nombre de choix est = à 0 Que se passe-t-il ? -ListeAdmission chargerCandidats(char *ficAdmission, char dptResAdmi[30]) +ListeAdmission chargerCandidats(char *ficAdmission, char dptResAdmi[30], ListeAdmission la) { - ListeAdmission listeCandidats = listeNouvCand(); - Admission candidat; FILE *flot; + listenouv(); flot=fopen(ficAdmission, "r"); if(flot == NULL) { printf("Erreur d'ouverture du fichier !\n"); exit(1); } - candidat = lireCandidat(flot); + la->v = lireCandidat(flot); while(!feof(flot)) { listeCandidats = insererCand(listeCandidats, candidat); @@ -227,8 +225,4 @@ int modifNbAdmisMax() scanf("%d", &nbAdmisMax); return nbAdmisMax; } - - - - - +*/ \ No newline at end of file diff --git a/structures.c b/structures.c index 82f27cf..29b299d 100755 --- a/structures.c +++ b/structures.c @@ -1,13 +1,15 @@ #include "SAE.h" +/* +// ListeAdmission -ListeAdmission listenouv(void) +ListeAdmission listenouvAdm(void) { - ListeAdmission f; - f = NULL; - return f; + ListeAdmission la; + la = NULL; + return la; } -ListeAdmission adjq(ListeAdmission f, Admission candidat) +ListeAdmission insererEnTeteAdm(ListeAdmission la, Admission candidat) { MaillonAdmission *p; p = (MaillonAdmission *)malloc(sizeof(MaillonAdmission)); @@ -17,80 +19,213 @@ ListeAdmission adjq(ListeAdmission f, Admission candidat) exit(1); } p->v = candidat; - if(vide(f)) - { - p->suiv = p; - return p; - } - p->suiv = f->suiv; - f->suiv = p; + p->suiv = la; return p; } -ListeAdmission supt(ListeAdmission f) +ListeAdmission insererAdm(ListeAdmission la, Admission candidat) +{ + if(la == NULL) + return insererEnTeteAdm(f, candidat); + if(candidat.num < la->v.num) + return insererEnTeteAdm(f, candidat); + if(candidat.num > la->v.num) + return la; + la->suiv = insererAdm(la->suiv, candidat); + return la; +} + +ListeAdmission supprimerEnTeteAdm(ListeAdmission la) { MaillonAdmission *aux; - if(vide(f)) + if(videAdm(la)) { printf("Opérations interdites !!!!\n"); exit(1); } - if(f->suiv == f) - { - free(f); - return Listenouv(); - } - aux = f->suiv; - f->suiv = aux->suiv; + aux = la + la = la->suiv; free(aux); - return f; + return la; +} + +ListeAdmission supprimerAdm(ListeAdmission la, Admission candidat) +{ + if(videAdm(la)) + return la; + if(candidat.num < la->v.num) + return la; + if(candidat.num == la->v.num) + return supprimerEnTeteAdm(la); + la->suiv = supprimerAdm(la->suiv, candidat.num); + return la; } -bool vide(ListeAdmission f) + +bool rechercherAdm(ListeAdmission la, Admission candidat) { - return f == NULL; + if(videAdm(la)) + return false; + if(candidat.num < la->v.num) + return false; + if(candidat.num == la->v.num) + return true; + return rechercherAdm(la->suiv, candidat.num); } -Admission tete(ListeAdmission f) +int TeteAdm(ListeAdmission la) { - if(vide(f)) + if(videAdm(la)) { printf("Opérations interdites !!!!\n"); exit(1); } - return f->suiv->v; + return la->v; /* Retourne un candidat } -int longueur(ListeAdmission f) +bool videAdm(ListeAdmission la) { - int cpt = 1; - MaillonAdmission *aux; - if(vide(f)) + return la == NULL; +} + +void afficherAdm(ListeAdmission la) +{ + while(!videAdm(la)) { - return 0; + afficherCandidatsAdm(Tete(la)); + la = la->suiv; } - aux = f->suiv; - while(aux != f) + printf("\n"); +} + +int longueurAdm(ListeAdmission la) +{ + int cpt = 0; + while(!vide(la)) { cpt++; - aux = aux->suiv; + la = la->suiv; } return cpt; } -void afficher(ListeAdmission f) +void afficherCandidatsAdm(Admission candidat) +{ + printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%d\t%d", candidat.num, candidat.nom, candidat.prenom, candidat.noteMaths, candidat.noteFrançais, candidat.noteAnglais, candidat.noteSpe, candidat.nbChoix, candidat.ville); + afficherDpt(candidat.ListeDepartement); +} + +// ListeDepartement + +ListeDepartement listenouvDpt(void) +{ + ListeDepartement ld; + ld = NULL; + return ld; +} + +ListeDepartement insererEnTeteDpt(ListeDepartement ld, Departement dpt) +{ + MaillonDepartement *p; + p = (MaillonDepartement *)malloc(sizeof(MaillonDepartement)); + if(p == NULL) + { + printf("Opérations interdites !!!!\n"); + exit(1); + } + p->v = dpt; + p->suiv = ld; + return p; +} + +ListeDepartement insererDpt(ListeDepartement ld, Departement dpt) { - MaillonAdmission *p=f; - if(vide(f)) + if(ld == NULL) + return insererEnTeteDpt(ld, dpt); + if(strcmp(dpt.departement, ld->v.departement) < 0) + return insererEnTeteDpt(ld, dpt); + if(strcmp(dpt.departement, ld->v.departement) = 0) + return ld; + ld->suiv = insererDpt(ld->suiv, dpt); + return ld; +} + +ListeDepartement supprimerEnTeteDpt(ListeDepartement ld) +{ + MaillonDepartement *aux; + if(videDpt(ld)) { printf("Opérations interdites !!!!\n"); exit(1); } - afficherCandidats(f->v); - while(f->suiv != p) + aux = ld; + ld = ld->suiv; + free(aux); + return ld; +} + +ListeDepartement supprimerDpt(ListeDepartement ld, Departement dpt) +{ + if(videDpt(ld)) + return ld; + if(strcmp(dpt.departement, ld->v.departement) < 0) + return ld; + if(strcmp(dpt.departement, ld->v.departement) = 0) + return supprimerEnTeteDpt(ld); + ld->suiv = supprimerDpt(ld->suiv, dpt.departement); + return ld; +} + +bool rechercherDpt(ListeDepartement ld, Departement dpt) +{ + if(videDpt(ld)) + return false; + if(strcmp(dpt.departement, ld->v.departement) < 0) + return false; + if(strcmp(dpt.departement, ld->v.departement) = 0) + return true; + return rechercherDpt(ld->suiv, dpt.departement); +} + +int TeteDpt(ListeDepartement ld) +{ + if(videDpt(ld)) { - f = f->suiv; - afficherCandidats(f->v); + printf("Opérations interdites !!!!\n"); + exit(1); + } + return ld->v; /* Retourne un département +} + +bool videDpt(ListeDepartement ld) +{ + return ld == NULL; +} + +void afficherDpt(ListeDepartement ld) +{ + while(!videDpt(ld)) + { + afficherDepartement(TeteDpt(ld)); + ld = ld->suiv; } printf("\n"); -} \ No newline at end of file +} + +void afficherDepartement(Departement dpt) +{ + printf("%s\t%d\t%d\t", dpt.departement, dpt.decisionAdmission, dpt.decisionCandidat); +} + +int longueurDpt(ListeDepartement ld) +{ + int cpt = 0; + while(!videDpt(ld)) + { + cpt++; + ld = ld->suiv; + } + return cpt; +} + +*/ \ No newline at end of file