Académique Documents
Professionnel Documents
Culture Documents
h"
int main()
FILE*fichier=fopen("historique.txt","w");
tete= NULL;
int choix,num,res ;
char a[10];
char b[10];
char c[10];
char d[10];
char e[10];
do
choix=menu ();
switch (choix)
case 1 :
saisieWagon(&w,tete,w2);
tete=ajoutLoc(tete,w);
fichier=fopen("historique.txt","a");
break ;
case 2 :
affiche(tete);
break;
case 3 :
//saisie numero
scanf("%d",&num);
//recherche
res=rechercher(tete,num,&w2);
//resultat
if (res==0)
else
if (w2.etat==0)
else
if(w2.type==1)
else
printf("|| Type: Locomotive.\n");
}//fin else
break ;
case 4 :
tete=supprimer(tete);
fichier=fopen("historique.txt","a");
fclose(fichier);
break;
case 5 :
//SAISIE
do
scanf("%d",&num);
while(rechercher(tete,num,&w2)==0);
saisieWagon(&w,tete,w2);
ajoutWag(tete,num,w);
fichier=fopen("historique.txt","a");
fprintf(fichier,"Un Ajout A Ete Effectue\n");
fclose(fichier);
break;
case 6:
libererWagon(tete);
break;
case 7:
fichier=fopen("historique.txt","r");
while(!feof(fichier))
fscanf(fichier,"%s %s %s %s %s\n",a,b,c,d,e);
printf("%s %s %s %s %s\n",a,b,c,d,e);
fclose(fichier);
break;
}//FIN switch
while(choix!=0);
return 0;
}
#include "header.h"
int menu()
//DEB menu
int choix ;
do
printf("*********************************************\n");
printf("2-Afficher Le Train.\n");
printf("3-Rechercher Un Wagon.\n");
printf("4-Supprimer Un Wagon.\n");
printf("7-Afficher L'Historique.\n");
printf("*********************************************\n");
printf("Choix: ");
scanf("%d",&choix);
while((choix<0)||(choix>7));
return (choix);
}//FIN menu
//DEB saisie
int a=0;
do
scanf("%d",&(*w).numero);
if (tete!=NULL)
a=rechercher(tete,(*w).numero,&w2);
while(a==1);
do
printf("Choix: ");
scanf("%d",&(*w).type);
}
while(((*w).type<0 )|((*w).type>1));
do
printf("Choix: ");
scanf("%d",&(*w).etat);
while(((*w).etat<0 )|((*w).etat>1));
}//FIN saisie
//DEB ajout
Loc-> suivant=NULL;
if(w.type==0)
if(tete==NULL)
tete=Loc;
else
Loc->suivant=tete;
tete=Loc;
if(w.type==1)
//ajout en queue
if (tete==NULL)
tete=Loc;
else
{
while(parc->suivant!=NULL)
parc=parc->suivant;
parc->suivant=Loc;
}//fin else
}//fin if
return (tete) ;
}//FIN ajout
//DEB affiche
struct Cellule *parc=tete;
while (parc!=NULL)
printf("\n");
if (parc->w.etat==0)
else
if(parc->w.type==0)
else
}//FIN while
//DEB recherche
int res;
res=0;
while((parc->suivant!=NULL)&&(parc->w.numero!=num))
parc=parc->suivant;
}//fin while
if (parc->w.numero==num)
res=1;
(*w2)=parc->w;
}//fin if
return(res);
}//FIN recherche
train supprimer(train tete)
//DEB supprimer
struct Cellule * q;
int verif;
do
verif=0;
q=p->suivant;
if (p->w.etat==0)
tete=q;
while((q->suivant!=NULL)&&(q->w.etat!=0))
p=p->suivant;
q=q->suivant;
if (q->w.etat==0)
p->suivant=q->suivant;
free(q);
parc=tete;
while((parc->suivant!=NULL)&&(parc->w.etat!=0))
parc=parc->suivant;
}//fin while
if (parc->w.etat==0)
verif=1;
while(verif==1);
return tete;
}//FIN supprimer
void ajoutWag(train tete,int num, wagon w)
//DEB ajout
Loc-> w = w;
Loc-> suivant=NULL;
while((parc->suivant!=NULL)&&(parc->w.numero!=num))
parc=parc->suivant;
if (parc->w.numero==num)
Loc->suivant=parc->suivant;
parc->suivant=Loc;
}//FIN AJOUT
void libererWagon(train tete)
//DEB liberer
struct Cellule* p;
while(tete!=NULL);
printf("a1\n");
p=tete;
printf("a2\n");
tete=tete->suivant;
printf("a3\n");
free(p);
printf("a4\n");
}//FIN libere
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
typedef struct
int numero;
int type;
int etat;
} wagon ;
wagon w ;
}*train;
train tete ;
wagon w ;
wagon w2 ;
#endif // HEADER_H_INCLUDED