hola ee les quisiera pedir su ayuda para realizar los submenus osea = se q tengo la media embarra en el codigo pero quiero saber como hago los submenus, lo otro yo lo corrijo no se preocupen xD
Realiza un programa menú que permita realizar opciones trabajando con 2 Pilas y 2 Colas listas.
La información que tiene cada nodo de las listas es la siguiente:
código de carrera: entero
nombre de la carrrera: 30 caracteres
número de semestres: entero
Menú de opciones:
1. Trabajando con Pilas
2. Trabajando con Filas o colas
3. Sacar nodo de la segunda Pila e insertar en la Primera Cola.
4. Sacar nodo de la segunada cola e insertar en la primera Pila.
5. Todos los nodos de la Primera pila agregar a la Primera Cola.
Para las opciones 1 y 2 debe realizar un submenú con las siguientes opciones.
Para opción 1.
1. Insertar nodos a la Primera Pila
2. Eliminar nodo en Primera Pila
3. Listar nodos Primera Pila.
4. Insertar nodos a la segunda Pila
5. Eliminar nodo en segunda Pila
6. Listar nodos segunda Pila.
Para opción 2
1. Insertar nodos a la Primera cola
2. Eliminar nodo en Primera cola
3. Listar nodos Primera cola.
4. Insertar nodos a la segunda cola
5. Eliminar nodo en segunda cola
6. Listar nodos segunda cola.
Para las opciones 3., 4., 5. y 6., usted debe llamar a los módulos de manejo de las listas en las funciones correspondientes.
Los algoritmos deben estar codificados en funciones con paso de parámetro.
(Ejemplo: Para insertar en pila debe ser una sola función para las 2 pilas pedidas; debe pasar parámetros para saber a cual se le agregará nodo…… esto es ig
Código c++:
Ver original#include <stdio.h>
#include <conio.h>
struct pila
{
int cdo;
char nombre[20];
int nusem;
};
int tope,s,izq,dere,pil[10],pil2[10];
pila nod[10];
void crearpila( int &tope, int &maxpila, int &s)
{
do
{
printf("\n ingrese el maximo de la pila :"); }while((maxpila<=0 || maxpila>=11-1));
tope=0;
s=1;
printf("\n ambas pilas creadas "); }
void insertarnodos( int &tope, int &maxpila, int &s)
{
if(s==1)
{
if(tope==max)
printf("\n overflow, pila llena :"); else
{
tope=tope+1;
pil[tope]=nod.nodo;
}
}
else printf(" pila no creada "); }
void borrar( int &tope, int &maxpila, int&s)
{
if(s==1)
{
if(tope==0)
printf(" underflow,plila vacia :"); else
{
nodo=pila[tope];
tope=tope-1;
}
}
else printf(" pila no creada \n"); }
void listar( int &tope, int & maxpila, int &s)
{
if(s==1)
if(tope==0)
printf("\n underflow, pila vacia"); else
for(i=1;i<=tope;i++)
else printf("pila no creada\n"); }
int cola[9],maxcola,dere,izq,s1,nodo,i,j,k,n;
void crear()
{
do
{
printf("\n ingresar valor :"); }while((maxcola<=0 || maxcola>=9-1));
izq=0;
dere=0;
s1=1;
}
void corremiento()
{
if(s1==1)
{
k=izq+1;
n=dere-izq;
for(j=0;j<=n;j++)
{
cola[i]=cola[k];
k++;
}
izq=0;
dere=n;
}
else printf("cola no creada\n"); }
void insertar()
{
if(s1==1)
if(dere==maxcola)
if(izq==0)
printf("\n overflow, cola llena"); else{//llamada a una funcion corremiento de cola no se como se hace
corremiento();
dere++;
cola[dere]=nodo;
}
else{
dere++;
cola[dere]=nodo;
}
else printf("\n cola no creada"); }
void eliminar()
{
if(s1==1)
{
if(izq==dere)
printf("\n underflow, cola vacia"); else
{
nodo=cola[izq+1];
izq=izq+1;
}
}
else printf("cola no creada \n"); }
void listar()
{
if(s1==1)
{
if(izq==dere)
{
printf("\n underflow,cola vacia"); }
else
{
for(i=izq+1;i<=dere;i++)
}
}
else printf("\n cola no creada"); }
void menu()
{
printf("1)trabajando con pilas\n"); printf("2)trabajando con colas\n"); printf("3)sacar nodo de la segunda pila e insertar en la primera cola\n"); printf("4)sacar nodo de la segunda cola e insertar en la primera pila \n"); printf("5)todos los nodos de la primera pila agregar a la primera cola\n"); }
switch(op)
{ case 1 : crearpila(tope1,maxpila1,s1);
printf("\n insertar nodos en la primera pila : "); printf("\n eliminar nodo en la primera pila : "); printf("\n listar nodo en la primera pila :"); printf("\n inserttar nodo en la segunda pila :"); printf("\n eliminar nodos en la segunda pila :"); printf("\n listar nodos en la segunda pila :"); break;
case 2 : crearpila(tope2,maxpila2,s2);
printf("\n insertar nodos en la primera pila : "); printf("\n eliminar nodo en la primera pila : "); printf("\n listar nodo en la primera pila :"); printf("\n inserttar nodo en la segunda pila :"); printf("\n eliminar nodos en la segunda pila :"); printf("\n listar nodos en la segunda pila ");
break;
case 3 : insertarnodo(tope1,maxpila1,s1);
break;
case 4 : insertarnodo(tope2,maxpila2,s2);
printf("\n insertar nodos en la primera pila : "); printf("\n eliminar nodo en la primera pila : "); printf("\n listar nodo en la primera pila :"); printf("\n inserttar nodo en la segunda pila :"); printf("\n eliminar nodos en la segunda pila :"); printf("\n listar nodos en la segunda pila :"); break;
case 5 : eliminarnodo(tope1,maxpila1,s1,nodo1);
printf("\n insertar nodos en la primera pila : "); printf("\n eliminar nodo en la primera pila : "); printf("\n listar nodo en la primera pila :"); printf("\n inserttar nodo en la segunda pila :"); printf("\n eliminar nodos en la segunda pila :"); printf("\n listar nodos en la segunda pila :"); break;
case 6 : eliminarnodo(tope2,maxpila2,s2,nodo2);
printf("\n insertar nodos en la primera pila : "); printf("\n eliminar nodo en la primera pila : "); printf("\n listar nodo en la primera pila :"); printf("\n inserttar nodo en la segunda pila :"); printf("\n eliminar nodos en la segunda pila :"); printf("\n listar nodos en la segunda pila :"); break;
case 7 : listarnodo(tope1,maxpila1,s1,nodo1);
printf("\n insertar nodos en la primera pila : "); printf("\n eliminar nodo en la primera pila : "); printf("\n listar nodo en la primera pila :"); printf("\n inserttar nodo en la segunda pila :"); printf("\n eliminar nodos en la segunda pila :"); printf("\n listar nodos en la segunda pila :"); break;
case 8 : listarnodo(tope2,maxpila2,s2,nodo2);
break;
case 9 : crearcola(tope1,maxpila1,s1,nodo1);
printf("\n insertar nodos en la primera cola "); printf("\n eliminar nodos en la primera cola "); printf("\n listar nodos en la primera cola "); printf("\n insertar nodos a la segunda cola "); printf("\n eliminar nodos en la segunda cola "); printf("\n listar nodos en la segunda cola ");
break;
case 10 : crearcola(tope2,maxpila2,s2,nodo2);
printf("\n insertar nodos en la primera cola "); printf("\n eliminar nodos en la primera cola "); printf("\n listar nodos en la primera cola "); printf("\n insertar nodos a la segunda cola "); printf("\n eliminar nodos en la segunda cola "); printf("\n listar nodos en la segunda cola ");
break;
case 11 : corremiento(tope1,maxpila1,s1,nodo1);
printf("\n insertar nodos en la primera cola "); printf("\n eliminar nodos en la primera cola "); printf("\n listar nodos en la primera cola "); printf("\n insertar nodos a la segunda cola "); printf("\n eliminar nodos en la segunda cola "); printf("\n listar nodos en la segunda cola ");
break;
case 12 : corremiento(tope2,maxpila2,s2,nodo2);
printf("\n insertar nodos en la primera cola "); printf("\n eliminar nodos en la primera cola "); printf("\n listar nodos en la primera cola "); printf("\n insertar nodos a la segunda cola "); printf("\n eliminar nodos en la segunda cola "); printf("\n listar nodos en la segunda cola ");
break;
case 13 : insertarncola(tope1,maxpila1,s1);
printf("\n insertar nodos en la primera cola "); printf("\n eliminar nodos en la primera cola "); printf("\n listar nodos en la primera cola "); printf("\n insertar nodos a la segunda cola "); printf("\n eliminar nodos en la segunda cola "); printf("\n listar nodos en la segunda cola ");
break;
case 14 : insertarncola(tope2,maxpila2,s2);break;
printf("\n insertar nodos en la primera cola "); printf("\n eliminar nodos en la primera cola "); printf("\n listar nodos en la primera cola "); printf("\n insertar nodos a la segunda cola "); printf("\n eliminar nodos en la segunda cola "); printf("\n listar nodos en la segunda cola ");
case 15 : eliminarncola(tope1,maxpila1,s1);
printf("\n insertar nodos en la primera cola "); printf("\n eliminar nodos en la primera cola "); printf("\n listar nodos en la primera cola "); printf("\n insertar nodos a la segunda cola "); printf("\n eliminar nodos en la segunda cola "); printf("\n listar nodos en la segunda cola ");
break;
case 16 : eliminarncola(tope2,maxpila2,s2);
break;
case 17 : listarncola(tope1,maxpila1,s1);
}
esta es como la idea q tengo pero toi confundido. desd ya agradesco su ayuda :)