Ejemplifica las pilas en c con el ejemplo de un estacionamiento de una única linea
1.-Pide al usuario ingrese una matricula y la almacenara en una posición de la pila (Estacionamiento)
2.-Muestra la posición de las matriculas en la pila
3.-Al sacar algún elemento de la pila (Matriculas) este mostrara cuantos elementos se tuvieron que sacar antes
Code Functions:
Exemplify the batteries in c with the example of a single-line parking
1.-Ask the user to enter a license plate and store it in a stack position (Parking)
2.-Shows the position of the plates in the stack
3.-When removing some element from the pile (Entries) it will show how many elements had to be removed before
#include stdio.h
#include stdlib.h
#include string.h
#include ctype.h
typedef char placas[30];
typedef struct{
int tope;
placas parking[11];
}struct_pila;
char pop(struct_pila *p,struct_pila *est);
void push(struct_pila *p,char *);
void estacionamiento(struct_pila p);
void posicion(struct_pila p);
int validar_placas(char *);
int main(){
int q,g;
char matricula[7];
int opc;
struct_pila p;
struct_pila est;
est.tope=-1;
p.tope=-1;
while(q!=2){
system("cls");
printf("Estacionamiento \n");
printf("1.- Entrada de vehiculo \n");
printf("2.- Salida de vehiculo \n");
printf("3.- Ver estacionamiento \n");
printf("4.- Salir \n");
printf("Indica la opcion: ");
scanf("%d", &opc);
switch(opc)
{
case 1:system("cls");
printf("Ingrese Matricula del vehiculo ");
printf("Ejemplo: 111ABC \n");
fflush(stdin);
printf("Matricula:");
gets(matricula);
g=validar_placas(&matricula);
if(g==0){
break;
}
push(&p,matricula);
break;
case 2:system("cls");
estacionamiento(p);
posicion(p);
pop(&p,&est);
break;
case 3:system("cls");
estacionamiento(p);
break;
case 4:return 0;
break;
default :
printf("Opcion no valida\n" );
break;
}
printf("\n¿Desea hacer otro movimiento?\n");
printf("1.-si\n");
printf("2.-no\n\n");
printf("Opcion:");
scanf("%d",&q);
}
}
char pop(struct_pila *p,struct_pila *est){
char c1[7];
char sal[7];
int pos,i=0;
int c,w;
printf("\n\nSalida de Automovil\n");
printf("Ingrese la posicion de su Automovil\n");
printf("Posicion:");
scanf("%d",&pos);
w=p->tope;
w=w-1;
if(pos==p->tope){
printf("\nEl auto salio sin tener que mover otro auto\n");
p->tope--;
}
c=p->tope;
pos=pos-1;
while(c!=pos){
est->tope++;
strcpy(est->parking[est->tope],p->parking[p->tope]);
p->tope--;
i++;
c--;
}
i=i-1;
printf("\nSe Movieron %d Automoviles para sacar su auto\n",i);
while(p->tope!=w){
strcpy(p->parking[p->tope],est->parking[est->tope]);
est->tope--;
p->tope++;
}
}
void push(struct_pila *p,char *matricula){
if(p->tope<9 p-="">tope++;
strcpy(p->parking[p->tope],matricula);
printf("\nSe estaciono su Automovil con exito\n");
printf("________________________________________________________\n");
printf("|No. de placas: %s |posicion actual del Automovil: %d |\n",p->parking[p->tope],p->tope);
printf("________________________________________________________\n");
}
else{
printf("\nNo queda espacio en el Estacionamiento\n");
}
}
void estacionamiento(struct_pila p){
int i;
char coche;
int f=-1;
if (p.tope==f)
printf("El Estacionamiento esta vacio.\n\n");
else
{
printf("En el estacionamiento se encuentran los coches:\n\n");
printf("%d \n",p.tope);
printf("_______________________________________________________________\n\n");
while (p.tope!=f)
{
i=p.tope;
printf(" <-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x="">=7){
printf("\nNo es una Matricula valida\n");
printf("Excede el numero maximo de caracteres para una matricula\n");
printf("Vea el ejemplo de Matricula\n");
return 0;
}
printf("\nMatricula Valida \n");
return 1;
}-->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
<9 p-=""><-- actual="" automovil:="" char="" coche="" d="" de="" del="" else="" esta="" estacionamiento="" f="" hx="x/2;" i="0,l,k;" if="" int="" l="" mat="" n="" n_____________________________________________________________="" o.="" p.parking="" p.tope--="" p.tope="" p="" placa="" placas:="" posicion="" printf="" s="" strcpy="" struct_pila="" vacio.="" validar_placas="" void="" while="" x=""> -->9>
0 comentarios:
Publicar un comentario