TD 3 AAZDAG ABDELLAH

Telechargé par ABDELLAH AAZDAG
Nom et Prenom
AAZDAG ABDELLAH
Filiére
SMI-S4
CNE
D139159750
Apogee
21036295
Exercice 1 :
Le code source :
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef struct personne
{
char nom[20];
char prenom[20];
int age;
struct personne * suiv;
}personne;
personne * Inialiser (){
return NULL;
}
void Acher(struct personne *tete)
{int i=0;
personne *temp=tete;
prin("\t\t******************************************************\n");
while (temp != NULL)
{
prin("\n\t\t_________________ personne number %d ___________________\n",i++);
prin("\t\t Nom: %s\t Prenom: %s\t Age: %d an(s)\n",temp->nom,temp->prenom,temp->age);
temp = temp->suiv;
prin("\n\t\t___________________________________________________________\n");
}
prin("\t\t******************************************************\n");
}
personne *insert_debut(personne *tete)
{
personne *element=malloc(sizeof(personne));
if (element==NULL){
prin(" Allocaon échouée");
exit(1);
}
TD3 – SRUCTURE DE DONNEE
prin("\n saisir le nom :");
scanf("%s",element->nom);
prin("\n saisir Prenom :");
scanf("%s",element->prenom);
prin("saisir l age :");
scanf("%d",&element->age);
element->suiv=tete;
tete=element;
return tete;
}
personne * insert_n(personne* tete){
personne*P =tete;
if (tete==NULL){
tete=insert_debut(tete);}
else{
personne *element=malloc(sizeof(personne));
if (element==NULL)
{
prin("pas d espace memoire !!");
exit(1);
}
while(P->suiv!=NULL){
P= P->suiv;
}
prin("\n saisir le nom :");
scanf("%s",element->nom);
prin("\n saisir Prenom :");
scanf("%s",element->prenom);
prin("saisir l age :");
scanf("%d",&element->age);
P->suiv=element;
element->suiv=NULL;
}
return tete;
}
personne * insert_posion(personne *tete,int n){
personne *element=malloc(sizeof(personne));
personne *P=tete;
personne *tmp=NULL;
int i=1;
if(element==NULL){exit(1);}
if (tete==NULL||n==0)
{
return insert_debut(tete);
}
else
{
prin("\n saisir le nom : ");
scanf("%s",element->nom);
prin("\n saisir Prenom : ");
scanf("%s",element->prenom);
prin("saisir l age : ");
scanf("%d",&element->age);
while((i<n)||(P->suiv==NULL)){
P=P->suiv;
i++;
}
tmp=P->suiv;
P->suiv=element;
element->suiv=tmp;
return tete;
}}
/* Chercher dans la liste */
int Chercher(personne *tete,char *nom)
{
int pos= -1;
personne *temp=tete;
while (temp != NULL)
{
pos++;
if (strcmp(temp->nom,nom)==0)
{
return pos;
}
temp=temp->suiv;
}
return pos;
}
/*Supprimer un élément de la liste*/
personne *Suppression(personne *tete,char nom[50])
{
personne *P = tete;
personne *Psuiv = tete->suiv;
int pos = Chercher(tete, nom);
if(pos == -1)
{
prin(" L'élément à supprimer n'est pas dans laliste");
return tete;
}
else if(pos == 0)
{
free(P);
return Psuiv;
}
else {
int i = 1;
while (i < pos )
{
P = Psuiv;
Psuiv = Psuiv->suiv;
i++;
}
P->suiv = Psuiv->suiv;
free (Psuiv);
return tete;
}
}
void Modicaon(personne *tete,char nom[50])
{
int pos = Chercher(tete,nom);
if ( pos == -1)
{
prin("L'élément que vous cherchez n'est pas dans la liste");
}
else
{
personne *temp=tete;
while( temp != NULL)
{
if(strcmp(temp->nom,nom)==0 )
{
prin("\n saisir le nom : ");
scanf("%s",temp->nom);
prin("\n saisir Prenom : ");
scanf("%s",temp->prenom);
prin("saisir l age : ");
scanf("%d",&temp->age);
}
temp=temp->suiv;
}
}
}
void menu()
{
/*Le menu */
system("cls");
prin("\n\t\t****************************************************\n");
prin("\t\t** Programme qui permet de geree une liste chainee**\n");
prin("\t\t****____________________________________________****\n\n");
prin("\t\t\t fait par AAZDAG ABDELLAH \n");
prin("\t\t****____________________________________________****\n");
prin("\t\t\t\t## MENU ##\n\n\n");
prin("\t\t\tchoix 1-Inserer un element au debut\n");
prin("\t\t\tchoix 2-Inserer un element devant une posion\n");
prin("\t\t\tchoix 3-Inserer un element a la n de la liste\n");
prin("\t\t\tchoix 4-Chercher un element donne\n");
prin("\t\t\tchoix 5-Supprimer un element donne\n");
prin("\t\t\tchoix 6-Modier un element donne\n");
prin("\t\t\tchoix 7-Acher la liste\n");
prin("\t\t\tchoix 8-Quier le programme\n");
prin("\t\t****************************************************\n\n\n");
}
int main()
{
char nom[50];
int posion;
/*Inialiser la liste */
personne * tete = Inialiser();
char choix;
do{
menu();
prin("\t\t Entrer votre choix : ");
choix = getchar();
switch(choix)
{
case '1' :
tete = insert_debut(tete);
break;
case '2' :
prin("Entrer une posion : ");
scanf("%d",&posion);
tete =insert_posion(tete,posion);
break;
case '3' :
tete = insert_n(tete);
break;
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !