Ir ao conteúdo
  • Cadastre-se

C Programa de cadastro em linguagem C


Miguel B.
Ir à solução Resolvido por Gabriel_Moro,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

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

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