Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda!


MarinaP

Pergunta

Pessoal, Boa noite!!!

Eu estou fazendo um trabalho de programação em C em que o código principal possui um Switch Case e em cada Case há outro Switch Case. O meu problema é o seguinte: Após compilado, o Menu Principal logo aparece... Ao selecionar a primeira opção ele mostra o submenu e assim pode-se executar o que é pedido lá. Porém quando é finalizado ele não volta para o submenu, pede novamente os dados que eu inseri.

Exemplo:

MENU PRINCIPAL

OPÇÕES

OPÇÃO 1 SELECIONADA

SUBMENU

ENTRADA DE DADOS

--> NESTE PONTO AQUI DEVERIA VOLTAR PARA O SUBMENU QUE CONTÉM A OPÇÃO DE VOLTAR AO MENU PRINCIPAL TAMBÉM.

Vou mostrar o código... Usei um DO WHILE, mas não está funcionando. Não mostrarei as funções e estruturas, pois são mais de 400 linhas de código.

Gente... se puderem me ajudar... ficarei muitooo grata mesmo! Preciso entregar este trabalho Segunda-feira, o prazo foi realmente muito curto. Mas, quero mesmo é aprender como se faz!!

Brigadão!! Abraços!!

Segue a partir do MAIN:

main()
{
      TipoPilha PilhaExperimentos;
      TipoLista ListaResultados;
      TipoFila FilaCientistas;
      TipoItem Item_P, Item_L, Item_F;
      int opc1, opc2;
      
      FPVazia(&PilhaExperimentos);
      FLVazia(&ListaResultados);
      FFVazia(&FilaCientistas);
      
      do
      {
       opc1=menu();
       switch(opc1)
       {
          case 1: // Opção 1 = Pilha de Experimentos
             opc2=submenu_P();
             do{
               switch(opc2)
               {
                
                case 1: // Opção 1.1 = Inserir Item na Pilha
                    printf("Por favor. Insira a Chave\n");
                    scanf("%d", &Item_P.Chave);
                    printf("Agora, insira o nome\n");
                    scanf("%s", &Item_P.nome);
                    Empilha(Item_P, &PilhaExperimentos);
                    break;
                case 2: // Opção 1.2 = Desempilhar Item da Pilha (FILO)
                    Desempilha(&PilhaExperimentos, &Item_P);
                    break;                    
                 case 3:// Opção 1.3 = Imprimir a Pilha
                    //Função Imprime
                 case 4: //Opção 1.4 = Voltar ao Menu Principal
                    break;
                 default:
                    printf("\n\t\t\a Digite uma opcao valida!\n");
                    break;
                    }
             }while(opc2!=4);    
          case '2': // Opção 2 = Lista de Resultados
             opc2=submenu_L();
             switch(opc2)
             {
              do{  
                case 1: // Opção 2.1 = Inserir Item na Lista
                    printf("Por favor. Insira o Codigo\n");
                    scanf("%d", &Item_L.Chave);
                    printf("Agora, insira o nome\n");
                    gets(Item_L.nome);
                    Insere(Item_L, &ListaResultados);
                    break;
                case 2: // Opção 2.2 = Retirar Item da Lista
                    // VERIFICAR FUNÇÃO RETIRAAAAA
                case 3: // Opção 2.3 = Imprimir lista
                    printf("\t\aLista Atual:\n");
                    ImprimeLista(ListaResultados);
                    break; 
                case 4: // Opção 2.4 = Pesquisar Item na Lista
                    break;
                case 5: // Opção 2.5 = Voltar ao Menu Principal
                    break;
                default:
                    printf("\n\t\t\a Digite um numero valido!\n");
                    break;
             }while(opc2!=5);            
             }
          case '3': // Opção 3 = Fila de Cientistas
               opc2=submenu_F();
               switch(opc2)
               {
                do{
                  case 1: // Opção 3.1 = Inserir Cientista da Fila
                    printf("Digite um Codigo para Identificar o Cientista\n");
                    scanf("%d", &Item_F.Chave);
                    printf("Digite o nome do Cientista\n");
                    gets(Item_F.nome);
                    Enfileira(Item_F,&FilaCientistas);
                    break;
                  case 2: // Opção 3.2 = Retirar Cientista da Fila
                    Desenfileira(&FilaCientistas, &Item_F);
                    printf("Proximo\n\n");
                    break;
                  case 3: // Opção 3.3 = Imprimir a Fila de Cientistas Atual
                    printf("\t\nFila Atual\n");
                    ImprimeFila(FilaCientistas);
                    break;
                  case 4: // Opção 3.4 = Retornar ao Menu Principal
                    break;
                  default:
                    printf("\n\t\t\a Digite uma opcao valida!!\n");
                    break;
                }while(opc2!=4);
                }
          case '4': // Opção 4 = Verificar a situação dos experimentos, resultados e cientistas (Todos os cientistas devem receber seus experimentos)
               // Colocar função
               break;
          case '5':
               ("\n\t\t\t\t\tObrigado e Volte Sempre!\n\n");
          }
       }while(opc1!=5);
       }

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...