Jump to content
Diogo Carlos Almeida

menus e sub menus

Recommended Posts

Diogo Carlos Almeida

estava a criar um projecto final de modulo e preciso usar ficheiros em linguagem c sobre qualuer assunto ou tema, até ai ok

e surgio-me a necessidade de criar um sub menu para o menu inicial 

por exemplo um programa sobre as ligas de footbol portuguesas como menu (primeira liga ,liga nos,etc) e dentro das ligas as equipas.

sendo que assim que seleciono uma opçao no menu "inicial" o programa fecha sem abrir o sub menu

meu programa aqui:

 

#include <stdio.h>
#include <cstdlib>

main() 

{
    int opcao;
    int opcaot; 
    int opcaog; 
    int opcaol;
    FILE *f;
    char c;
    
    printf("Menu:\n");
    printf("1) Tour de France\n");
    printf("2) Giro D'Italia'\n");
    printf("3) La Vuelta\n");
    printf("4) Sair\n ");
    scanf("%c", &opcao);
                  
    switch(opcao) {
       case '1':
                           switch(opcaot) {
                            printf("Tour de France\n");
                              printf("1-tabela geral - camisola amarela\n");
                              printf("2-tabela de pontos - camisola verde\n");
                              printf("3-tabela da montanha - camisola da montanha\n");
                             printf("4-tabela da juventude - camisola branca\n");
                             printf("5-tabela de equipas\n");
                             printf("6-ciclista mais combativo - camisola vermelha\n");
                             scanf("%c", &opcaot);
                         system("close");
                            break;    
          
       case '2':
          printf("Giro D'Italia\n");
                                    switch(opcaog) {
                            printf("Giro DItalia\n");
                              printf("1-tabela geral - camisola amarela\n");
                              printf("2-tabela de pontos - camisola verde\n");
                              printf("3-tabela da montanha - camisola da montanha\n");
                             printf("4-tabela da juventude - camisola branca\n");
                             printf("5-tabela de equipas\n");
                             printf("6-ciclista mais combativo - camisola vermelha\n");
                             scanf("%c", &opcaog);
                         system("close");
                            break;    
          break;                   
       case '3':
          
          printf("La Vuelta\n");
                                    switch(opcaol)    {
                            printf("La Vuelta\n");
                              printf("1-tabela geral - camisola amarela\n");
                              printf("2-tabela de pontos - camisola verde\n");
                              printf("3-tabela da montanha - camisola da montanha\n");
                             printf("4-tabela da juventude - camisola branca\n");
                             printf("5-tabela de equipas\n");
                             printf("6-ciclista mais combativo - camisola vermelha\n");
                             scanf("%d",&opcaol);
                         system("close");
                            break;    
                                                        }
          break;                         
       case '4':
          printf("O programa sera encerrado\n");
          break;                      
        system("close");
            break;    
                                                    }
                                        }
                    }
}
 

Edited by Diogo Carlos Almeida

Share this post


Link to post
Share on other sites
antseq

viva...

1. está a fazer "switch" de variáveis não inicializadas...

2. está a fazer "switch" sem "cases"...

3. está a ler a variável que controla o "switch" (1) no fim do mesmo...

switch(opcaot) { <<<<<<<<<<<<<<<<<<<<<<<<< 1
      <<<<<<<<<<<<<<<<<<<<<<<<< 2
      printf("Tour de France\n");
      printf("1-tabela geral - camisola amarela\n");
      printf("2-tabela de pontos - camisola verde\n");
      printf("3-tabela da montanha - camisola da montanha\n");
      printf("4-tabela da juventude - camisola branca\n");
      printf("5-tabela de equipas\n");
      printf("6-ciclista mais combativo - camisola vermelha\n");
      scanf("%c", &opcaot);  <<<<<<<<<<<<<<<<<<<<<<<<< 3
      system("close");

4. se o "submenu" tem o mesmo conjunto de sub-opções... não é necessário repetir 3x a mesma coisa.

cps.

Share this post


Link to post
Share on other sites
Diogo Carlos Almeida

nao percebi o que queres dizer com variaveis nao inicializadas e naao estou a ver onde esta a repetira mesma coisa

o objetivo do submenu é colocar ficheiros de texto para leitura das tais tabelas, nao tendo ainda o adicionado poque estou a ter problemas com o primeiro, apos resolvido o problema com o primeiro menu irei colocar um menu nas opcoes 1 2 e 3 do menu inicial para abrir as tabelas

 

mas obrigdo

 

Edited by Diogo Carlos Almeida

Share this post


Link to post
Share on other sites
Diogo Carlos Almeida

ja percebi mais ou menos o que quiseste dizer

bem, os 3 submenus que vou implementar estao "ligados" a temas diferentes sendo o primeiro a volta a frança o segundo ao giro de italia e o terceiro a la vuelta, 3 corridas diferentes cada uma com informaçao diferente mas do mesmo tipo

sendo o meu projeto usar este programa para fazer um trabalho final no meu modulo de ficheiros em c

obrigado pela ajuda pois percebi alguns erros no programa depois de tentar perceber o que querias dizer :) 

Share this post


Link to post
Share on other sites

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.