You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
232 lines
5.7 KiB
232 lines
5.7 KiB
/*#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);
|
|
}*/ |