void liste_att (info_att *&att,char nom[50], int place, int rang, int &na)
{
if (na==0)
{
deb=new info_att;
att=deb;
}
else
{
att=deb;
while (att->suiv!=NULL)
{ att=att->suiv; }
att->suiv=new info_att;
att=att->suiv;
}
strcpy(att->nom,nom);
att->place=place;
att->rang=rang;
att->suiv=NULL;
na++;
color(15,15);printf("\n\n ");color(0,0);printf("_________________________________________\n");
color(15,15);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||");color(7,7);printf(" \n");
color(15,15);printf(" ");color(0,0);printf("||");color(12,0);printf(" Mise en attente ");color(0,0);printf("||");color(7,7);printf(" \n");
color(15,15);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||");color(7,7);printf(" \n");
color(15,15);printf(" ");color(0,0);printf("_________________________________________");color(15,15);color(7,7);printf(" \n");
color(15,15);printf(" ");color(7,7);printf("_________________________________________\n\n\n");color(15,15);
}
void reservation(tableau &tab, info_reserv *&res, info_att *att, int place, int nbrs_rang, int rang, int nbrs_place, char nom[50], int &nr, int na)
{
int p_place,d_place,pl=0,j=1,i,c;
bool vide =false;
time_t now;
while (vide==false && j<=place)
{
if (tab[rang][j]==0) pl++;
else if (pl<nbrs_place) pl=0;
else if (pl>=nbrs_place) vide=true;
j++;
}
if (vide==true || pl>=nbrs_place)
{
p_place=j - pl;
d_place=p_place + nbrs_place - 1;
for (j=p_place;j<=d_place;j++) tab[rang][j]=1;
{
if (nr==0)
{
tete=new info_reserv;
res=tete;
strcpy(res->nom,nom);
}
else
{
res=tete;
while (res->suiv!=NULL)
{ res=res->suiv; }
res->suiv=new info_reserv;
res=res->suiv;
strcpy(res->nom,nom);
}
res->rang=rang;
res->p_place=p_place;
res->d_place=d_place;
res->suiv=NULL;
nr++;
system("CLS");
deco();
color(15,15);printf("\n\n ");color(0,0);printf("__________________________________________\n");
color(15,15);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||");color(7,7);printf(" \n");
color(15,15);printf(" ");color(0,0);printf("||");color(12,0);printf(" Merci pour votre reservation ");color(0,0);printf("||");color(7,7);printf(" \n");
color(15,15);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||");color(7,7);printf(" \n");
color(15,15);printf(" ");color(0,0);printf("__________________________________________");color(15,15);color(7,7);printf(" \n");
color(15,15);printf(" ");color(7,7);printf("__________________________________________\n\n\n");color(1,15);
}
}
else
{
system("CLS");
deco();
color(15,15);printf("\n\n ");color(7,7);printf("__________________________________________________\n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf("__________________________________________________\n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf("||");color(12,0);printf(" Rangee pleine, plus de places libres ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(7,7);color(0,0);printf("__________________________________________________\n\n\n");color(1,15);
color(1,15);
cout<<" Dans les rangees suivantes se trouve des places libres : ";cout<<"\n\n ";
for (i=1;i<=nbrs_rang;i++)
{
cout< Reservation d'une place ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(0,0);printf("||");color(9,7);printf(" 2 ==> Liste d'attente ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(0,0);printf("||");color(7,7);printf(" ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(0,0);printf(" ");color(1,15);printf(" \n\n");
while (c!=1 && c!=2)
{
{
cout<<" Votre Choix : ";
color(12,15);cin>>c;color(1,15);
}
switch(c)
{
case 1 : system("CLS");
deco();
do
{
cout<<" Entrer le numero de la rangee : ";
color(12,15);cin>>rang;color(1,15);
cout<<" Entrer le nombres de places : ";
color(12,15);cin>>nbrs_place;color(1,15);
}
while (rang>nbrs_rang);
reservation(tab,res,att,place,nbrs_rang,rang,nbrs_place,nom,nr,na);
break ;
}
else if (del!=true)
{
color(0,15);cout<<endl<<" Le client ";color(12,15);cout<<nom;color(0,15);cout<<" n'existe pas dans la liste des reservations \n\n";
}
}
if(deb==NULL)
{
color(15,15);printf("\n\n ");color(7,7);printf(" \n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf(" \n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf("||");color(12,0);printf(" Liste d'attente vide ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(7,7);printf(" ");color(0,0);printf("||");color(0,0);printf(" ");color(0,0);printf("||\n");
color(15,15);printf(" ");color(0,0);printf(" \n\n\n");color(15,15);
}
else
{
s=deb;
if(strcmp(s->nom,nom)==0)
{
deb=deb->suiv;
delete s;
delatt=true;
}
else
{
while(!(strcmp(s->nom,nom)==0)&&(s->suiv!=NULL))
{
sp=s;
s=s->suiv;
}
if(strcmp(s->nom,nom)==0)
{
sp->suiv=s->suiv;
delete s;
delatt=true;
}
}
if(delatt!=false)
{
color(0,15);printf("\n Le client ");color(12,15);cout<<nom;color(0,15);printf(" vient d'etre supprime de la liste des attentes \n\n");color(15,15);
}
}
}
int main(int argc, char *argv[] )
{
tableau tab;
info_reserv *res;
info_att *att;
int nbrs_rang, place, c=0, rang, nbrs_place, nr=0, na=0, i, j;
char nom[50];
system("COLOR f1");
time_t now;
deco();
nbrs_rang=20;
place=50;
for (i=1;i<=nbrs_rang;i++);
for (j=1;j<=place;j++);
tab[i][j]=0;
while (c!=5)
{
{
printf("\n ");color(0,0);printf("__________________________________________________________________\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("||");color(7,7);printf(" ");color(0,0);printf("||\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("||");color(9,7);printf(" 1 ==> Reservation d'une place ");color(0,0);printf("||\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("||");color(9,7);printf(" 2 ==> Afficher les places reserve et la liste d'attente ");color(0,0);printf("||\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("||");color(9,7);printf(" 3 ==> Aficher la salle ");color(0,0);printf("||\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("||");color(9,7);printf(" 4 ==> Anuller une reservation ");color(0,0);printf("||\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("||");color(9,7);printf(" 5 ==> Quitter ");color(0,0);printf("||\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("||");color(7,7);printf(" ");color(0,0);printf("||\n");color(15,15);
color(15,15);printf(" ");color(0,0);printf("__________________________________________________________________\n");color(1,15);
cout<<"\n Votre choix : ";
color(12,15);cin>>c;color(1,15);
}
switch(c)
{
case 1 : system("CLS");
deco();
cout<<" Entrer le nom : ";
color(12,15);cin>>nom;color(1,15);
do
{
cout<<" Entrer le numero de la rangee : ";
color(12,15);cin>>rang;color(1,15);
}
while (rang>nbrs_rang);
do
{
cout<<" Entrer le nombres de places : ";
color(12,15);cin>>nbrs_place;color(1,15);
}
while (nbrs_place>place);
reservation(tab,res,att,place,nbrs_rang,rang,nbrs_place,nom,nr,na);
break;
case 2 : system("CLS");
time_t now;
deco();
relever (res,att);
break;
case 3 : system("CLS");
deco();
affi(tab);
break;
case 4 : system("CLS");
deco();
suppression (tab);
break ;