Jump to content

Recommended Posts

Posted (edited)

Boa noite pessoal.

Conheci o mundo da programação à pouco tempo, por isso ainda ando um pouco a arranhar nisto...

É o seguinte, estou a desenvolver um projeto em C para a disciplina de introdução à programação, mas estou a ter alguns problemas na implementação do menu_principal e dos sub_menus.

Já tenho alguns dados estruturados e a maioria das funções criadas... Entretanto queria testar o programa, no entanto, falta-me o que deveria ser mais fácil implementar, mas que para mim está a ser um bicho de 7 cabeças, que é interligar os menus... Abaixo tenho o exemplo do menu_principal e de um dos sub_menus.

Será que me podem dar alguma dica de como interligar o menu_principal aos restantes sub_menus?

Desde já agradeço a vossa ajuda.

Cumprimentos

char menu_principal(void){
char opcao1;
system("cls");
printf("Menu Principal\n\n");
printf(" 1. Armazem\n");
printf(" 2. Empregados\n");
printf(" 3. Estatisticas\n");
printf(" 0. Sair\n");
printf("\n> ");
scanf(" %c", &opcao1);
return 0;
}

char submenu_armazem(void){
char opcao2;
system("cls");
printf("SubMenu Armazem\n");
printf(" 1. Inserir equipamento\n");
printf(" 2. Remover equipamento\n");
printf(" 3. Listar todo o equipamento\n");
printf(" 4. Voltar ao menu anterior\n");
printf(" 0. Sair\n");
printf("\n> ");
scanf(" %c", &opcao2);
return opcao2;
}
Edited by thoga31
GeSHi
Posted (edited)

Tu leste a opção do utilizador. Agora tens de analisá-lo com uma estrutura switch.

switch (var) {
  case valor1 : /* coisas 1 */
  case valor2 : /* coisas 2 */
  // etc...
  default: /* opcional, caso não confira nenhum case */
}

Já agora, em cada menu/submenu não tens de dar o nome "opcao" seguido de um número, pode ser "opcao" em todos. 😉

Edited by thoga31

Knowledge is free!

Posted

Boa noite,

O Switch ... Case, não é um loop, ou seja faz apenas uma iteração.

Se pretendes que o menu se mantenha activo após a conclusão de cada iteração será melhor usar um ciclo While().

while((ch=getchar())!=4)
{
 scanf(" %C", &var);
 switch (var) {
 case valor1 :
	/* coisas 1 */
	Break;

 case valor2 :
	/* coisas 2 */
	Break;
  }
 // etc...
 default: /* opcional, caso não confira nenhum case */
 }
printf("Tecla 4 para sair\n");
}

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

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.