Ir ao conteúdo
  • Cadastre-se

C Não executa a funçao do segundo menu , sistema para uma palestra de controle


Murilo Murilo

Posts recomendados

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>


int main()
{
    char login[] = "adm";
    char nome[10], senha[10], nomeptc[40], email[40];
    char password[] = "adm";
    char rg[10], dtn[15];
    int v, l, qtd, qtd2, nassento;
    int op, cadeiras[55], status[55], i, ncadeira, encontrou;
    time_t data_tempo;
    time(&data_tempo);
    struct tm* tempo = localtime(&data_tempo);
    struct tm* data = localtime(&data_tempo);
    qtd = 0;
    qtd2 = 0;
    for (i = 0; i < 55; i++)
    {
        cadeiras[i] = i + 1;
        status[i] = 0;
    }
    for (i = 0; i < 55; i++)
    {
        status[i] = 0;
        status[i] = i + 1;
    }
    op = 1;
    while (qtd != 3 || qtd2 != 3)
    {
        system("clear");
        printf(" LOGIN: ");
        scanf("%s", nome);
        l = strcmp(login, nome);
        if (l == 0) {
            printf(" SENHA: ");
            scanf("%s", senha);
            v = strcmp(password, senha);
            
            printf("Digite a quantidade de assentos:");
            scanf("%d%*c", &nassento);
            
            if (v == 0)
            {   
                
                
                
                while (op != 4) {
                    system("clear");
                    printf("\n       MENU PRINCIPAL    \n");
                    printf("-------------------------\n");
                    printf("| 1 | Gerenciar Visitante\n");
                    printf("-------------------------\n");
                    printf("| 2 | Realizar sorteio  \n");
                    printf("-------------------------\n");
                    printf("| 3 |     E-mail         \n");
                    printf("-------------------------\n");
                    printf("| 4 |    Sair\n");
                    printf("-------------------------\n");
                    printf("Escolha uma das opções acima:");
                    scanf("%d", &op);
                    switch (op)
                    {
                    case 1:
                        system("clear");
                        while (op != 7)
                        {
                            system("clear");
                            printf("    O PODER DA TECOLOGIA   \n");
                            printf("---------------------------\n");
                            printf("| 1 | Incluir Participante \n");
                            printf("---------------------------\n");
                            printf("| 2 | Excluir Participante \n");
                            printf("---------------------------\n");
                            printf("| 3 | Alocar aluno         \n");
                            printf("---------------------------\n");
                            printf("| 4 | Lugares ocupadas     \n");
                            printf("---------------------------\n");
                            printf("| 5 | Lugares livres       \n");
                            printf("---------------------------\n");
                            printf("| 6 | Listar todas  lugares\n");
                            printf("---------------------------\n");
                            printf("| 7 | Retornar             \n");
                            printf("---------------------------\n");
                            printf("Escolha sua opcao: ");
                            scanf("%d%*c", &op);
                            switch (op)
                            {
                            case 1:
                                system("clear");

                          
                                printf("Digite o numero do assento desejado: ");
                                scanf("%d%*c", &ncadeira);

                                printf("Digite seu nome: ");
                                scanf("%[^\n]s%*c", nomeptc);
                                getchar();
                                  
                                fflush(stdin);
                                printf("\nDigite seu RG: ");
                                scanf("%s%*c", rg);

                                
                                printf("\nDigite sua Data de Nascimento: ");
                                scanf("%s%*c", dtn);
                                
                                fflush(stdin);
                                printf("\nDigite o E-mail: ");
                                scanf("%s%*c", email );


                                printf("\nHora: %i:%i", tempo->tm_hour, tempo->tm_min);
                                printf("\nData: %d/%d/%d \n", data->tm_mday, data->tm_mon, data->tm_year);
                                system("pause");
                                if (status[ncadeira - 1] == 1) {
                                    printf("Assento ja reservado. Verifique outro lugar.");
                                    system("clear");
                                }
                                // Aqui será feito o cadastro do Participante
                                else {
                                    for (i = 0; i < 55; i++)
                                    {
                                        if (ncadeira == cadeiras[i])
                                        {
                                            status[i] = 1;
                                            printf("-------------------------------------\n");
                                            printf("Assento reservado com sucesso!\n");
                                            printf("Bem Vindo Sr.(a) %s\n", nomeptc);
                                            printf("E-mail de Contato: %s\n", &email[i]);
                                            printf("Seu numero de assento: %p \n", &ncadeira);
                                            printf("--------------------------------------\n");
                                         
                                        }
                                    };
                                    system("clear");
                                }
                                break;
                                // Aqui é a parte que verifica se tem lugar disponível e se tiver o cadastro é efetuado.

                            case 2:
                                system("clear");
                                printf("Informe o numero do lugar que deseja liberar: ");
                                scanf("%d", &ncadeira);
                                if (status[ncadeira - 1] == 0)
                                {
                                    status[i] = 0;
                                    printf("Liberacao realizada com sucesso!");
                                    system("pause");
                                }

                                break;
                                // Aqui é onde deveria liberar uma cadeira ocupada.


                            case 3:
                                i = 0;
                                encontrou = 0;
                                while (i < 55)
                                {
                                    if (status[i] == 0)
                                    {
                                        status[i] = 1;
                                        printf("O cliente foi alocado no lugar: %d", cadeiras[i]);
                                        system("pause");
                                        i = 10;
                                        encontrou = 1;
                                    }
                                    i++;
                                }
                                if (encontrou == 0)
                                {
                                    printf("Nao existe lugar disponivel!\n");
                                    system("pause");
                                    break;
                                }
                                //Aqui é para Alocar o Participante em um lugar aleatório que não esteja ocupado

                            case 4:

                                system("clear");
                                printf("ASSENTOS OCUPADOS\n");
                                printf("=============\n\n");
                                printf("Assento Status\n\n");
                                encontrou = 0;
                                for (i = 0; i < 55; i++)
                                {
                                    if (status[i] == 1)
                                    {
                                        printf("%d Ocupado\n", cadeiras[i]);
                                        encontrou = 1;
                                    }
                                }
                                if (encontrou == 0)
                                {
                                    printf("Todas os Assentos estão Livres\n");
                                }
                                system("pause");
                                break;
                                // Aqui é listados todos os lugares que ja foram ocupados.


                            case 5:
                                system("clear");
                                printf("ASSENTOS LIVRES\n");
                                printf("==============\n\n");
                                printf("Assentos Status\n\n");
                                encontrou = 0;
                                for (i = 0; i < 55; i++)
                                {
                                    if (encontrou == 0)
                                    {
                                        printf("%d Livre\n", cadeiras[i]);
                                        encontrou = 1;
                                    }
                                }
                                if (encontrou == 1)
                                {
                                    printf("Todos os assentos estão Ocupados\n");
                                }
                                system("pause");
                                break;
                                //Aqui deveria mostrar toos os lugares livres.


                            case 6:
                                system("clear");
                                printf("TODOS OS ASSENTOS\n");
                                printf("==============\n\n");
                                printf("Assento  Status\n\n");
                                encontrou = 0;
                                for (i = 0; i < 55; i++)
                                {
                                    if (status[i] == 1)
                                    {
                                        printf("%d Ocupado\n", cadeiras[i]);
                                    }
                                    else
                                    {
                                        printf("%d Livre\n", cadeiras[i]);
                                    }
                                }
                                system("pause");
                                break;
                                //Aqui Mostra todos os lugares independente da situação.


                            case 7:
                               //system("clear");
                               // op = 0;
                                break;// Nesta Parte deveria retornar ao primeiro Menu.
                            }
                        }
                    case 2:
                       system("clear");
                        srand(time(NULL));
                        printf("Realizando sorteio...\n");
                        cadeiras[i] = rand() % 100;
                        printf("\nParabens!!!\n Participante Sorteado: %d \n", cadeiras[i]);


                        system("pause");

                    case 4:
                        break;
                    }
                }
            }
            else {
                printf("senha incorreta!");
                qtd = qtd + 1;
                system("pause");
            }

            if (qtd == 3)
            {
                system("clear");
                printf("Acesso Negado!");
                system("pause");
            }
        }
        else
        {
            printf("login invalido \n \n");
            qtd = qtd2 + 1;
            system("pause");
        }
        if (qtd2 == 3)
        {
           system("clear");
            printf("Acesso Negado!");
            system("pause");
        }
    }


};

 

O Codigo nao executa os passos do segundo menu 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Qual é o segundo menu? rsrs

Faça o seguinte: depois de entrar em cada laço de repetição, coloque uma mensagem da tela, um simples printf dizendo que o programa entrou ali "menu assentos livres", "menu numero do assento", etc, para você saber se o erro é dentro do laço ou é algum problema na validação do switch...case ou mesmo da variável.

Link para o comentário
Compartilhar em outros sites

no meu computador parece estar funcionando. 

Pode explicar como reproduzir o problema?

 

Seu programa não está bom. Assim vai sempre ter muito trabalho.

  • use estruturas, funções e nomes mais expressivos para as variáveis
  • declare as variáveis de controle DENTRO do for a menos que tenha uma sólida razão para não fazer isso. Nunca deixe uma variável com o ingênuo nome "i" solta pelo programa todo.
  • pode usar qualquer nome para uma variável. Precisa usar coisas como qtd e qtd2?
  • não declare mais de uma variável por linha. É grátis.
  • provavelmente poderia usar lógica e passar sem essa construção
     
        for (i = 0; i < 55; i++)
        {
            cadeiras[i] = i + 1;
            status[i] = 0;
        }
        for (i = 0; i < 55; i++)
        {
            status[i] = 0;
            status[i] = i + 1;
        }

     

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!