Ir ao conteúdo

Posts recomendados

Postado
#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 

  • Membro VIP
Postado

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.

Postado

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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!