Programmation en C, Système de gestion
Fermé
kartrotax
Messages postés
4
Date d'inscription
mercredi 16 mai 2012
Statut
Membre
Dernière intervention
16 mai 2012
-
16 mai 2012 à 15:12
kartrotax Messages postés 4 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 16 mai 2012 - 16 mai 2012 à 16:19
kartrotax Messages postés 4 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 16 mai 2012 - 16 mai 2012 à 16:19
A voir également:
- Programmation en C, Système de gestion
- Restauration systeme windows 10 - Guide
- Application de programmation - Guide
- Logiciel gestion photo gratuit - Guide
- Gestion de fichiers - Télécharger - Gestion de fichiers
- Logiciel gestion cave à vin gratuit excel - Télécharger - Cuisine & Gastronomie
3 réponses
Linukcs
Messages postés
80
Date d'inscription
lundi 12 octobre 2009
Statut
Membre
Dernière intervention
10 octobre 2012
14
Modifié par Linukcs le 16/05/2012 à 15:50
Modifié par Linukcs le 16/05/2012 à 15:50
Bonjour,
On commence, comme toujours, par lire la consigne et modéliser.
1°) Nous avons 3 types accès : Administrateur, Enseignant et Etudiant.
Administrateur : Droits totaux sur l'ensemble des Enseignants, Etudiants et matières
Question à se poser : Quels sont ses droits ?
Réponse : En dessous on indique Affichage, Ajout, Modification et Suppression.
Q : Combien de fonctions au total ?
R : 12, 4 par Type.
Enseignant : A des droits de modification sur la gestion des étudiants et matières
Q : Quels sont ses droits ?
R : Au dessus on indique Affichage, Ajout, Modification et Suppression.
Q : Combien de fonctions au total:
R : 8, 4 par type.
Elève : A des droits de consultation
Q : Quels sont ses droits ?
R : Au dessus on déduit qu'il n'a que l'affichage.
Q : Combien de fonctions au total ?
R : 2. De la lecture seulement.
2°) Nous apprenons qu'une matière sera faite de 3 clefs : Code, Titre et Coefficient.
Q : De quels types sont ces trois clefs.
R : Code sera un entier ou une chaîne de caractère, courte de préférence (y'a pas 36000 matières, quoique...). Titre une chaîne de caractères, et Coefficient un flottant.
Nous apprenons qu'un Enseignant est caractérisé par plusieurs champs divers et variés, je pense que ce sera facile de les déterminer. L'enseignant doit avoir également un tableau unidimensionnel dans lequel seront les codes de ses élèves (idéal pour la gestion de ceux-ci).
Nous apprenons qu'un Elève est aussi caractérisé par plusieurs champs divers et variés semblables à ceux de l'Enseignant.
En clair pour le code C :
=> On définit une structure pour chacun des types : Matiere, Enseignant et Eleve. A noter : Pour la structure Enseignant, on pourra lui faire hériter les champs de la structure Eleve + ajouter un tableau de matricules.
=> On définit une fonction pour chacune des commandes d'Ajout, de Modification, de Suppression et d'Affichage, une fonction pour chaque menu et sous-menu, et on n'oublie pas d'y mettre un retour entier pour détecter les erreurs !
=> Pour les autorisations, cela pourra se faire de plusieurs manières :
===> Soit en ligne de commandes : dans argv[][], dire que le deuxième argument désigne un admin, un élève ou un enseignant. Facile à appliquer mais malheureusement ouvert à l'insécurité
===> Soit en login/password : Un par élève, par enseignant et par admin : Nécessite que cela soit stocké dans un fichier.
=> On n'oublie pas que pour le programme entier, sachant qu'on est en C, on doit définir la taille maximale des conteneurs de structures. Donc, on peut contenir X matières, avoir X enseignants, et X élèves. A voir : Est-ce qu'un élève peut avoir plusieurs enseignants ou non ?
J'espère que cela va t'aider ;)
(Et sinon passer par le Site du Zéro c'est pas mal non plus.
N'oubliez pas le bouton '+' si la réponse vous a aidé !
On commence, comme toujours, par lire la consigne et modéliser.
1°) Nous avons 3 types accès : Administrateur, Enseignant et Etudiant.
Administrateur : Droits totaux sur l'ensemble des Enseignants, Etudiants et matières
Question à se poser : Quels sont ses droits ?
Réponse : En dessous on indique Affichage, Ajout, Modification et Suppression.
Q : Combien de fonctions au total ?
R : 12, 4 par Type.
Enseignant : A des droits de modification sur la gestion des étudiants et matières
Q : Quels sont ses droits ?
R : Au dessus on indique Affichage, Ajout, Modification et Suppression.
Q : Combien de fonctions au total:
R : 8, 4 par type.
Elève : A des droits de consultation
Q : Quels sont ses droits ?
R : Au dessus on déduit qu'il n'a que l'affichage.
Q : Combien de fonctions au total ?
R : 2. De la lecture seulement.
2°) Nous apprenons qu'une matière sera faite de 3 clefs : Code, Titre et Coefficient.
Q : De quels types sont ces trois clefs.
R : Code sera un entier ou une chaîne de caractère, courte de préférence (y'a pas 36000 matières, quoique...). Titre une chaîne de caractères, et Coefficient un flottant.
Nous apprenons qu'un Enseignant est caractérisé par plusieurs champs divers et variés, je pense que ce sera facile de les déterminer. L'enseignant doit avoir également un tableau unidimensionnel dans lequel seront les codes de ses élèves (idéal pour la gestion de ceux-ci).
Nous apprenons qu'un Elève est aussi caractérisé par plusieurs champs divers et variés semblables à ceux de l'Enseignant.
En clair pour le code C :
=> On définit une structure pour chacun des types : Matiere, Enseignant et Eleve. A noter : Pour la structure Enseignant, on pourra lui faire hériter les champs de la structure Eleve + ajouter un tableau de matricules.
=> On définit une fonction pour chacune des commandes d'Ajout, de Modification, de Suppression et d'Affichage, une fonction pour chaque menu et sous-menu, et on n'oublie pas d'y mettre un retour entier pour détecter les erreurs !
=> Pour les autorisations, cela pourra se faire de plusieurs manières :
===> Soit en ligne de commandes : dans argv[][], dire que le deuxième argument désigne un admin, un élève ou un enseignant. Facile à appliquer mais malheureusement ouvert à l'insécurité
===> Soit en login/password : Un par élève, par enseignant et par admin : Nécessite que cela soit stocké dans un fichier.
=> On n'oublie pas que pour le programme entier, sachant qu'on est en C, on doit définir la taille maximale des conteneurs de structures. Donc, on peut contenir X matières, avoir X enseignants, et X élèves. A voir : Est-ce qu'un élève peut avoir plusieurs enseignants ou non ?
J'espère que cela va t'aider ;)
(Et sinon passer par le Site du Zéro c'est pas mal non plus.
N'oubliez pas le bouton '+' si la réponse vous a aidé !
kartrotax
Messages postés
4
Date d'inscription
mercredi 16 mai 2012
Statut
Membre
Dernière intervention
16 mai 2012
16 mai 2012 à 16:19
16 mai 2012 à 16:19
Bon je sais pas pourquoi mais j'avais ecris enormement pour essayer de vous faciliter la comprenhension de ce que jai fais et de faire parvenir qu'est ce que jai realiser et ou je suis bloque jusqu'a present mais ca na pas valider et le texte a disparut bon ... je vais vous copier mon programme jusqu'a maintenant si vous pouvez corriger les gaffes et/ou continuer son ecriture j'en serai reconnaissant! Je sais que dans mon programme j'ai utiliser pleins de fonction juste pour le username et le password... voila le programme merci de votre aide scriptiz et Linukcs! Donc voila:
#include<stdio.h>
#include<string.h>
typedef struct matiere
{
int code;
char titre[30];
int coefficient;
};
typedef struct user
{
char matricule[20];
char username[20];
char password[20];
int id;
};
typedef struct Profiles
{
user users[30];
int nbr;
};
void Sauvegarde(char matricule[20],char username[20],char password[20],char formation[20],int id)
{
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","a");
if(fichier !=NULL)
{
fprintf(fichier,"%s %s %s %s %d\n",matricule,username,password,formation,id);
}
fclose(fichier);
};
void SauvegardeRemplace(char matricule[20],char username[20],char password[20],char formation[20],int id)
{
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","w");
if(fichier !=NULL)
{
fprintf(fichier,"%s %s %s %s %d\n",matricule,username,password,formation,id);
}
fclose(fichier);
};
int verification(char T[])
{
int a=0;
user u1;
int id;
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&u1.matricule,&u1.username,&u1.password,&u1.formation,&u1.id);
if(strcmp(u1.matricule,T)==0)
{
printf("Username existe\n");
a=1;
break;
}
}while(!feof(fichier));
return(a);
}
};
user Identification()
{
user profile,u1;
profile.id=0;
printf("username (Pas d'espaces):");
scanf("%s",&profile.matricule);
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&u1.matricule,&u1.username,&u1.password,&u1.formation,&u1.id);
if(strcmp(u1.matricule,profile.matricule)==0)
{
printf("Password (Pas d'espaces):");
scanf("%s",&profile.password);
profile.id=u1.id;
strcpy(profile.formation,u1.formation);
strcpy(profile.username,u1.username);
while((strcmp(u1.password,profile.password)!=0)&&(profile.password[0]!=' '))
{
printf("Mot de passe invalide,essayer a nouveau ou saisr espace pour quitter\n");
printf("Password(Pas d'espaces):");
scanf("%s",&profile.password);
};
if(profile.password[0]==' ')
profile.id=4;
break;
}
}while(!feof(fichier));
if(profile.id==0)
printf("username invalide!\n");
fclose(fichier);
return(profile);
}
};
Profiles Recuperation(int id)
{
Profiles P;
int i=0;
P.nbr=0;
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&P.users[P.nbr].matricule,&P.users[P.nbr].username,&P.users[P.nbr].password,&P.users[P.nbr].formation,&P.users[P.nbr].id);
if(P.users[P.nbr].id==id)
P.nbr++;
}while(!feof(fichier));
}
return(P);
};
Profiles SupprimerUtilisateur(Profiles P,char matricule[20])
{
for(int i=0;i<P.nbr-1;i++)
{
if(strcmp(P.users[i].matricule,matricule)==0)
{
for(int j=i;j<P.nbr-1;j++)
P.users[j]=P.users[j+1];
P.nbr--;
}
}
if(strcmp(P.users[P.nbr].matricule,matricule)==0)
P.nbr--;
return(P);
};
Profiles ModifierUtilisateur(Profiles P,char matricule[20],char user[20],char password[20],char formation[20])
{
for(int i=0;i<P.nbr;i++)
{
if(strcmp(P.users[i].matricule,matricule)==0)
{
strcpy(P.users[i].password,password);
strcpy(P.users[i].username,user);
strcpy(P.users[i].formation,formation);
}
}
return(P);
};
int UserCheck(char matricule[20],Profiles P)
{
int perm=0,i=0;
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&P.users[i].matricule,&P.users[i].username,&P.users[i].password,&P.users[i].formation,&P.users[i].id);
if(strcmp(P.users[i].matricule,matricule)==0)
perm=1;
i++;
}while(!feof(fichier));
}
return(perm);
}
int UserCheckID(char matricule[20],Profiles P)
{
int perm=0,i=0;
for(i=0;i<P.nbr;i++)
{
if(strcmp(P.users[i].matricule,matricule)==0)
perm=1;
}
return(perm);
};
void MenuAdminEtudiant()
{
Profiles P,X,Y;
int a;
char matricule[20],pass[20],user[20],formation[20];
int id;
do
{
printf(" === MENU Administrateur Gestion des Etudiants ===\n");
printf("1- Ajouter un etudiants\n");
printf("2- Modifier un etudiants\n");
printf("3- Supprimer un etudiants\n");
printf("4- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>4)&&(a<1))
{
printf("Choix non valide, veuillez resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
printf("Veuillez entrez la matricule:");
scanf("%s",&matricule);
printf("Veuillez entrez le username:");
scanf("%s",&user);
printf("Veuillez entrez le mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la formation:");
scanf("%s",&formation);
Sauvegarde(matricule,user,pass,formation,3);
break;
case 2:
P=Recuperation(3);
X=Recuperation(1);
Y=Recuperation(2);
printf("Veuillez entrez la matricule a modifier:");
scanf("%s",&matricule);
while(UserCheckID(matricule,P)==0)
{
printf("User Non Trouve, Veuillez saisir un autre.\n");
scanf("%s",&user);
}
printf("User Trouve!\n");
printf("Veuillez entrez le nouveau username:");
scanf("%s",&user);
printf("Veuillez entrez le nouveau mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la nouvelle formation:");
scanf("%s",&formation);
P=ModifierUtilisateur(P,matricule,user,pass,formation);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=1;i<P.nbr;i++)
Sauvegarde(P.users[i].matricule,P.users[i].username,P.users[i].password,P.users[i].formation,P.users[i].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
break;
case 3:
P=Recuperation(3);
X=Recuperation(1);
Y=Recuperation(2);
printf("Veuillez entrer la matricule a supprimer s.v.p.:");
scanf("%s",&matricule);
while(UserCheckID(matricule,P)==0)
{
printf("Matricule Non Trouve, Veuillez saisir une autre.\n");
scanf("%s",&matricule);
}
printf("User Trouve!\n");
P=SupprimerUtilisateur(P,matricule);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
}
}while(a!=4);
}
void MenuAdminEnseignants()
{
Profiles P,X,Y;
int a;
char formation[20],user[20],pass[20],matricule[20];
int id;
do
{
printf(" === MENU Administrateur Gestion des Enseignants ===\n");
printf("1- Ajouter un enseignants\n");
printf("2- Modifier un enseignants\n");
printf("3- Supprimer un enseignants\n");
printf("4- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>4)&&(a<1))
{
printf("choix non valide, veuille resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
printf("Veuillez entrez le username:");
scanf("%s",&user);
strcpy(matricule,user);
printf("Veuillez entrez le mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la formation:");
scanf("%s",&formation);
Sauvegarde(matricule,user,pass,formation,2);
break;
case 2:
P=Recuperation(2);
X=Recuperation(1);
Y=Recuperation(3);
printf("Veuillez entrez le user a modifier:");
scanf("%s",&matricule);
strcpy(user,matricule);
while(UserCheckID(matricule,P)==0)
{
printf("User Non Trouve, Veuillez saisir un autre.\n");
scanf("%s",&matricule);
strcpy(user,matricule);
}
printf("User Trouve!\n");
printf("Veuillez entrez le nouveau mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la nouvelle formation:");
scanf("%s",&formation);
P=ModifierUtilisateur(P,matricule,user,pass,formation);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=1;i<P.nbr;i++)
Sauvegarde(P.users[i].matricule,P.users[i].username,P.users[i].password,P.users[i].formation,P.users[i].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
break;
case 3:
P=Recuperation(2);
X=Recuperation(1);
Y=Recuperation(3);
printf("Veuillez entrer le user a supprimer s.v.p.:");
scanf("%s",&matricule);
while(UserCheckID(matricule,P)==0)
{
printf("User Non Trouve, Veuillez saisir un autre.\n");
scanf("%s",&matricule);
}
printf("User Trouve!\n");
P=SupprimerUtilisateur(P,matricule);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
}
}while(a!=4);
}
int main()
{
user profile;
Profiles P;
int a;
profile=Identification();
if(profile.id==1)
do
{
printf("\nUser: %s Formation: %s\n\n",profile.username,profile.formation);
printf(" === MENU Administrateur ===\n");
printf("1- Gestion des Formations\n");
printf("2- Gestion des Enseignants\n");
printf("3- Gestion des Etudiants\n");
printf("4- Gestion des Matieres\n");
printf("5- Generer un Carnet d'Appreciation\n");
printf("6- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>6)&&(a<1))
{
printf("choix non valide, veuille resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
break;
case 2:
MenuAdminEnseignants();
break;
case 3:
MenuAdminEtudiant();
break;
}
}while(a!=6);
else
if(profile.id==2)
do
{
printf("\nUser: %s Formation: %s\n\n",profile.username,profile.formation);
printf(" === MENU Enseignant ===\n");
printf("1- Gestion des matieres\n");
printf("2- Gestion des etudiants\n");
printf("3- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>3)&&(a<1));
{
printf("choix non valide, veuille resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
break;
case 2:
MenuAdminEnseignants();
break;
}
}while(a!=3);
}
#include<stdio.h>
#include<string.h>
typedef struct matiere
{
int code;
char titre[30];
int coefficient;
};
typedef struct user
{
char matricule[20];
char username[20];
char password[20];
int id;
};
typedef struct Profiles
{
user users[30];
int nbr;
};
void Sauvegarde(char matricule[20],char username[20],char password[20],char formation[20],int id)
{
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","a");
if(fichier !=NULL)
{
fprintf(fichier,"%s %s %s %s %d\n",matricule,username,password,formation,id);
}
fclose(fichier);
};
void SauvegardeRemplace(char matricule[20],char username[20],char password[20],char formation[20],int id)
{
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","w");
if(fichier !=NULL)
{
fprintf(fichier,"%s %s %s %s %d\n",matricule,username,password,formation,id);
}
fclose(fichier);
};
int verification(char T[])
{
int a=0;
user u1;
int id;
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&u1.matricule,&u1.username,&u1.password,&u1.formation,&u1.id);
if(strcmp(u1.matricule,T)==0)
{
printf("Username existe\n");
a=1;
break;
}
}while(!feof(fichier));
return(a);
}
};
user Identification()
{
user profile,u1;
profile.id=0;
printf("username (Pas d'espaces):");
scanf("%s",&profile.matricule);
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&u1.matricule,&u1.username,&u1.password,&u1.formation,&u1.id);
if(strcmp(u1.matricule,profile.matricule)==0)
{
printf("Password (Pas d'espaces):");
scanf("%s",&profile.password);
profile.id=u1.id;
strcpy(profile.formation,u1.formation);
strcpy(profile.username,u1.username);
while((strcmp(u1.password,profile.password)!=0)&&(profile.password[0]!=' '))
{
printf("Mot de passe invalide,essayer a nouveau ou saisr espace pour quitter\n");
printf("Password(Pas d'espaces):");
scanf("%s",&profile.password);
};
if(profile.password[0]==' ')
profile.id=4;
break;
}
}while(!feof(fichier));
if(profile.id==0)
printf("username invalide!\n");
fclose(fichier);
return(profile);
}
};
Profiles Recuperation(int id)
{
Profiles P;
int i=0;
P.nbr=0;
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&P.users[P.nbr].matricule,&P.users[P.nbr].username,&P.users[P.nbr].password,&P.users[P.nbr].formation,&P.users[P.nbr].id);
if(P.users[P.nbr].id==id)
P.nbr++;
}while(!feof(fichier));
}
return(P);
};
Profiles SupprimerUtilisateur(Profiles P,char matricule[20])
{
for(int i=0;i<P.nbr-1;i++)
{
if(strcmp(P.users[i].matricule,matricule)==0)
{
for(int j=i;j<P.nbr-1;j++)
P.users[j]=P.users[j+1];
P.nbr--;
}
}
if(strcmp(P.users[P.nbr].matricule,matricule)==0)
P.nbr--;
return(P);
};
Profiles ModifierUtilisateur(Profiles P,char matricule[20],char user[20],char password[20],char formation[20])
{
for(int i=0;i<P.nbr;i++)
{
if(strcmp(P.users[i].matricule,matricule)==0)
{
strcpy(P.users[i].password,password);
strcpy(P.users[i].username,user);
strcpy(P.users[i].formation,formation);
}
}
return(P);
};
int UserCheck(char matricule[20],Profiles P)
{
int perm=0,i=0;
FILE*fichier=NULL;
fichier=fopen("C:\\Profiles.txt","r");
if(fichier !=NULL)
{
do{
fscanf(fichier,"%s %s %s %s %d\n",&P.users[i].matricule,&P.users[i].username,&P.users[i].password,&P.users[i].formation,&P.users[i].id);
if(strcmp(P.users[i].matricule,matricule)==0)
perm=1;
i++;
}while(!feof(fichier));
}
return(perm);
}
int UserCheckID(char matricule[20],Profiles P)
{
int perm=0,i=0;
for(i=0;i<P.nbr;i++)
{
if(strcmp(P.users[i].matricule,matricule)==0)
perm=1;
}
return(perm);
};
void MenuAdminEtudiant()
{
Profiles P,X,Y;
int a;
char matricule[20],pass[20],user[20],formation[20];
int id;
do
{
printf(" === MENU Administrateur Gestion des Etudiants ===\n");
printf("1- Ajouter un etudiants\n");
printf("2- Modifier un etudiants\n");
printf("3- Supprimer un etudiants\n");
printf("4- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>4)&&(a<1))
{
printf("Choix non valide, veuillez resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
printf("Veuillez entrez la matricule:");
scanf("%s",&matricule);
printf("Veuillez entrez le username:");
scanf("%s",&user);
printf("Veuillez entrez le mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la formation:");
scanf("%s",&formation);
Sauvegarde(matricule,user,pass,formation,3);
break;
case 2:
P=Recuperation(3);
X=Recuperation(1);
Y=Recuperation(2);
printf("Veuillez entrez la matricule a modifier:");
scanf("%s",&matricule);
while(UserCheckID(matricule,P)==0)
{
printf("User Non Trouve, Veuillez saisir un autre.\n");
scanf("%s",&user);
}
printf("User Trouve!\n");
printf("Veuillez entrez le nouveau username:");
scanf("%s",&user);
printf("Veuillez entrez le nouveau mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la nouvelle formation:");
scanf("%s",&formation);
P=ModifierUtilisateur(P,matricule,user,pass,formation);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=1;i<P.nbr;i++)
Sauvegarde(P.users[i].matricule,P.users[i].username,P.users[i].password,P.users[i].formation,P.users[i].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
break;
case 3:
P=Recuperation(3);
X=Recuperation(1);
Y=Recuperation(2);
printf("Veuillez entrer la matricule a supprimer s.v.p.:");
scanf("%s",&matricule);
while(UserCheckID(matricule,P)==0)
{
printf("Matricule Non Trouve, Veuillez saisir une autre.\n");
scanf("%s",&matricule);
}
printf("User Trouve!\n");
P=SupprimerUtilisateur(P,matricule);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
}
}while(a!=4);
}
void MenuAdminEnseignants()
{
Profiles P,X,Y;
int a;
char formation[20],user[20],pass[20],matricule[20];
int id;
do
{
printf(" === MENU Administrateur Gestion des Enseignants ===\n");
printf("1- Ajouter un enseignants\n");
printf("2- Modifier un enseignants\n");
printf("3- Supprimer un enseignants\n");
printf("4- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>4)&&(a<1))
{
printf("choix non valide, veuille resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
printf("Veuillez entrez le username:");
scanf("%s",&user);
strcpy(matricule,user);
printf("Veuillez entrez le mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la formation:");
scanf("%s",&formation);
Sauvegarde(matricule,user,pass,formation,2);
break;
case 2:
P=Recuperation(2);
X=Recuperation(1);
Y=Recuperation(3);
printf("Veuillez entrez le user a modifier:");
scanf("%s",&matricule);
strcpy(user,matricule);
while(UserCheckID(matricule,P)==0)
{
printf("User Non Trouve, Veuillez saisir un autre.\n");
scanf("%s",&matricule);
strcpy(user,matricule);
}
printf("User Trouve!\n");
printf("Veuillez entrez le nouveau mot de passe:");
scanf("%s",&pass);
printf("Veuillez entrez la nouvelle formation:");
scanf("%s",&formation);
P=ModifierUtilisateur(P,matricule,user,pass,formation);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=1;i<P.nbr;i++)
Sauvegarde(P.users[i].matricule,P.users[i].username,P.users[i].password,P.users[i].formation,P.users[i].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
break;
case 3:
P=Recuperation(2);
X=Recuperation(1);
Y=Recuperation(3);
printf("Veuillez entrer le user a supprimer s.v.p.:");
scanf("%s",&matricule);
while(UserCheckID(matricule,P)==0)
{
printf("User Non Trouve, Veuillez saisir un autre.\n");
scanf("%s",&matricule);
}
printf("User Trouve!\n");
P=SupprimerUtilisateur(P,matricule);
SauvegardeRemplace(P.users[0].matricule,P.users[0].username,P.users[0].password,P.users[0].formation,P.users[0].id);
for(int i=0;i<X.nbr;i++)
Sauvegarde(X.users[i].matricule,X.users[i].username,X.users[i].password,X.users[i].formation,X.users[i].id);
for(int i=0;i<Y.nbr;i++)
Sauvegarde(Y.users[i].matricule,Y.users[i].username,Y.users[i].password,Y.users[i].formation,Y.users[i].id);
}
}while(a!=4);
}
int main()
{
user profile;
Profiles P;
int a;
profile=Identification();
if(profile.id==1)
do
{
printf("\nUser: %s Formation: %s\n\n",profile.username,profile.formation);
printf(" === MENU Administrateur ===\n");
printf("1- Gestion des Formations\n");
printf("2- Gestion des Enseignants\n");
printf("3- Gestion des Etudiants\n");
printf("4- Gestion des Matieres\n");
printf("5- Generer un Carnet d'Appreciation\n");
printf("6- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>6)&&(a<1))
{
printf("choix non valide, veuille resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
break;
case 2:
MenuAdminEnseignants();
break;
case 3:
MenuAdminEtudiant();
break;
}
}while(a!=6);
else
if(profile.id==2)
do
{
printf("\nUser: %s Formation: %s\n\n",profile.username,profile.formation);
printf(" === MENU Enseignant ===\n");
printf("1- Gestion des matieres\n");
printf("2- Gestion des etudiants\n");
printf("3- Quitter\n");
printf("Faites un choix\n");
scanf("%d",&a);
while((a>3)&&(a<1));
{
printf("choix non valide, veuille resaisir:");
scanf("%d",&a);
}
switch(a)
{
case 1:
break;
case 2:
MenuAdminEnseignants();
break;
}
}while(a!=3);
}
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
16 mai 2012 à 15:26
16 mai 2012 à 15:26
Beaucoup de personnes dont moi seraient ravies de t'aider si tu rencontre un problème spécifique lors du codage de ton projet.
Tu dis que tu es arrivé à un blocage, dit nous lequel, explique ce que tu as déjà fait et sur quoi tu bloque et on t'aidera à franchir cette étape.
Car je ne pense pas que quelqu'un réalisera à ta place tout ton projet ;)
Sinon si tu n'y connais rien en C :
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Bonne chance
Tu dis que tu es arrivé à un blocage, dit nous lequel, explique ce que tu as déjà fait et sur quoi tu bloque et on t'aidera à franchir cette étape.
Car je ne pense pas que quelqu'un réalisera à ta place tout ton projet ;)
Sinon si tu n'y connais rien en C :
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Bonne chance