Buen dia espero que me puedan ayudar
en clases realizamos las siguientes estructuras pila, listas y suma, ahora como ultimo necesito que se haga un menu en donde yo pueda eligir estas 3 operaciones que les acabo de mencionar y claro que se ejecute, los codigos de las operaciones ya los tengo pero no se como hacer el menu y como llamar a las 3 operaciones espero que me ayuden...
Gracias
AL PARECER YA CASI PERO ME MARCAR ALGUNES ERRORES: AYUDA
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
main()
{
int opcion;
opcion=1;
while(opcion!=5)
{
clrscr();
printf("Menu de Vector, Pila, Matriz, Lista\n\n");
printf("1- Vector\n");
printf("2- Pila\n");
printf("3- Matriz\n");
printf("4- Lista\n");
printf("5- SALIR\n\n");
printf("Opcion: ");scanf("%d",&opcion);
switch(opcion)
{
case 1 :
clrscr();
int vector[10];
void llenarvector()
{
int inicio;
for(inicio=0;inicio<10;inicio++)
{
printf("introduzca un valor para la posicion%d",inicio+1);
scanf("%d",&vector[inicio]);
}
}
void imprimirArreglo()
{
int posicion;
for(posicion=0;posicion<10;posicion++)
{
printf("el valor de la primera posicion %d es: %d \n", posicion,vector[posicion]);
}
}
void main()
{
clrscr();
llenarvector();
getch();
printf("imprimiendo valores");
imprimirArreglo();
getche();
getche();
break;
case 2 :
clrscr();
int opcion,tope,indice,dato,pila[5];
void imprimir()
{
clrscr();
if (tope==-1)
{
gotoxy(5,10);
printf("PILA VACIA.......");
}
else
{
for(indice=0;indice<=tope;indice++)
{
textcolor(RED);
gotoxy(20,indice+6);
cprintf("%d",pila[indice]);
delay(100);
}
}
}
void insertar()
{
if(tope==4)
{
gotoxy(25,15);
printf("PILA LLENA:");
}
else
{
printf("DATO:");
scanf("%d",&dato);
tope++;
pila[tope]=dato;
}
}
void eliminar()
{
if(tope==-1)
{
gotoxy(25,15);
printf("PILA VACIA:");
}
else
{
dato=pila[tope];
printf("dato eliminado: %d",dato);
tope--;
}
}
void menu()
{
gotoxy(20,1);
printf("seleccione una opcion \n");
gotoxy(25,3);
printf("1.- Insertar");
gotoxy(25,4);
printf("2.- Eliminar");
gotoxy(25,5);
printf("3.- Imprimir");
gotoxy(25,6);
printf("4.- Salir");
gotoxy(28,8);
printf("[[[ ]]]");
gotoxy(33,8);
scanf("%d",&opcion);
switch(opcion)
{
case 1:insertar();
break;
case 2:eliminar();
break;
case 3:imprimir();
break;
case 4:abort();
}
}
void main()
{
clrscr();
tope=-1;
do
{
menu();
opcion=getch();
clrscr();
}
while(opcion==13);
}
getche();
break;
case 3 :
clrscr();
int fila,columna;
int matriz[4][3];
void llenarmatriz()
{
printf("llenando matriz.......\n");
for(fila=0;fila<4;fila++)
{
for(columna=0;columna<3;columna++)
{
printf("\n valor para posiscion:%d,%d",fila,columna);
scanf ("%d",&matriz[fila][columna]);
}
}
}
void imprimir()
{
for(fila=0;fila<4;fila++)
{
for(columna=0;columna<3;columna++)
{
printf("\n valor en posicion:%d,%d es: %d",fila,columna,matriz[fila][columna]);
}
}
}
void imprimirDos()
{
for(fila=0;fila<4;fila++)
{
for(columna=0;columna<3;columna++)
{
gotoxy((columna+2)*3,(fila+4));
printf("%d",matriz[fila][columna]);
}
}
}
void main()
{
clrscr();
llenarmatriz();
getch();
clrscr();
printf("imprimiendo valores:\n");
imprimirDos();
getch();
}
getche();
break;
case 4 :
clrscr();
/* LISTA SIMPLEMENTE ENLAZADA*/
int opc;
typedef struct nodo
{
int valor;
nodo *sig;
};
nodo *I, *F, *nuevo, *aux;
insertar()
{
if (I==NULL)
{
nuevo=(nodo*) malloc(sizeof(nodo));
gotoxy(20,3);printf("ELEMENTOS PARA REGISTRAR EN LA LISTA");
gotoxy(20,5);printf("TECLEA EL ELEMENTO : ");
gotoxy(20,7);scanf("%d",&nuevo->valor);
nuevo->sig=NULL;
I=F=nuevo;
}
else
{
nuevo=(nodo*)malloc(sizeof(nodo));
gotoxy(20,3);printf("ELEMENTOS PARA REGISTRAR EN LA LISTA");
gotoxy(20,5);printf("TECLEA El ELEMENTO : ");
gotoxy(20,7);scanf("%d",&nuevo->valor);
F->sig=nuevo;
nuevo->sig=NULL;
F=nuevo;
}
return 0;
}
eliminar()
{
nodo *aux;
int borrado=0,dato;
if(I==NULL)
{
gotoxy(20,5);printf("< Í { Í [ ELIMINAR ELEMENTOS DE LA LISTA ] Í > Í } ");
gotoxy(20,7);printf("< Í { Í [ LA LISTA SE ENCUENTRA VACIA ] Í > Í } ");
getch();
}
else//else1
{ gotoxy(20,5);printf("ELIMINAR ELEMENTOS DE LA LISTA");
gotoxy(20,7);printf("šQUE DATO DESEAS BORRAR?:");
gotoxy(20,9);scanf("%d",&dato);
aux=I;
while((aux->sig!=NULL)&&(borrado==0))
{
if(aux->valor==dato)
{
I=aux->sig;
borrado=1;
}
else
{
if(aux->sig->valor==dato)
{
if(aux->sig==F)
{
F=aux;
aux->sig=NULL;
borrado=1;
}//if(aux->sig==F)
else
{
aux->sig=aux->sig->sig;
borrado=1;
}//fin del else
}//if(aux->sig==F)
else
aux=aux->sig;
}//fin del else
}//fin del while
if (aux->valor==dato)
{
if ((aux==F) && (aux==I))
{
I=F=NULL;
borrado=1;
}//fin del if ((aux==F) && (aux==I))
else
{
aux->sig=NULL;
borrado=1;
}
}//fin del if (aux->valor==dato)
}//fin del else1
return 0;
}//fin de la funcion eliminar
imprimir()
{
if (I==NULL)
{
gotoxy(25,11);printf("VISUALIZAR ELEMENTOS DE LA LISTA");
gotoxy(25,13);printf("NO EXISTEN ELEMENTOS EN LA LISTA PARA MOSTRAR");
getch();
}//fin del if (I==Null
else
{
aux=I;
while(aux->sig!=NULL)
{
printf("%d\t",aux->valor);
aux=aux->sig;
}//fin del while
printf("%d\t",aux->valor);
getch();
}//fin del else
return 0;
}//fin de la funcion imprimir
Cuadro ()
{
int col,lin;
gotoxy(1,1);putchar(201);//É
gotoxy(80,1);putchar(187);//»
gotoxy(80,24);putchar(188);//Œ
gotoxy(1,24);putchar(200);//È
for (col=2; col<=79; col++)
{
gotoxy(col,1);putchar(205);
gotoxy(col,24);putchar(205);
}
for (lin=2; lin<=23; lin++)
{
gotoxy(1,lin);putchar(186);
gotoxy(80,lin);putchar(186);
}
return 0;
}
main()
{
textmode(C80);
clrscr();
int opc;
I=F=NULL;
do
{
clrscr();
Cuadro();
gotoxy(20,2);printf("SELECCIONA U N A OPCION");
gotoxy(25,4);printf("1.- INSERTAR");
gotoxy(25,6);printf("2.- ELIMINAR");
gotoxy(25,8);printf("3.- IMPRIMIR");
gotoxy(25,10);printf("4.- EXIT");
gotoxy(25,12);printf("< < [ ] > >");
gotoxy(31,12);scanf("%d",&opc);
switch (opc)
{
case 1:
{
clrscr();
Cuadro();
insertar();
}
break;
case 2:
{
clrscr();
Cuadro();
eliminar();
}
break;
case 3:
{
clrscr();
Cuadro();
gotoxy(20,5);printf("VISUALIZAR ELEMENTOS DE LA LISTA");
gotoxy(20,7);printf("DATOS EN LA LISTA SON: \n");
gotoxy(20,9);imprimir();
break;
}
case 4:
exit(0);
}
}while(opc!=4);
return 0;
}
getche();
break;