master
Kyllian Chabanon 2 years ago
commit cec6eb79bf

@ -50,8 +50,8 @@ void afficherCandidatsRefuses(Etudiant *tetud[], int nbCandidats);
void afficherCandidatsAttente(Etudiant *tetud[], int nbCandidats); void afficherCandidatsAttente(Etudiant *tetud[], int nbCandidats);
Etudiant moyenneCandidat(Etudiant mEtudiant); Etudiant moyenneCandidat(Etudiant mEtudiant);
Etudiant *moyenneCandidats(Etudiant *tetud[], int nbCandiats); Etudiant *moyenneCandidats(Etudiant *tetud[], int nbCandiats);
Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[]); Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[], VilleIUT *tiut[], int nbIUT, char respVille[30], char respDept[30]);
int statueCandidat(Etudiant *tetud[], int nbCandidats); int statueCandidat(Etudiant *tetud[], int nbCandidats, Etudiant *tetudAdmis[], Etudiant *tetudAttente[], int nbEtudAdmis, int nbEtudAttente);
int nbCandidatsAdmis(Etudiant *tetud[], int nbCandidats); int nbCandidatsAdmis(Etudiant *tetud[], int nbCandidats);
int nbCandidatsRefuses(Etudiant *tetud[], int nbCandidats); int nbCandidatsRefuses(Etudiant *tetud[], int nbCandidats);
int nbCandidatsAttente(Etudiant *tetud[], int nbCandidats); int nbCandidatsAttente(Etudiant *tetud[], int nbCandidats);
@ -84,3 +84,6 @@ int chargementRespDept(Etudiant *tetud[], int nbCand, char respVille[], char res
void lancerAdmissions(Etudiant *tetudResp[], int nbCandResp, Etudiant *tetudAdmis[], int *nbEtudAdmis, Etudiant *tetudAttente[], int *nbEtudAttente, char ville[], char dept[]); void lancerAdmissions(Etudiant *tetudResp[], int nbCandResp, Etudiant *tetudAdmis[], int *nbEtudAdmis, Etudiant *tetudAttente[], int *nbEtudAttente, char ville[], char dept[]);
void sauvegardeAdmis(Etudiant *tetudAdmis[], int nbEtudAdmis); void sauvegardeAdmis(Etudiant *tetudAdmis[], int nbEtudAdmis);
void sauvegardeAttente(Etudiant *tetudAttente[], int nbEtudAttente); void sauvegardeAttente(Etudiant *tetudAttente[], int nbEtudAttente);
void chargerMdPAdmin();
void modifierMdPAdmin();

@ -50,7 +50,6 @@ void modificationNbPDept(VilleIUT *tiut[], int nbIUT)
*/ */
void creationDept(VilleIUT *tiut[], int nbIUT) void creationDept(VilleIUT *tiut[], int nbIUT)
{ {
// TODO : Quand on essaie de créer un département dans un IUT inexistant, ça propose de le créer
char iut[30], nomDept[30], nomResp[30]; char iut[30], nomDept[30], nomResp[30];
int posIUT, nbP; int posIUT, nbP;
bool trouve; bool trouve;
@ -156,3 +155,36 @@ void stopperPhaseCandidature(bool *phaseCandidature, bool *phaseTraitement)
printf("La phase de candidature est déjà fermée.\n"); printf("La phase de candidature est déjà fermée.\n");
} }
} }
void chargerMdPAdmin()
{
FILE *flot;
flot = fopen("mdpAdmin.bin", "rb");
if (flot == NULL)
{
printf("Erreur lors de l'ouverture du fichier mdpAdmin.bin\n");
exit(1);
}
char mdp[30];
fread(mdp, sizeof(char), 30, flot);
printf("Le mot de passe de l'administrateur est : %s\n", mdp);
fclose(flot);
}
void modifierMdPAdmin()
{
char mdp[30];
FILE *flot;
flot = fopen("mdpAdmin.bin", "wb");
if (flot == NULL)
{
printf("Erreur lors de l'ouverture du fichier mdpAdmin.txt\n");
return;
}
printf("Entrez le nouveau mot de passe de l'administrateur :\n> ");
fgets(mdp, 30, stdin);
mdp[strlen(mdp) - 1] = '\0';
fwrite(mdp, sizeof(char), strlen(mdp) + 1, flot);
fprintf(flot, "\n");
fclose(flot);
}

@ -162,7 +162,7 @@ void afficherCandidatsAdmis(Etudiant *tetud[], int nbCandidats)
afficherEtudiant(*tetud[i]); afficherEtudiant(*tetud[i]);
} }
} }
} // TODO : Mettre un message d'erreur si aucun }
/** /**
* @brief Affiche les candidats refusés * @brief Affiche les candidats refusés

@ -23,7 +23,6 @@ void ajouterCandidature(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], in
char ville[30], dept[30]; char ville[30], dept[30];
bool trouve; bool trouve;
Choix c; Choix c;
//! AUTHENTIFICATION
printf("Entrez votre numéro de candidat :\n> "); printf("Entrez votre numéro de candidat :\n> ");
scanf("%d", &num); scanf("%d", &num);
posCand = rechercheCandidat(tetud, nbCandidats, num, &trouve); posCand = rechercheCandidat(tetud, nbCandidats, num, &trouve);
@ -106,9 +105,3 @@ int inscription(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], int nbVill
nbCandidats++; nbCandidats++;
return nbCandidats; return nbCandidats;
} }
// ? Comment definir la note sur 20 mise lors de l'etude du dossier ?
// ? Ajouter une variable dans la structure Admission ?
// ? Ou mettre la liste et la note dans un tableau ?
// ? Après examen de chaque dossier de candidature,
// ? le jury doit regarder ou la note peut etre calculée automatiquement ?

@ -90,7 +90,7 @@ int chargerCandidats(Etudiant *tetud[])
printf("Erreur malloc\n"); printf("Erreur malloc\n");
exit(2); exit(2);
} }
fscanf(file, "%d%s%s", &tetud[i]->num, tetud[i]->nom, tetud[i]->prenom); // TODO : Faire un fgets pour le prénom fscanf(file, "%d%s%s", &tetud[i]->num, tetud[i]->nom, tetud[i]->prenom);
for (int note = 0; note < 4; note++) for (int note = 0; note < 4; note++)
{ {
fscanf(file, "%f", &tetud[i]->tabNotes[note]); fscanf(file, "%f", &tetud[i]->tabNotes[note]);

@ -1,232 +0,0 @@
/*#include "SAE.h"
int ConnexionUtilisateur(void)
{
char nomUtilisateur[9], motDePasse[11], typeUtilisateur[9];
printf("Veuillez entrer votre nom d'utilisateur : ");
scanf("%s", &nomUtilisateur);
while(strlen(nomUtilisateur) != 8)
{
printf("Nom d'utilisateur incorrect. Veuillez recommencer : ");
scanf("%s", &nomUtilisateur);
}
printf("Veuillez entrer votre mot de passe : ");
system("stty -echo");
scanf("%s", &motDePasse);
system("stty echo");
while(strlen(motDePasse) != 10)
{
printf("Mot de passe incorrect. Veuillez recommencer : ");
system("stty -echo");
scanf("%s", &motDePasse);
system("stty echo");
}
printf("Connexion réussie en tant qu%s!\n", typeUtilisateur);
if(typeUtilisateur == "Admin")
{
return 1;
}
else if(typeUtilisateur == "RespAdm")
{
return 2;
}
else if(typeUtilisateur == "RespDept")
{
return 3;
}
}
ListeUtilisateurs chargeUtilisateurs(char *ficUtilisateurs, ListeUtilisateurs Utilisateurs)
{
FILE *flot;
Utilisateur utilisateur;
flot = fopen(ficUtilisateurs, "rb");
if(flot == NULL)
{
printf("Erreur lors de l'ouverture du fichier %s\n", ficUtilisateurs);
return 0;
}
utilisateur = lireUtilisateur(flot);
while(!feof(flot))
{
Utilisateurs = insererUtilisateur(Utilisateurs, utilisateur);
utilisateur = lireUtilisateur(flot);
}
fclose(flot);
return Utilisateur;
}
Utilisateur lireUtilisateur(FILE *flot)
{
Utilisateur utilisateur;
fread(&utilisateur, sizeof(Utilisateur), 1, flot);
return utilisateur;
}
void afficherUtilisateur(Utilisateur utilisateur)
{
printf("%s\t%s\n", utilisateur.nomUtilisateur, utilisateur.motDePasse);
}
void afficherUtilisateurs(ListeUtilisateurs Utilisateurs)
{
while(! videUtilisateurs(Utilisateurs))
{
afficherUtilisateur(Utilisateurs->utilisateur);
Utilisateurs = Utilisateurs->suiv;
}
printf("\n");
}
ListeUtilisateurs insererUtilisateur(ListeUtilisateurs Utilisateurs, Utilisateur utilisateur)
{
ListeUtilisateurs p;
p = (ListeUtilisateurs)malloc(sizeof(MaillonUtilisateur));
if(p == NULL)
{
printf("Opérations interdites !!!!\n");
exit(1);
}
p->utilisateur = utilisateur;
p->suiv = Utilisateurs;
return p;
}
ListeUtilisateurs supprimerUtilisateur(ListeUtilisateurs Utilisateurs, char *nomUtilisateur)
{
ListeUtilisateurs p, q;
if(videUtilisateurs(Utilisateurs))
{
printf("Opérations interdites !!!!\n");
exit(1);
}
if(strcmp(Utilisateurs->utilisateur.nomUtilisateur, nomUtilisateur) == 0)
{
p = Utilisateurs;
Utilisateurs = Utilisateurs->suiv;
free(p);
return Utilisateurs;
}
q = Utilisateurs;
p = Utilisateurs->suiv;
while(p != NULL && strcmp(p->utilisateur.nomUtilisateur, nomUtilisateur) != 0)
{
q = p;
p = p->suiv;
}
if(p == NULL)
{
printf("Opérations interdites !!!!\n");
exit(1);
}
q->suiv = p->suiv;
free(p);
return Utilisateurs;
}
int videUtilisateurs(ListeUtilisateurs Utilisateurs)
{
return Utilisateurs == NULL;
}
void sauveUtilisateurs(char *ficUtilisateurs, ListeUtilisateurs Utilisateurs)
{
FILE *flot;
flot = fopen(ficUtilisateurs, "wb");
if(flot == NULL)
{
printf("Erreur lors de l'ouverture du fichier %s\n", ficUtilisateurs);
return;
}
fprintf(flot, "%d\n", nbUtilisateurs);
while(! videUtilisateurs(Utilisateurs))
{
fwrite(&Utilisateurs->utilisateur, sizeof(Utilisateur), 1, flot);
Utilisateurs = Utilisateurs->suiv;
}
fclose(flot);
}
int rechercheUtilisateur(ListeUtilisateurs Utilisateurs, char *nomUtilisateur)
{
while(! videUtilisateurs(Utilisateurs))
{
if(strcmp(Utilisateurs->utilisateur.nomUtilisateur, nomUtilisateur) == 0)
{
return 1;
}
Utilisateurs = Utilisateurs->suiv;
}
return 0;
}
int supprimerUtilisateur(ListeUtilisateurs Utilisateurs, char *nomUtilisateur)
{
ListeUtilisateurs p, q;
if(videUtilisateurs(Utilisateurs))
{
printf("Opérations interdites !!!!\n");
exit(1);
}
if(strcmp(Utilisateurs->utilisateur.nomUtilisateur, nomUtilisateur) == 0)
{
p = Utilisateurs;
Utilisateurs = Utilisateurs->suiv;
free(p);
return 1;
}
q = Utilisateurs;
p = Utilisateurs->suiv;
while(p != NULL && strcmp(p->utilisateur.nomUtilisateur, nomUtilisateur) != 0)
{
q = p;
p = p->suiv;
}
if(p == NULL)
{
return 0;
}
q->suiv = p->suiv;
free(p);
return 1;
}
int menuUtilisateurs(ListeUtilisateurs Utilisateurs)
{
int choix;
printf("1. Ajouter un utilisateur\n");
printf("2. Supprimer un utilisateur\n");
printf("3. Afficher la liste des utilisateurs\n");
printf("4. Quitter\n");
printf("Votre choix : ");
scanf("%d", &choix);
return choix;
}
void global()
{
ListeUtilisateurs Utilisateurs;
Utilisateurs = chargerUtilisateurs("utilisateurs.bin");
menuUtilisateurs(Utilisateurs);
while(choix != 4)
{
if(choix == 1)
{
ajouterUtilisateur(Utilisateurs);
}
elseif(choix == 2)
{
supprimerUtilisateur(Utilisateurs);
}
elseif(choix == 3)
{
afficherUtilisateurs(Utilisateurs);
}
else
{
printf("choix impossible\n");
}
menuUtilisateurs(Utilisateurs);
}
sauveUtilisateurs("utilisateurs.bin", Utilisateurs);
}*/

Binary file not shown.

@ -49,6 +49,20 @@ void menu(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats, boo
switch (choix) switch (choix)
{ {
case 1: case 1:
char mdp[30], MdPAdmin[30];
int i = 0;
strcpy(MdPAdmin, chargerMdPAdmin());
printf("Veuillez entrer le mot de passe administrateur :\n> ");
while(mdp != MdPAdmin)
{
if(i == 3)
{
printf("Vous avez entré 3 fois le mauvais mot de passe, veuillez réessayer plus tard.\n");
}
printf("Veuillez entrer le mot de passe administrateur :\n> ");
scanf("%s%*c", mdp);
i++;
}
menuAdministrateur(tiut, nbIUT, tetud, nbCandidats, phaseCandidatures, phaseTraitement); menuAdministrateur(tiut, nbIUT, tetud, nbCandidats, phaseCandidatures, phaseTraitement);
break; break;
case 2: case 2:
@ -65,9 +79,9 @@ void menu(VilleIUT *tiut[], int *nbIUT, Etudiant *tetud[], int *nbCandidats, boo
case 4: case 4:
menuResponsable(tetud, *nbCandidats, tiut, nbIUT, tetudAdmis, *nbEtudAdmis, tetudAttente, *nbEtudAttente); menuResponsable(tetud, *nbCandidats, tiut, nbIUT, tetudAdmis, *nbEtudAdmis, tetudAttente, *nbEtudAttente);
break; break;
case 5: // case 5:
menuPostCandidat(); // menuPostCandidat();
break; // break;
case 9: case 9:
c = true; c = true;
return; return;
@ -290,16 +304,16 @@ void menuResponsable(Etudiant *tetud[], int nbCandidats, VilleIUT *tiut[], int *
case 2: case 2:
modificationNbPDeptResp(tiut, *nbIUT, respVille, respDept); modificationNbPDeptResp(tiut, *nbIUT, respVille, respDept);
break; break;
case 3: // case 3:
//*noteMin = modifNoteMin(noteMin); // //*noteMin = modifNoteMin(noteMin);
// ? Note min stocké où ? ==> dans le fichier informationsIUT.txt // // ? Note min stocké où ? ==> dans le fichier informationsIUT.txt
break; //! A revoir segment fault // break; //! A revoir segment fault
case 4: // case 4:
modifStatueCandidat(tetudResp, nbCandidatsDept, noteMin, tiut, *nbIUT, respVille, respDept); //! Mettre dans l'admin et dire que c'est lui qui lance tt // modifStatueCandidat(tetudResp, nbCandidatsDept, noteMin, tiut, *nbIUT, respVille, respDept); //! Mettre dans l'admin et dire que c'est lui qui lance tt
// lancerAdmissions(tetudResp, nbCandidats, tetudAdmis, nbEtudAdmis, tetudAttente, nbEtudAttente, respVille, respDept); // // lancerAdmissions(tetudResp, nbCandidats, tetudAdmis, nbEtudAdmis, tetudAttente, nbEtudAttente, respVille, respDept);
//! Qd finis enregistrer dans tblAdmis et tblAttente puis sauv dans fichier // //! Qd finis enregistrer dans tblAdmis et tblAttente puis sauv dans fichier
statueCandidat(tetud, nbCandidats, tetudAdmis, tetudAttente, nbEtudAdmis, nbEtudAttente); // statueCandidat(tetud, nbCandidats, tetudAdmis, tetudAttente, nbEtudAdmis, nbEtudAttente);
break; // break;
case 9: case 9:
c = true; c = true;
return; return;
@ -373,33 +387,33 @@ void menuAffichage(Etudiant *tetudResp[], int nbCandidatsDept)
} }
} }
void menuPostCandidat() // void menuPostCandidat()
{ // {
int choix; // int choix;
bool c = false; // bool c = false;
while (c == false) // while (c == false)
{ // {
printf("\n\nMenu des Affichages Responsable de Departement : Que voulez-vous faire ?\n"); // printf("\n\nMenu des Affichages Responsable de Departement : Que voulez-vous faire ?\n");
printf("\t1 - Afficher les informations sur mes voeus\n"); // printf("\t1 - Afficher les informations sur mes voeus\n");
printf("\t2 - Validation d'un voeux (et refus des autres)\n"); // printf("\t2 - Validation d'un voeux (et refus des autres)\n");
printf("\t9 - Quitter\n"); // printf("\t9 - Quitter\n");
printf("\nEntrez votre choix :\n> "); // printf("\nEntrez votre choix :\n> ");
scanf("%d%*c", &choix); // scanf("%d%*c", &choix);
switch (choix) // switch (choix)
{ // {
case 1: // case 1:
afficherCandidat(tetud, *nbCandidats); // afficherCandidat(tetud, *nbCandidats);
break; // break;
case 2: // case 2:
ValidationCandidature(); //** Valide une candidature et rejette ttes les autres ==> enregistre dans tblAdmis et tblAttente // ValidationCandidature();//** Valide une candidature et rejette ttes les autres ==> enregistre dans tblAdmis et tblAttente
MiseAJourAdmission(); //** relance l'admission // MiseAJourAdmission();//** relance l'admission
break; // break;
case 9: // case 9:
c = true; // c = true;
return; // return;
default: // default:
printf("Option non reconnue. Veuillez recommencer.\n"); // printf("Option non reconnue. Veuillez recommencer.\n");
break; // break;
} // }
} // }
} // }

@ -32,7 +32,6 @@ void deptResp(VilleIUT *tiut[], int nbVilles, char respVille[], char respIUT[])
return; return;
} }
} }
//! Rechercher si existe
} }
} }
@ -63,39 +62,6 @@ int chargementRespDept(Etudiant *tetud[], int nbCand, char respVille[], char res
return nb; return nb;
} }
// Etudiant moyenneCandidat(Etudiant mEtudiant)
// {
// float moyenne = 0;
// for (int i = 0; i < 4; i++)
// {
// moyenne += mEtudiant.tabNotes[i];
// }
// moyenne /= 4;
// mEtudiant.tabNotes[moy] = moyenne;
// return mEtudiant;
// }
// Etudiant *moyenneCandidats(Etudiant *tetud[], int nbCandidats)
// {
// for (int i = 0; i < nbCandidats; i++)
// {
// *tetud[i] = moyenneCandidat(*tetud[i]);
// }
// return *tetud;
// }
/**
* @brief Modifie le statut d'un candidat
*
* @param tetud Tableau des candidats
* @param nbCandidats Nombre de candidats
* @param noteMin Tableau des notes minimales
* @param tiut Tableau des IUT
* @param nbIUT Nombre des IUT
* @param respVille Ville du responsable
* @param respDept Département du responsable
* @return Etudiant
*/
Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[], VilleIUT *tiut[], int nbIUT, char respVille[30], char respDept[30]) //! tableau des admis + compteur admis Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[], VilleIUT *tiut[], int nbIUT, char respVille[30], char respDept[30]) //! tableau des admis + compteur admis
{ {
int posIUT, posDept, nbPlaces; int posIUT, posDept, nbPlaces;
@ -104,13 +70,13 @@ Etudiant modifStatueCandidat(Etudiant *tetud[], int nbCandidats, float noteMin[]
if (trouve == false) if (trouve == false)
{ {
printf("L'IUT de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n"); printf("L'IUT de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n");
return; return **tetud;
} }
posDept = rechercheDept(tiut[posIUT]->ldept, respDept, &trouve); posDept = rechercheDept(tiut[posIUT]->ldept, respDept, &trouve);
if (trouve == false) if (trouve == false)
{ {
printf("Le departement de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n"); printf("Le departement de ce responsable n'existe pas. Veuillez réessayer en changeant de responsable.\n");
return; return **tetud;
} }
for (int i = 0; i < nbCandidats; i++) for (int i = 0; i < nbCandidats; i++)
{ {
@ -148,20 +114,20 @@ int statueCandidat(Etudiant *tetud[], int nbCandidats, Etudiant *tetudAdmis[], E
} }
} }
Etudiant ValidationCandidature() // Etudiant ValidationCandidature()
{ // {
int i; // int i;
char choix[30]; // char choix[30];
printf("Quel voeu souhaitez-vous valider ?\n") // printf("Quel voeu souhaitez-vous valider ?\n");
scanf("%s", &choix); // scanf("%s", &choix);
for (i = 0; i < nbCandidats; i++) // for (i = 0; i < nbCandidats; i++)
{ // {
if (tetud[i]->lChoix->choix.decisionAdmission == 1) // if (tetud[i]->lChoix->choix.decisionAdmission == 1)
{ // {
tetud[i]->lChoix->choix.decisionAdmission = 0; // tetud[i]->lChoix->choix.decisionAdmission = 0;
} // }
} // }
} // }
int nbCandidatsAdmis(Etudiant *tetud[], int nbCandidats) int nbCandidatsAdmis(Etudiant *tetud[], int nbCandidats)
{ {
@ -206,7 +172,7 @@ float modifNoteMin(float noteMin[])
{ {
for (int i = 0; i < 5; i++) for (int i = 0; i < 5; i++)
{ {
printf("Entrez la note minimale pour la matiere %s (0/20, -1 pour sortir) : ", i + 1); // afficher le nom de la matiere du enum printf("Entrez la note minimale pour la matiere %d (0/20, -1 pour sortir) : ", i + 1); // afficher le nom de la matiere du enum
scanf("%f", &noteMin[i]); scanf("%f", &noteMin[i]);
while (noteMin[i] < 0 || noteMin[i] > 20) while (noteMin[i] < 0 || noteMin[i] > 20)
{ {

@ -18,7 +18,6 @@ void supprimerCandidature(Etudiant *tetud[], int nbCandidats)
char ville[30], dept[30]; char ville[30], dept[30];
bool trouve; bool trouve;
Choix c; Choix c;
//! AUTHENTIFICATION
printf("Entrez votre numéro de candidat :\n> "); printf("Entrez votre numéro de candidat :\n> ");
scanf("%d", &num); scanf("%d", &num);
posCand = rechercheCandidat(tetud, nbCandidats, num, &trouve); posCand = rechercheCandidat(tetud, nbCandidats, num, &trouve);

Loading…
Cancel
Save