Ir ao conteúdo

C Programa de cadastro em linguagem C


Ir à solução Resolvido por Gabriel_Moro,

Posts recomendados

Postado

Boa Noite, estou com alguns problemas na criação de um programa para cadastro de uma palestra, no qual haverá 55 lugares sendo 10 dos convidados, 5 preferências e 40 dos participantes, porém, o programa não está salvando os lugares como números (exemplo, ao invés de lugar 1 ou lugar 2, aparece um número extenso que eu suspeito que seja de memória, e ainda não encontrei uma forma de deixar os preferenciais exclusivo, tinha pensado em fazer um vetor a parte, porém, o programa também deve fazer um sorteio ao qual os participantes e preferênciais devem estar dendo exceto os convidados.


#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include "time.h"

main()
{
char login[]="admin";
char nome[10],senha[10],nomeptc[40],email[40];
char password[]="adm123";
int v,l,qtd,qtd2,nassento;
int op,cadeiras[55],status[55],i,rg[10],dtn[15],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++)
    {
    status[i]=0;
    status[i]=i+1;
    }
op=1;
while(qtd!=3||qtd2!=3)
{
system("cls");
printf("Digite seu login: ");
gets(nome);
l=strcmp(login,nome);
if(l==0){
printf("Digite sua Senha: ");
gets(senha);
v=strcmp(password,senha);
if(v==0)
{
while(op!=4){
system("cls");
        printf("1-Gerenciar Visitante\n");
        printf("2-Realizar sorteio\n");
        printf("3-Enviar comunicado por E-mail\n");
        printf("4-Sair\n");
        printf("Escolha uma das opções acima: ");
        scanf("%d", &op);
switch(op)
{
case 1:
system("cls");
while(op!=7)
{
system("cls");
printf("Palestra dos Direitos Humanos\n");
printf("==============\n\n");
printf("1- Incluir Participante\n");
printf("2- Excluir Participante\n");
printf("3- Alocar aluno\n");
printf("4- Listar lugares ocupadas\n");
printf("5- Listar lugares livres\n");
printf("6- Listar todas os lugares\n");
printf("7- Retornar ao menu anterior\n");
printf("Escolha sua opcao: ");
scanf("%d", &op);
switch(op)
{
case 1:
system("cls");
printf("Por favor\n Informe os dados solicitados: \n\n");
printf("Digite o numero do assento desejado: ");
scanf("%d", &ncadeira);

printf("\nDigite seu nome: ");
gets(nomeptc);

printf("\nDigite seu RG: ");
gets(rg);
printf("\nDigite sua Data de Nascimento: ");
gets(dtn);
printf("\nDigite o E-mail: ");
gets(email);

printf("\nHora: %i:%i", tempo->tm_hour, tempo->tm_min);
printf("\nData: %d/%d/%d", data->tm_mday, data->tm_mon, data->tm_year);
getch();
if(status[ncadeira-1]==1){
printf("Assento ja reservado. Verifique outro lugar.");
getch();
}
else{
for(i=0;i<55;i++)
            {
if(ncadeira==cadeiras[i])
            {
status[i]=1;
printf("Assento reservado com sucesso!\n");
printf("Bem Vindo Sr.(a) %c\n", nomeptc[i]);
printf("E-mail de Contato: %c\n", email[i]);
printf("Seu numero de assento: %d", ncadeira);
getch();
}
}
getch();
}
break;
case 2:
system("cls");
    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!");
getch();}

}
break;

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]);
    getch();
    i=10;
    encontrou=1;
    }
    i++;
    }
    if(encontrou==0)
{
printf("Nao existe lugar disponivel!");
getch();
break;
}
case 4:

system("cls");
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");
}
getch();
break;

case 5:
system("cls");
    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");
    }
getch();
break;

case 6:
system("cls");
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]);
    }
    }
getch();
break;
case 7:
system("cls");
op = "0";
 break;
}
 case 2:
     system("cls");
     srand(time(NULL));
     printf("Realizando sorteio...\n");
cadeiras[i]=rand()%100;
printf("\nParabens!!!\n Participante Sorteado: %d \n", cadeiras[i]);


getch();

case 4:
break;
}
}
}
else{
    printf("Senha Invalida!");
    qtd=qtd+1;
    getch();
}

if(qtd==3)
    {
    system("cls");
    printf("Acesso Negado!");
    getch();
    }
}
    else
    {
    printf("Login inválido");
    qtd=qtd2+1;
    getch();
    }
if(qtd2==3)
{
    system("cls");
    printf("Acesso Negado!");
    getch();
}
}
}
  • Curtir 1
Postado
19 minutos atrás, Gabriel_Moro disse:

o código tem case repetido

tente organizar o código em funções, facilita o entendimento, a identificação de erros e deixa ele mais estruturado

Desculpe tentei deixar um pouco mais organizado agora da para compilar e executar:


#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include "time.h"

main()
{
char login[]="admin";
char nome[10],senha[10],nomeptc[40],email[40];
char password[]="adm123";
int v,l,qtd,qtd2,nassento;
int op,cadeiras[55],status[55],i,rg[10],dtn[15],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++)
    {
    status[i]=0;
    status[i]=i+1;
    }
op=1;
while(qtd!=3||qtd2!=3)
{
system("cls");
printf("Digite seu login: ");
gets(nome);
l=strcmp(login,nome);
if(l==0){
printf("Digite sua Senha: ");
gets(senha);
v=strcmp(password,senha);
if(v==0)
{
while(op!=4){
system("cls");
        printf("1-Gerenciar Visitante\n");
        printf("2-Realizar sorteio\n");
        printf("3-Enviar comunicado por E-mail\n");
        printf("4-Sair\n");
        printf("Escolha uma das opções acima: ");
        scanf("%d", &op);
switch(op)
{
case 1:
system("cls");
while(op!=7)
{
system("cls");
printf("Palestra dos Direitos Humanos\n");
printf("==============\n\n");
printf("1- Incluir Participante\n");
printf("2- Excluir Participante\n");
printf("3- Alocar aluno\n");
printf("4- Listar lugares ocupadas\n");
printf("5- Listar lugares livres\n");
printf("6- Listar todas os lugares\n");
printf("7- Retornar ao menu anterior\n");
printf("Escolha sua opcao: ");
scanf("%d", &op);
switch(op)
{
case 1:
system("cls");
printf("Por favor\n Informe os dados solicitados: \n\n");
printf("Digite o numero do assento desejado: ");
scanf("%d", &ncadeira);

printf("\nDigite seu nome: ");
gets(nomeptc);

printf("\nDigite seu RG: ");
gets(rg);
printf("\nDigite sua Data de Nascimento: ");
gets(dtn);
printf("\nDigite o E-mail: ");
gets(email);

printf("\nHora: %i:%i", tempo->tm_hour, tempo->tm_min);
printf("\nData: %d/%d/%d", data->tm_mday, data->tm_mon, data->tm_year);
getch();
if(status[ncadeira-1]==1){
printf("Assento ja reservado. Verifique outro lugar.");
getch();
}
// Aqui será feito o cadastro do Participante


else{
for(i=0;i<55;i++)
            {
if(ncadeira==cadeiras[i])
            {
status[i]=1;
printf("Assento reservado com sucesso!\n");
printf("Bem Vindo Sr.(a) %c\n", nomeptc[i]);
printf("E-mail de Contato: %c\n", email[i]);
printf("Seu numero de assento: %d", ncadeira);
getch();
}
}
getch();
}
break;
// Aqui é a parte que verifica se tem lugar disponível e se tiver o cadastro é efetuado.

case 2:
system("cls");
    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!");
getch();}

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]);
    getch();
    i=10;
    encontrou=1;
    }
    i++;
    }
    if(encontrou==0)
{
printf("Nao existe lugar disponivel!");
getch();
break;
}
//Aqui é para Alocar o Participante em um lugar aleatório que não esteja ocupado

case 4:

system("cls");
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");
}
getch();
break;
// Aqui é listados todos os lugares que ja foram ocupados.


case 5:
system("cls");
    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");
    }
getch();
break;
//Aqui deveria mostrar toos os lugares livres.


case 6:
system("cls");
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]);
    }
    }
getch();
break;
//Aqui Mostra todos os lugares independente da situação.


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


getch();

case 4:
break;
}
}
}
else{
    printf("Senha Invalida!");
    qtd=qtd+1;
    getch();
}

if(qtd==3)
    {
    system("cls");
    printf("Acesso Negado!");
    getch();
    }
}
    else
    {
    printf("Login inválido");
    qtd=qtd2+1;
    getch();
    }
if(qtd2==3)
{
    system("cls");
    printf("Acesso Negado!");
    getch();
}
}
}

  • Curtir 1
Postado

Obrigado cara agora foi, será que poderia me tirar só mais uma dúvida. Na parte abaixo do código seria a parte em que o participante digitaria seus dados e a tela deveria limpar e mostrar a mensagem de confirmação de cadastro junto com alguns dados do participante, porém nenhum dos dois estão sendo feitos, nem  a tela se limpa e os dados do participante não está aparecendo. Grato.


case 1:
system("cls");
printf("Por favor\n Informe os dados solicitados: \n\n");
printf("Digite o numero do assento desejado: ");
scanf("%d", &ncadeira);

printf("\nDigite seu nome: ");
gets(nomeptc);
printf("\nDigite seu RG: ");
gets(rg);
printf("\nDigite sua Data de Nascimento: ");
gets(dtn);
printf("\nDigite o E-mail: ");
gets(email);

printf("\nHora: %i:%i", tempo->tm_hour, tempo->tm_min);
printf("\nData: %d/%d/%d", data->tm_mday, data->tm_mon, data->tm_year);
getch();
if(status[ncadeira-1]==1){
printf("Assento ja reservado. Verifique outro lugar.");
getch();
}
// Aqui será feito o cadastro do Participante


else{
for(i=0;i<55;i++)
            {
if(ncadeira==cadeiras[i])
            {
status[i]=1;
printf("Assento reservado com sucesso!\n");
printf("Bem Vindo Sr.(a) %c\n", nomeptc[i]);
printf("E-mail de Contato: %c\n", email[i]);
printf("Seu RG é: %c\n",rg[i]);
printf("Seu numero de assento: %d", ncadeira);
getch();
}
}
getch();
}
getch();
break;

  • Curtir 2
Postado

A parte de limpar a tela consegui arrumar, tinha esquecido de colocar system(cls) antes, mas ainda continuo sem conseguir fazer aparecer os dados solicitados depois que o cadastro é feito.

  • Curtir 2
Postado
printf("Digite o numero do assento desejado: ");
fflush(stdin);
scanf("%d", &ncadeira);

precisa limpar o buffer ->fflush(stdin)

4 horas atrás, Miguel B. disse:

printf("Bem Vindo Sr.(a) %c\n", nomeptc);

assim tu esta mostrando um caractere %c    ->  assim uma string  ("%s ", nomeptc)

nomeptc é um vetor acho que tu quer uma matriz

  • Curtir 1
Postado

Muito Obrigado cara, funcionou, só uma coisa quando eu vou colocar os dados depois de escolher a cadeira o cursos pulo direto para RG e não me deixa escrever meu nome, tentei alterar algumas coisas tipo de gets para scanf, mas não consegui mudar nada.

  • Curtir 2
Postado

Valeu  cara agora sim o programa foi.

Muito obrigado!

Só uma última dúvida tenho que marcar como resolvido ou o fórum fecha o post automaticamente?

  • Curtir 2
  • 1 ano depois...
Postado

@Murilo Murilo    o visual studio é moderno e tem dificuldades para executar comandos antigos e que já estão em desuso , tipo gest , getch , e até o scanf , mas fazendo adaptações você conseguirá rodar esse código , por exemplo , para o scanf adicione essa linha como sendo a primeira

do programa ,

#define _CRT_SECURE_N0_WARNINGS

e os outros ainda não descobri o quê fazer ,  então faça uma pesquisa  para descobrir , e assim esse código está agora com menos erros  :

#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include "cstring"
#include "time.h"
/*
    para usar scanf coloque o #define _CRT_SECURE_NO_WARNINGS
    o VS é Moderno e não aceita comandos antigos yipo :  getch , gets, então substitua eles 
*/
int main()
{
    char login[] = "admin";
    char nome[10], senha[10], nomeptc[40], email[40];
    char password[] = "adm123";
    int v, l, qtd, qtd2, nassento;
    int op, cadeiras[55], status[55], i, rg[10], dtn[15], 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("cls");
        printf("Digite seu login: ");
        fgets(nome,20,stdin);
        l = strcmp(login, nome);
        if (l == 0) {
            printf("Digite sua Senha: ");
            fgets(senha, 20, stdin);
            v = strcmp(password, senha);
            if (v == 0)
            {
                while (op != 4) {
                    system("cls");
                    printf("1-Gerenciar Visitante\n");
                    printf("2-Realizar sorteio\n");
                    printf("3-Enviar comunicado por E-mail\n");
                    printf("4-Sair\n");
                    printf("Escolha uma das opções acima: ");
                    scanf("%d", &op);
                    switch (op)
                    {
                    case 1:
                        system("cls");
                        while (op != 7)
                        {
                            system("cls");
                            printf("Palestra dos Direitos Humanos\n");
                            printf("==============\n\n");
                            printf("1- Incluir Participante\n");
                            printf("2- Excluir Participante\n");
                            printf("3- Alocar aluno\n");
                            printf("4- Listar lugares ocupadas\n");
                            printf("5- Listar lugares livres\n");
                            printf("6- Listar todas os lugares\n");
                            printf("7- Retornar ao menu anterior\n");
                            printf("Escolha sua opcao: ");
                            scanf("%d", &op);
                            switch (op)
                            {
                            case 1:
                                system("cls");
                                printf("Por favor\n Informe os dados solicitados: \n\n");
                                printf("Digite o numero do assento desejado: ");
                                scanf("%d", &ncadeira);

                                printf("\nDigite seu nome: ");
                                fgets(nomeptc, 20, stdin);

                                printf("\nDigite seu RG: ");
                                scanf("%d",&rg);
                                printf("\nDigite sua Data de Nascimento: ");
                                scanf("%d",&dtn);
                                printf("\nDigite o E-mail: ");
                                fgets(email, 20, stdin);

                                printf("\nHora: %i:%i", tempo->tm_hour, tempo->tm_min);
                                printf("\nData: %d/%d/%d", data->tm_mday, data->tm_mon, data->tm_year);
                                getch();
                                if (status[ncadeira - 1] == 1) {
                                    printf("Assento ja reservado. Verifique outro lugar.");
                                    getch();
                                }
                                // Aqui será feito o cadastro do Participante


                                else {
                                    for (i = 0; i < 55; i++)
                                    {
                                        if (ncadeira == cadeiras[i])
                                        {
                                            status[i] = 1;
                                            printf("Assento reservado com sucesso!\n");
                                            printf("Bem Vindo Sr.(a) %c\n", nomeptc[i]);
                                            printf("E-mail de Contato: %c\n", email[i]);
                                            printf("Seu numero de assento: %d", ncadeira);
                                            getch();
                                        }
                                    }
                                    getch();
                                }
                                break;
                                // Aqui é a parte que verifica se tem lugar disponível e se tiver o cadastro é efetuado.

                            case 2:
                                system("cls");
                                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!");
                                    getch();
                                }

                                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]);
                                        getch();
                                        i = 10;
                                        encontrou = 1;
                                    }
                                    i++;
                                }
                                if (encontrou == 0)
                                {
                                    printf("Nao existe lugar disponivel!");
                                    getch();
                                    break;
                                }
                                //Aqui é para Alocar o Participante em um lugar aleatório que não esteja ocupado

                            case 4:

                                system("cls");
                                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");
                                }
                                getch();
                                break;
                                // Aqui é listados todos os lugares que ja foram ocupados.


                            case 5:
                                system("cls");
                                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");
                                }
                                getch();
                                break;
                                //Aqui deveria mostrar toos os lugares livres.


                            case 6:
                                system("cls");
                                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]);
                                    }
                                }
                                getch();
                                break;
                                //Aqui Mostra todos os lugares independente da situação.


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


                        getch();

                    case 4:
                        break;
                    }
                }
            }
            else {
                printf("Senha Invalida!");
                qtd = qtd + 1;
                getch();
            }

            if (qtd == 3)
            {
                system("cls");
                printf("Acesso Negado!");
                getch();
            }
        }
        else
        {
            printf("Login inválido");
            qtd = qtd2 + 1;
            getch();
        }
        if (qtd2 == 3)
        {
            system("cls");
            printf("Acesso Negado!");
            getch();
        }
    }
}

mas ainda os tem .

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