Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dudosurf

[Resolvido] Menu, Sub-menu

Recommended Posts

Pessoal, estou tentando fazer com que quando eu aperte o "0" na função "menuPilha ou menuLista", retorne para o menu principal, gostaria de uma ajuda, obrigado!!!

 

# include <stdio.h>
# include <stdlib.h>
# include <string.h>

void menuPilha(void){
   
	 int opc;
	 for(;;){
	 puts("\nEscolha uma Funcao - PILHA\n\n");
	 puts("  [1] - Empilhar Elemento\n");
	 puts("  [2] - Desempilhar Elemento\n");
	 puts("  [3] - Acessar Elemento\n");
	 puts("  [4] - Visualizar PILHA\n");	 
	 puts("  [0] - Returnar ao Menu Principal\n");
	 puts("\n\n");
	 
	 scanf ("%d",&opc);		
	 switch(opc){
			case 1:
				  puts("::Empilhar Elemento::\n\n");
				  break;
			
			case 2:
				  puts("::Desempilhar Elemento::\n\n");
				  break;
			
			case 3:
				  puts("::Acessar Elemento::\n\n");
				  break;
			
			case 4:
				  puts("::Visualizar PILHA::\n\n");
				  break;
			
			case 0:
				  puts("::Returnar ao Menu Principal::\n\n");
				  break;												
		   }
		}
	 };
	 
void menuFila(void){

	 int opc;
	 for(;;){
	 puts("\nEscolha uma Funcao - FILA\n\n");
	 puts("  [1] - Inserir Elemento\n");
	 puts("  [2] - Excluir Elemento\n");
	 puts("  [3] - Acessar Elemento\n");
	 puts("  [4] - Visualizar FILA\n");	 
	 puts("  [0] - Returnar ao Menu Principal\n");
	 puts("\n\n");
	 
	 scanf ("%d",&opc);		
	 switch(opc){
			case 1:
				  puts("::Inserir Elemento::\n\n");
				  break;
			
			case 2:
				  puts("::Excluir Elemento::\n\n");
				  break;
			
			case 3:
				  puts("::Acessar Elemento::\n\n");
				  break;
			
			case 4:
				  puts("::Visualizar FILA::\n\n");
				  break;
			
			case 0:
				  puts("::Returnar ao Menu Principal::\n\n");  
				  break;												
		   }
		}	 
	 };	 
	 
// Menu Principal 
int main() {
	
	int opcao;
	for(;;){
	puts(" \nEscolha a Opcao\n\n");
	puts("  [1] - PILHA\n");
	puts("  [2] - FILA\n");
	puts("  [0] - SAIR\n");
	puts("\n\n");
	scanf ("%d",&opcao);

	switch (opcao){		 
	   case 1:	
			puts("Pilha\n");
			system("cls");
			menuPilha();
			break;
	   case 2:
			puts("Fila\n");
			system("cls");
			menuFila();
			break;
	   case 0:
			puts("Sair\n");
			return(0);
	   default:
	   printf("\n\n Opcao invalida!\n");
	   break;   
	   }
	   system("PAUSE");  
	   system("cls");
	}			
   return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quit,não dê idéias.Daqui a pouco vai ter nego enfiando return main()...

 

# include <stdio.h>
# include <stdlib.h>
# include <string.h>

void menuPilha(void){

 int opc;
 while(1){
	 puts("\nEscolha uma Funcao - PILHA\n\n");
	 puts("  [1] - Empilhar Elemento\n");
	 puts("  [2] - Desempilhar Elemento\n");
	 puts("  [3] - Acessar Elemento\n");
	 puts("  [4] - Visualizar PILHA\n");	
	 puts("  [0] - Returnar ao Menu Principal\n");
	 puts("\n\n");

	 scanf ("%d",&opc);
	 if (!opc) break;

	 switch(opc){
			case 1:
				  puts("::Empilhar Elemento::\n\n");
				  break;

			case 2:
				  puts("::Desempilhar Elemento::\n\n");
				  break;

			case 3:
				  puts("::Acessar Elemento::\n\n");
				  break;

			case 4:
				  puts("::Visualizar PILHA::\n\n");
				  break;										  
		   }
		}
 };

void menuFila(void){

 int opc;
 while (1){
	 puts("\nEscolha uma Funcao - FILA\n\n");
	 puts("  [1] - Inserir Elemento\n");
	 puts("  [2] - Excluir Elemento\n");
	 puts("  [3] - Acessar Elemento\n");
	 puts("  [4] - Visualizar FILA\n");	
	 puts("  [0] - Returnar ao Menu Principal\n");
	 puts("\n\n");

	 scanf ("%d",&opc);	 
	 if (!opc) break;


	 switch(opc){
			case 1:
				  puts("::Inserir Elemento::\n\n");
				  break;

			case 2:
				  puts("::Excluir Elemento::\n\n");
				  break;

			case 3:
				  puts("::Acessar Elemento::\n\n");
				  break;

			case 4:
				  puts("::Visualizar FILA::\n\n");
				  break;
	   }
  }	
};	

// Menu Principal
int main() {

int opcao;
while(1){
	puts(" \nEscolha a Opcao\n\n");
	puts("  [1] - PILHA\n");
	puts("  [2] - FILA\n");
	puts("  [0] - SAIR\n");
	puts("\n\n");
	scanf ("%d",&opcao);

	if (!opcao) break;

	switch (opcao){		
	   case 1:	
			puts("Pilha\n");
			menuPilha();
			break;
	   case 2:
			puts("Fila\n");
			menuFila();
			break;
	   default:
		   printf("\n\n Opcao invalida!\n");
		   break;  
	   }
}			
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda sou iniciante em C, mas um reurn main eu não seria capaz de enfiar ai .... rs

 

Então essa séria a forma de fazer com recursão? se possível uma pequena explicação ficaria grato.

 

Tb fiquei com dúvida nessa condição

 

while(1){

...........

...........

...........

 

if (! opcao)

 

break;

}

 

se puderem dar uma clareada, seria bom....

obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é soh você fazer chamada ao menu dentro dele proprio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow,,, beleza... foi o que eu acabei fazendo mesmo

ta funfando legal, o menu e as funções... hehe

 

 

// Menu Principal 
int main() {
	int opcao,opc,opc1;
	Pilha *pilha;
	inicializar(&pilha);
	while(1){
	puts(" \n[Escolha a Opcao]\n\n");
	puts("  [1] - PILHA\n");
	puts("  [2] - FILA\n");
	puts("  [0] - SAIR\n");
	puts("\n\n");
	scanf ("%d",&opcao);
	if(!opcao)
	break;
	switch (opcao){		 
	   case 1:	
			do{
			   puts("Pilha\n");
			   system("cls");
			   puts("\nEscolha uma Funcao - PILHA\n\n");
			   puts("  [1] - Empilhar Elemento\n");  // pelo topo
			   puts("  [2] - Desempilhar Elemento\n"); // pelo topo
			   puts("  [3] - Acessar Elemento\n"); // pelo topo
			   puts("  [4] - Visualizar PILHA\n"); // completa	
			   puts("  [0] - Returnar ao Menu Principal\n");
			   puts("\n\n");	
			   scanf ("%d",&opc1);  
			   switch(opc1){
			   case 1:
					puts("::Empilhar Elemento::\n\n");
					empilhar(&pilha);
					system("PAUSE");
					system("cls");
					break;
			   case 2:
					puts("::Desempilhar Elemento::\n\n");
					desempilha(&pilha);
					system("PAUSE");
					system("cls");
					break;
			   case 3:
					puts("::Acessar Elemento::\n\n");
					acessa(pilha);
					system("PAUSE");
					system("cls");				  
					break;
			   case 4:
					puts("::Visualizar PILHA::\n\n");
					vizualizar(pilha);
					system("PAUSE");
					system("cls");				  
					break;															 
				}
			}while (opc1 != 0);
			break;
	   case 2:
			do{  
			  puts("Fila\n");
			  system("cls");
			  puts("\nEscolha uma Funcao - FILA\n\n");
			  puts("  [1] - Inserir Elemento\n"); // pela cauda
			  puts("  [2] - Excluir Elemento\n"); // pela cabeça 
			  puts("  [3] - Acessar Elemento\n");
			  puts("  [4] - Visualizar FILA\n");	 
			  puts("  [0] - Returnar ao Menu Principal\n");
			  puts("\n\n");
			  scanf ("%d",&opc);   
			  switch (opc){
			  case 1:
					puts("::Inserir Elemento::\n\n");
					system("PAUSE");
					system("cls");				  
					break;
			  case 2:
					puts("::Excluir Elemento::\n\n");
					system("PAUSE");
					system("cls");				  
					break;
			  case 3:
					puts("::Acessar Elemento::\n\n");
					system("PAUSE");
					system("cls");				  
					break;
			  case 4:
					puts("::Visualizar FILA::\n\n");
					system("PAUSE");
					system("cls");				  
					break;
			  }
			}while (opc !=0);
			break;
	   case 0:
			puts("Sair\n");
			return(0);
	   default:
	   printf("\n\n Opcao invalida!\n");
	   break;   
	   }
	   system("PAUSE");  
	   system("cls");
	}			
	return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.