gestion des erreurs

master
Antoine PEREDERII 2 years ago
parent 1cb5a72c2b
commit da798d1753

@ -0,0 +1,4 @@
{
"files.autoSaveDelay": 1000,
"files.autoSave": "afterDelay"
}

29
SAE.h

@ -45,6 +45,33 @@ void modificationRespDept(VilleIUT *tiut[], int nb);
// Partie 3 // 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); Departement lireDpt(FILE *flot);
void afficherDpt(Departement dpt); void afficherDpt(Departement dpt);
Admission lireCandidat(FILE *flot); Admission lireCandidat(FILE *flot);
@ -60,7 +87,7 @@ int modifNoteMinAdmis();
int modifNbAdmisMax(); int modifNbAdmisMax();
// Authentification // Authentification
/*
int ConnexionUtilisateur(char *login, char *mdp); int ConnexionUtilisateur(char *login, char *mdp);
ListeUtilisateurs chargerUtilisateurs(char *ficUtilisateurs, ListeUtilisateurs Utilisateurs); ListeUtilisateurs chargerUtilisateurs(char *ficUtilisateurs, ListeUtilisateurs Utilisateurs);
Utilisateur lireUtilisateur(FILE *flot); Utilisateur lireUtilisateur(FILE *flot);

BIN
exe

Binary file not shown.

@ -1,9 +1,10 @@
#include "SAE.h" #include "SAE.h"
/*
Departement lireDpt(FILE *flot) Departement lireDpt(FILE *flot, Admission ListeDepartement)
{ {
Departement dpt; Departement dpt;
fscanf(flot, "%s\n%d\n%d\n", dpt.departement, &dpt.decisionAdmission, &dpt.decisionCandidat); fscanf(flot, "%s\n%d\n%d\n", dpt.departement, &dpt.decisionAdmission, &dpt.decisionCandidat);
return dpt;
} }
void afficherDpt(Departement dpt) void afficherDpt(Departement dpt)
@ -11,12 +12,10 @@ void afficherDpt(Departement dpt)
printf("\t%s\t%d\t%d", dpt.departement, dpt.decisionAdmission, dpt.decisionCandidat); printf("\t%s\t%d\t%d", dpt.departement, dpt.decisionAdmission, dpt.decisionCandidat);
} }
Admission lireCandidat(FILE *flot) Admission lireCandidat(FILE *flot, ListeAdmission la)
{ {
Admission candidat;
Departement dpt;
int i = 0; int i = 0;
fscanf(flot, "%d\n", &candidat.num); fscanf(flot, "%d\n", &la->candidat.num);
fgets(candidat.nom, 22, flot); fgets(candidat.nom, 22, flot);
candidat.nom[strlen(candidat.nom) - 1] = '\0'; candidat.nom[strlen(candidat.nom) - 1] = '\0';
fgets(candidat.prenom, 22, flot); fgets(candidat.prenom, 22, flot);
@ -32,7 +31,7 @@ Admission lireCandidat(FILE *flot)
{ {
if(strcmp(dpt.departement, dptResAdmi) == 0) if(strcmp(dpt.departement, dptResAdmi) == 0)
{ {
candidat.ldept = insererDpt(candidat, dpt); candidat.ldept = inserer(candidat, dpt);
} }
dpt = lireDpt(flot); dpt = lireDpt(flot);
i++; i++;
@ -54,18 +53,17 @@ void afficherCandidats(Admission candidat)
// Regarder si le nombre de choix est = à 0 Que se passe-t-il ? // 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; FILE *flot;
listenouv();
flot=fopen(ficAdmission, "r"); flot=fopen(ficAdmission, "r");
if(flot == NULL) if(flot == NULL)
{ {
printf("Erreur d'ouverture du fichier !\n"); printf("Erreur d'ouverture du fichier !\n");
exit(1); exit(1);
} }
candidat = lireCandidat(flot); la->v = lireCandidat(flot);
while(!feof(flot)) while(!feof(flot))
{ {
listeCandidats = insererCand(listeCandidats, candidat); listeCandidats = insererCand(listeCandidats, candidat);
@ -227,8 +225,4 @@ int modifNbAdmisMax()
scanf("%d", &nbAdmisMax); scanf("%d", &nbAdmisMax);
return nbAdmisMax; return nbAdmisMax;
} }
*/

@ -1,13 +1,15 @@
#include "SAE.h" #include "SAE.h"
/*
// ListeAdmission
ListeAdmission listenouv(void) ListeAdmission listenouvAdm(void)
{ {
ListeAdmission f; ListeAdmission la;
f = NULL; la = NULL;
return f; return la;
} }
ListeAdmission adjq(ListeAdmission f, Admission candidat) ListeAdmission insererEnTeteAdm(ListeAdmission la, Admission candidat)
{ {
MaillonAdmission *p; MaillonAdmission *p;
p = (MaillonAdmission *)malloc(sizeof(MaillonAdmission)); p = (MaillonAdmission *)malloc(sizeof(MaillonAdmission));
@ -17,80 +19,213 @@ ListeAdmission adjq(ListeAdmission f, Admission candidat)
exit(1); exit(1);
} }
p->v = candidat; p->v = candidat;
if(vide(f)) p->suiv = la;
{
p->suiv = p;
return p;
}
p->suiv = f->suiv;
f->suiv = p;
return p; 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; MaillonAdmission *aux;
if(vide(f)) if(videAdm(la))
{ {
printf("Opérations interdites !!!!\n"); printf("Opérations interdites !!!!\n");
exit(1); exit(1);
} }
if(f->suiv == f) aux = la
{ la = la->suiv;
free(f);
return Listenouv();
}
aux = f->suiv;
f->suiv = aux->suiv;
free(aux); 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"); printf("Opérations interdites !!!!\n");
exit(1); exit(1);
} }
return f->suiv->v; return la->v; /* Retourne un candidat
} }
int longueur(ListeAdmission f) bool videAdm(ListeAdmission la)
{ {
int cpt = 1; return la == NULL;
MaillonAdmission *aux; }
if(vide(f))
void afficherAdm(ListeAdmission la)
{
while(!videAdm(la))
{ {
return 0; afficherCandidatsAdm(Tete(la));
la = la->suiv;
} }
aux = f->suiv; printf("\n");
while(aux != f) }
int longueurAdm(ListeAdmission la)
{
int cpt = 0;
while(!vide(la))
{ {
cpt++; cpt++;
aux = aux->suiv; la = la->suiv;
} }
return cpt; 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(ld == NULL)
if(vide(f)) 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"); printf("Opérations interdites !!!!\n");
exit(1); exit(1);
} }
afficherCandidats(f->v); aux = ld;
while(f->suiv != p) 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; printf("Opérations interdites !!!!\n");
afficherCandidats(f->v); 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"); printf("\n");
} }
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;
}
*/
Loading…
Cancel
Save