Jump to content

Dúvida, menu com vários submenus


Recommended Posts

Posted (edited)

Boa tarde pessoal, sou iniciante em programação e estou a realizar um projeto em C onde pretendo implementar um software de Gestão... Como não tenho muita experiência estou indeciso sobre qual será a melhor solução para começar a criar o Menu com os respetivos submenus...

No exemplo abaixo utilizei, tanto no menu principal como nos submenus, o Do While seguido do Switch em cada um deles...

Entretanto vou ter de implementar no programa dados estruturados e funções.

A minha pergunta é a seguinte:

Será que faz mais sentido utilizar um Switch contendo o Menu Principal e dentro desse Switch fazer mais 3 Switch para criar os respetivos Submenus?

Não sei se me fiz entender, mas é mais ou menos isto, fazer uma especie de Switch contendo vários Switchs, qual a vossa opinião?

Desde já agradeço a vossa ajuda 😉

void menu_principal()
{
   do
   {
       system("cls");
       printf("\n MENU PRINCIPAL\n");
       printf("\n  1. Professores\n");
       printf("\n  2. Alunos\n");
       printf("\n  3. Salas\n");
       printf("\n  4. Estatisticas\n");
       printf("\n  0. Sair\n");
       printf("\n Selecione a opcao desejada: ");
       scanf("%d", &opcao1);
   } while ((opcao1 < 0) || (opcao1 > 4));

   switch (opcao1)
   {
   case 1:
       menu_professores();
       break;
   case 2:
       menu_alunos();
       break;
   case 3:
       menu_salas();
       break;
   }
}
//---------------------------------------------------//
void menu_professores()
{
   do
   {
       system("cls");
       printf("\n MENU PROFESSORES\n");
       printf("\n  1. Inserir Professor\n");
       printf("\n  2. Editar Professor\n");
       printf("\n  3. Remover Professor\n");
       printf("\n  4. Listar Professor\n");
       printf("\n  5. Pesquisar Professor\n");
       printf("\n  0. Voltar ao Menu Anterior\n");
       printf("\n Selecione a opcao desejada: ");
       scanf("%d", &opcao2);
   } while ((opcao2 < 0) || (opcao2 > 5));

   switch (opcao2)
   {
   case 0:
       menu_principal();
       break;
   }
}
//---------------------------------------------------//

void menu_alunos()
{
   do
   {
       system("cls");
       printf("\n MENU ALUNOS\n");
       printf("\n  1. Inserir Aluno\n");
       printf("\n  2. Editar Aluno\n");
       printf("\n  3. Remover Aluno\n");
       printf("\n  4. Listar Aluno\n");
       printf("\n  5. Pesquisar Alunos\n");
       printf("\n  0. Voltar ao Menu Anterior\n");
       printf("\n Selecione a opcao desejada: ");
       scanf("%d", &opcao3);
   } while ((opcao3 < 0) || (opcao3 >5));

   switch (opcao3)
   {
   case 0:
       menu_principal();
       break;
   }
}
//---------------------------------------------------//
void menu_salas()
{
   do
   {
       system("cls");
       printf("\n MENU SALAS\n");
       printf("\n  1. Inserir Sala\n");
       printf("\n  2. Editar Sala\n");
       printf("\n  3. Remover Sala\n");
       printf("\n  4. Listar Salas\n");
       printf("\n  5. Listar Salas por Localizacao\n");
       printf("\n  0. Voltar ao Menu Anterior\n");
       printf("\n Selecione a opcao desejada: ");
       scanf("%d", &opcao3);
   } while ((opcao3 <0 ) || (opcao3 >5 ));

   switch (opcao3)
   {
   case 0:
       menu_principal();
       break;
   }
}
Edited by thoga31
Tags code + GeSHi

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.