chico_666 Posted February 23, 2014 at 07:07 PM Report #546394 Posted February 23, 2014 at 07:07 PM (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 February 23, 2014 at 08:13 PM by thoga31 GeSHi
Super.D Posted February 23, 2014 at 08:10 PM Report #546399 Posted February 23, 2014 at 08:10 PM Usa switch case no teu menu principal. Como por exemplo: switch (opcao1) { case '1': submenu_armazem(); break; } Não te esqueças das functions prototypes.
thoga31 Posted February 23, 2014 at 08:15 PM Report #546401 Posted February 23, 2014 at 08:15 PM (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 February 23, 2014 at 08:16 PM by thoga31 Knowledge is free!
chico_666 Posted February 23, 2014 at 11:57 PM Author Report #546424 Posted February 23, 2014 at 11:57 PM Obrigado pela ajuda pessoal, só mais uma dúvida, vale a pena por o switch dentro de um ciclo do while ou isso é apenas desperdício de código?
apocsantos Posted February 24, 2014 at 01:04 AM Report #546426 Posted February 24, 2014 at 01:04 AM 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"
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now