Ir ao conteúdo
  • Cadastre-se

C Controle de estacionamento, como fazer?


Def

Posts recomendados

5 minutos atrás, herbertbahia disse:

voce nao precisar mais de uma vez fazer as mesmas verificações perceba que so sao tres: if para menor , else if para maior e else para equivalente. e ja sao ate demais. sobre a sua duvida de repetir para o usuario digitar de novo voce pode usar as famosas Estruturas de repetição da linguagem c : tem o famoso while, do while ou goto.

@herbertbahia como ficaria com o while, sabe me informar? ou goto se preferir, vai me ajudar demaaais preciso entregar esse trabalho até terça então to correndo contra o tempo kkkk

Link para o comentário
Compartilhar em outros sites

percebi agora que usou para as verificacoes if para variaveis diferentes está correto pensei que havia repetido desnecessariamente..

sobre os exemplos das estruturas de reptição..

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//dados cadastrais do cliente
    struct cad_cliente{
    char nome[10];
    int idade;
    char CPF_CNPJ[20];
    char CNH[30];
    char Endereco[50];
    };
    int main(void){
    char aux[200];
    struct cad_cliente info;
    int opcao;
    while(1){
            system("cls");
       printf("-----------------------------------------\n");
    printf("\tCONTROLE DE ESTACIONAMENTO\n");
    printf("-----------------------------------------\n\n");
    printf("1- Cadastrar Cliente\n");
    printf("\n2- Cadastrar Veiculo\n");
    printf("\n3- Listar veiculos cadastrados\n");
    printf("\n4- Creditos\n");
    printf("\n5- Sair\n");
    printf("\nOpcao: ");
    scanf("%d",&opcao);
    switch(opcao){
    case 1:
        system("cls");
    printf("Informe o nome do cliente: ");
    fflush(stdin);
    gets(info.nome);
    printf("Informe a idade do cliente: ");
    scanf("%d", &info.idade);
    
    printf("Informe o CPF/CNPJ do cliente: ");
    cpf:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 11){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("Digite novamente: \n");
    goto cpf;
   
    }
    else if (strlen(aux) > 11){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("Digite novamente: \n");
    goto cpf;
   
    }
    else{
    strcpy(info.CPF_CNPJ,aux);
    }
    printf("Informe o número do CNH do cliente: ");
    cnh:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 11){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("digite novamente: \n");
    goto cnh;

    }
    else if (strlen(aux) > 11){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("digite novamente: \n");
    goto cnh;
   
    }
    else{
    strcpy(info.CNH,aux);
    }

    printf("Informe o endereco do cliente: ");
    gets(info.Endereco);
    system("pause");
    break;
    }
    }
	}

 

Link para o comentário
Compartilhar em outros sites

14 minutos atrás, Def disse:

precisa de acesso pra acessar o link, mas olha a print que enviei. Eu usei o \n mas não deu certo

oh me perdoe eu nao sabia que precisava disso foi a primeira vez que compartilhei um pdf mas entao decidir carregar no sendspace para ficar mais fácil para quem quiser 😁 este e o link ..

 

https://www.sendspace.com/file/n3qj46

 

 

adicionado 0 minutos depois
19 minutos atrás, arfneto disse:

Não despreze o for :)

mds como esquecir dessa jóia 😄

  • Haha 1
Link para o comentário
Compartilhar em outros sites

@herbertbahia cara você me ajudou demais você não tem noção. Agradeço muito por você ter se disponibilizado para me ajudar, você é muito inteligente. Agora que finalizei a parte do cadastro do cliente, tem como eu usar o mesmo procedimento para fazer o cadastro do veículo com aqueles mesmo códigos só que alterando os nomes como "nome_placa"??

Link para o comentário
Compartilhar em outros sites

4 minutos atrás, Def disse:

cara você me ajudou demais você não tem noção. Agradeço muito por você ter se disponibilizado para me ajudar, você é muito inteligente. Agora que finalizei a parte do cadastro do cliente, tem como eu usar o mesmo procedimento para fazer o cadastro do veículo com aqueles mesmo códigos só que alterando os nomes como "nome_placa"??

vá em frente se não tentar como vai saber... se tiver problemas o que é bem provavel questione, eu nao estou aqui para fazer os exercicios dos outros e sim para sanar duvidas, pois bem espero que alem de ter entendido o modelo que desenvolvemos tenha comprendido as outras explicações e modelos citados por outros membros do fórum que se disponibilizam para contribuir com o conhecimento. 

Link para o comentário
Compartilhar em outros sites

26 minutos atrás, Def disse:

Agora que finalizei a parte do cadastro do cliente, tem como eu usar o mesmo procedimento para fazer o cadastro do veículo com aqueles mesmo códigos só que alterando os nomes como "nome_placa"

 

Praticamente o mesmo problema, praticamente a mesma solução. Não devia abrir dois tópicos com o mesmo problema.
 

 

Espero que tenha entendido o que eu te expliquei (no outro tópico). Acho que está tendo mais trabalho do que o normal com esse programa e talvez seja por ter misturado muitas coisas no programa desde o início. Bom que afinal está conseguindo concluir.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@arfneto @herbertbahia 

Sim, eu tentei com a estrutura do cadastro do cliente mas não deu certo kkkk acho que fiz algo de errado só não sei bem o que. Dá uma olhada

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//dados cadastrais do cliente
    struct cad_cliente{
    char nome[10];
    int idade;
    char CPF_CNPJ[20];
    char CNH[30];
    char Endereco[50];
    };
    int main(void){
    char aux[200];
    struct cad_cliente info;
    int opcao;
    while(1){
            system("cls");
       printf("-----------------------------------------\n");
    printf("\tCONTROLE DE ESTACIONAMENTO\n");
    printf("-----------------------------------------\n\n");
    printf("1- Cadastrar Cliente\n");
    printf("\n2- Cadastrar Veiculo\n");
    printf("\n3- Listar veiculos cadastrados\n");
    printf("\n4- Creditos\n");
    printf("\n5- Sair\n");
    printf("\nOpcao: ");
    scanf("%d",&opcao);
    switch(opcao){
    case 1:
        system("cls");
    printf("Informe o nome do cliente: ");
    fflush(stdin);
    gets(info.nome);
    printf("Informe a idade do cliente: ");
    scanf("%d", &info.idade);

    printf("Informe o CPF/CNPJ do cliente: ");
    cpf:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 11){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("Digite novamente: ");
    goto cpf;
    break;
    }
    else if (strlen(aux) > 11){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("Digite novamente: ");
    goto cpf;
    break;
    }
    else{
    strcpy(info.CPF_CNPJ,aux);
    }
    printf("Informe o número do CNH do cliente: ");
    cnh:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 11){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("digite novamente: ");
    goto cnh;
    break;
    }
    else if (strlen(aux) > 11){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("digite novamente: ");
    goto cnh;
    break;
    }
    else{
    strcpy(info.CNH,aux);
    }

    printf("Informe o endereco do cliente: ");
    gets(info.Endereco);
    system("pause");
    break;
    }
    }
	}

	//dados cadastrais do veiculo
    struct cad_veiculo{
    char placa[10];
    int modelo;
    char marca[20];
    char cor[30];
    char Ano[50];
    };
    
    char aux[200];
    struct cad_veiculo info;
    int opcao;

    switch(opcao){
    case 2:
        system("cls");
    printf("Informe o numero da placa: ");
    placa:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 7){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("Digite novamente: ");
    goto placa;
    break;
    }
    else if (strlen(aux) > 7){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("Digite novamente: ");
    goto placa;
    break;
    }
    else{
    strcpy(info.placa,aux);
    }
    printf("Informe o modelo do veiculo: ");
    modelo:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 17){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("digite novamente: ");
    goto modelo;
    break;
    }
    else if (strlen(aux) > 17){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("digite novamente: ");
    goto modelo;
    break;
    }
    else{
    strcpy(info.modelo,aux);
    }
    printf("Informe a marca do veiculo: ");
    gets(info.marca);
    system("pause");
    printf("Informe a cor do veiculo: ");
    gets(info.marca);
    system("pause");
    printf("Informe o ano do veiculo: ");
    gets(info.Endereco);
    system("pause");
    break;
    }

 

Link para o comentário
Compartilhar em outros sites

@Mauro Britivaldo Sim, já mudei isso

adicionado 34 minutos depois

@arfneto Eu fiz tudo certinho e ainda tá dando esse erro "error: expected declaration or statement at end of input" na linha 69 que é a parte final do terminal "}" sabe o que pode ser? ta dizendo que não declarei a função parece

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

	//dados cadastrais do veiculo
    struct cad_veiculo{
    char placa[10];
    int modelo;
    char marca[20];
    char cor[30];
    char ano[50];
    };
    int main(void){
    char aux[200];
    struct cad_veiculo info;
    int opcao;

    switch(opcao){
    case 2:
        system("cls");
    printf("Informe o numero da placa: ");
    placa:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 7){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("Digite novamente: ");
    goto placa;
    break;
    }
    else if (strlen(aux) > 7){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("Digite novamente: ");
    goto placa;
    break;
    }
    else{
    strcpy(info.placa,aux);
    }
    printf("Informe o modelo do veiculo: ");
    modelo:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 17){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("digite novamente: ");
    goto modelo;
    break;
    }
    else if (strlen(aux) > 17){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("digite novamente: ");
    goto modelo;
    break;
    }
    else{
    strcpy(info.modelo,aux);
    }
    printf("Informe a marca do veiculo: ");
    gets(info.marca);
    system("pause");
    printf("Informe a cor do veiculo: ");
    gets(info.cor);
    system("pause");
    printf("Informe o ano do veiculo: ");
    gets(info.ano);
    system("pause");
    break;
    }

 

Link para o comentário
Compartilhar em outros sites

@herbertbahia  Assim? scanf(info.modelo,aux) ainda persistiu o erro, tentei com scanf("%s",info.modelo); mas também continuou o erro 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

	//dados cadastrais do veiculo
    struct cad_veiculo{
    char placa[10];
    int modelo;
    char marca[20];
    char cor[30];
    char ano[50];
    };
    int main(void){
    char aux[200];
    struct cad_veiculo info;
    int opcao;

    switch(opcao){
    case 2:
        system("cls");
    printf("Informe o numero da placa: ");
    placa:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 7){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("Digite novamente: ");
    goto placa;
    break;
    }
    else if (strlen(aux) > 7){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("Digite novamente: ");
    goto placa;
    break;
    }
    else{
    strcpy(info.placa,aux);
    }
    printf("Informe o modelo do veiculo: ");
    modelo:
    fflush(stdin);
    gets(aux);
    if (strlen(aux) < 17){
    printf("erro quantidade de digitos menor do que o correto\n");
    printf("digite novamente: ");
    goto modelo;
    break;
    }
    else if (strlen(aux) > 17){
    printf("erro quantidade de digitos maior do que o correto\n");
    printf("digite novamente: ");
    goto modelo;
    break;
    }
    else{
    scanf(info.modelo,aux);
    }
    printf("Informe a marca do veiculo: ");
    gets(info.marca);
    system("pause");
    printf("Informe a cor do veiculo: ");
    gets(info.cor);
    system("pause");
    printf("Informe o ano do veiculo: ");
    gets(info.ano);
    system("pause");
    break;
    }

 

Link para o comentário
Compartilhar em outros sites

Falta uma chave no final

 

Seu IDE não fecha partes do codigo clicando em + ou - e tal? Assim ajuda a ver. 

 

Alinhe melhor seu texto se o próprio IDE não faz isso para você. 

Veja abaixo o sinal '-'. Se você clica nisso o programa --- o IDE, que é masculino --- em geral vai comprimindo o código pra facilitar a concentração em algum trecho. 

 

Alguns IDE até mudam a cor das chaves e parenteses e traçam sozinhos uma linha entre cada par para facilitar a visualização. 
 

image.png.f3e33db843422e94c5e3dca8b4d15a51.png

 

Ao clicar no  '-'

image.png.e56a189d42723610f66c8908f7774c39.png

 

adicionado 3 minutos depois

Assim você vai entender melhor:

 

image.png.7788c2ec896131d40be6bc82c3414e20.png

 

tem a struct, o switch e falta a chave do main()

Link para o comentário
Compartilhar em outros sites

10 minutos atrás, Def disse:

Ahh entendi o que quis dizer, interpretei errado peço desculpas. Essa chave que você fala é o do main certo? mas onde eu tenho que colocar o main() eu coloquei abaixo do switch e deu erro

 

Não. Você apenas vai fechando as partes internas e vai ficar claro onde está faltando a chave...

adicionado 0 minutos depois

Como no desenho que te mostrei, as 3 imagens

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!