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
| #include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
// declaration des structures ;
typedef struct etudiant{
char nom[30] ;
char prenom[30] ;
int age ;
int note ;
}etudiant ;
typedef struct element{
etudiant val ;
struct element *next ;
struct element *precedent ;
}element ;
// fonction d'ajout d'un seul element
element *ajout(){
element *l ;
l=(element *)malloc(sizeof(element));
printf("\n");
printf("****..entrez le nom de cet etudiant..****");
scanf("%s",l->val.nom) ;
printf("\n");
printf("****..entrez le prenom de cet etudiant..****");
scanf("%s",l->val.prenom);
printf("\n");
printf("****..entrez l'age de cet etudiant..****");
scanf("%d",&l->val.age);
printf("\n");
printf("****..entrez la note de cet etudiant..****");
scanf("%d",&l->val.note);
return l ;
}
// fonction de remplissage
element *remplissage(){
element *l , *p , *s ;
int i , n ;
printf("\n");
printf("****..entrez le nombre d'etudiants..****");
scanf("%d",&n);
l=ajout();
l->precedent=NULL ;
l->next=NULL ;
s=l ;
for(i=0 ; i<n-1 ; i++)
{
p=ajout();
s->next=p ;
p->precedent=s ;
p->next=NULL ;
s=s->next ;
}
return l ;
}
element *suppression(element *l){
element *p , *s ;
int x ;
char nnom[30] ;
printf("\n");
printf("press sur 1 pour supprimer le premier etudiant de la liste ");
printf("\n");
printf("press sur 2 pour supprimer un etudiant au milieu de la liste ");
printf("\n");
printf("press sur 3 pour supprimer un etudiant a la fin de la liste ");
printf("\n");
printf("****//entrez votre choix\\****");
scanf("%d",&x);
printf("\n");
switch(x){
case 1:
s=l->next ;
free(l);
l=s ;
l->precedent=NULL ;
break ;
case 2:
printf("***// quel etudiant voulez vous supprimer (entrez son nom) \\***");
scanf("%s",nnom);
p=l ;
while(p!=NULL)
{
if(strcmp(p->next->val.nom , nnom)==0)
{
break ;
}
p=p->next ;
}
s=p->next->next ;
free(p->next);
p->next=s ;
s->precedent=p ;
break ;
case 3:
p=l ;
while(p->next!=NULL)
{
p=p->next ;
}
s=p->precedent ;
free(p);
s->next=NULL ;
break ;
}
return l ;
}
//fonction pour l'affichage
void affichage (element *l){
element *p ;
p=l ;
while(p!=NULL)
{
printf("\n");
printf("le nom de l'etudiant est %s", p->val.nom);
printf("\n");
printf("le prenom de l'etudiant est %s", p->val.prenom);
printf("\n");
printf("l'age de l'etudiant est %d", p->val.age);
printf("\n");
printf("la note de l'etudiant est %d", p->val.note);
printf("\n");
p=p->next ;
}
}
int main(){
element *l ;
l=remplissage();
l=suppression(l);
affichage(l);
getch();
} |
Partager