1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct droit droit;
struct droit
{
int code;
char categorie[30];
char description[30];
char dateattribution[30];
struct droit *nxt;
};
typedef droit* listdroit;
typedef struct utilisateur utilisateur;
struct utilisateur
{
int cin;
char nom[30];
char prenom[30];
char datenaissance[30];
listdroit droits;
struct utilisateur *nxt;
};
typedef utilisateur* listutilisateur;
typedef struct groupe groupe;
struct groupe
{
int numero;
char nom[30];
char datecreation[30];
listutilisateur users;
struct groupe *nxt;
};
typedef groupe* listgroupe;
listgroupe ajouterdebut(listgroupe liste, int num,char nom[30], char date[30])
{
groupe* nouvelElement = (groupe*)malloc(sizeof(groupe));
nouvelElement->numero = num;
strcpy(nouvelElement->nom, nom);
strcpy(nouvelElement->datecreation, date);
nouvelElement->nxt = liste;
return nouvelElement;
}
int affichermenu(void){
int rep;
printf("Votre choix : ");
scanf("%i",&rep);
printf("votre choix saisie est : %d \n",rep);
return rep;
}
void afficherListe(listgroupe liste)
{
groupe *tmp = liste;
while(tmp != NULL)
{
printf("Numero : %d \n", tmp->numero);
printf("Nom : %s \n", tmp->nom);
printf("Date creation : %s \n", tmp->datecreation);
tmp = tmp->nxt;
}
}
listgroupe modifier(listgroupe liste, int valeur)
{ int num;
char nom[30];
char date[30];
groupe *tmp=liste;
/* Tant que l'on n'est pas au bout de la liste */
while(tmp != NULL)
{printf("le numero dans la liste est %i \n",tmp->numero);
printf("le numero saisie est %i \n",valeur);
if(tmp->numero == valeur)
{
/* Si l'élément a la valeur recherchée, on renvoie son adresse */
printf("trouve");
printf("donner le nouveau numero du groupe:");scanf("%i",&num);
printf("donner le nouveau nom du groupe:");scanf("%s",nom);
printf("donner la nouvelle date de creation du groupe:");scanf("%s",date);
liste->numero = num;
strcpy(liste->nom, nom);
strcpy(liste->datecreation, date);
return tmp;
}
tmp = tmp->nxt;
}
return NULL;
}
int main()
{int rep;
listgroupe ma_liste2 = NULL;
printf("---Menu---\n\n");
printf("Gestion des droits d'acces \n\n");
printf("1-ajouter un droit d'acces \n\n");
printf("2-Modifier un droit d'acces \n\n");
printf("3-Supprimer un droit d'acces \n\n");
printf("Gestion des utilisateurs \n\n");
printf("4-Ajouter un utilisateur a un groupe \n\n");
printf("5-Affichler liste utilisateurs/groupe \n\n");
printf("6-Supprimer un utilisateur d'un groupe \n\n");
printf("7-Supprimer un utilisateur de tous les groupes \n\n");
printf("Gestion des Groupes \n\n");
printf("8-Ajouter un groupe d'utilisateur \n\n");
printf("9-Modifier un groupe \n\n");
printf("10-Supprimer un groupe \n\n");
printf("11- Afficher les groupes \n\n");
printf("12-Quitter \n\n");
do{
switch(affichermenu())
{
case 8:{
printf("vous avez choisis ajouter un groupe \n");
int num;
char nom[30];
char date[30];
printf("donner le numero du groupe:");scanf("%i",&num);
printf("donner le nom du groupe:");scanf("%s",nom);
printf("donner la date ce creation du groupe:");scanf("%s",date);
ma_liste2=ajouterdebut(ma_liste2,num,nom,date);
while ((rep = getchar ()) != '\n' && rep != EOF);
break;
}
case 9:{ int numr;
while ((numr = getchar ()) != '\n' && numr != EOF);
printf("donner le numero de groupe a modifier :");
scanf("$i",&numr);
printf("le numero saisie est : %i \n",numr);
modifier(ma_liste2,numr);
break;
}
case 11:{
printf("affichage de la liste des groupes \n");
afficherListe(ma_liste2);
while ((rep = getchar ()) != '\n' && rep != EOF);
break;
}
default:printf("choix invalide");
while ((rep = getchar ()) != '\n' && rep != EOF);
affichermenu();
break;
}
}while(rep!=11);
return 0;
} |
Partager