Ir ao conteúdo
  • Cadastre-se

C Sistema Cadastro de veículos encerrando. Programação em C


Posts recomendados

Fiz esse código referente a essa atividade:

"é necessário armazenar informações de no máximo, 10 veículos. Cada um deles precisa ter esses dados:

- marca

- ano de fabricação

- placa no formato XXX-YYYY

Precisa ter essas funcionalidades:

Listar os veículos cadastrados

Inserir um novo veículo

Listar os veículos filtrando-se por ano de fabricação

Listar os veículos com o ano de fabricação acima de um certo valor especificado pelo usuário

Listar os veículos filtrando-se pelo modelo.

O sistema deverá armazenar os veículos ordenados pelo ano de fabricação, ou seja, ao inserir um novo veículo, este deve ser inserido em ordem crescente de ano de fabricação."

 

Mas estou encontrando dificuldade pois preciso que o programa não encerre após o cadastro dos 10 veículos e volte para o menu onde escolhe as opções, pois preciso que ele faça a leitura dos dados mesmo se os 10 já estiverem cadastrados e o mesmo está fechando, não tenho ideia do que posso fazer...

Tem algumas variáveis perdidas no código sem uso pois estava tentando arrumar

Segue o código.

 

#include <iostream> 
#include <string.h> 
#include <conio.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
/* run this program using the console pauser or add your own 
getch, system("pause") or input loop */ 
typedef struct carro { 
    int codigo; 
    char marca [20]; 
    char modelo [20]; 
    int ano; 
    char placa[10]; 
}carro; 
carro car[10];  


int main(int argc, char** argv) { 
    setlocale(LC_ALL,"portuguese"); 
    int i; 
    int op; 
    int ano; 
    int z; 
    int ano2;
    int b;
    char modelo[20]; 
    z=0; 
    ano=0; 
    i=0; 
    car[i].codigo = 0; 
    strcpy(car[i].marca,"NULL"); 
    strcpy(car[i].modelo,"NULL"); 
    strcpy(car[i].placa,"NULL"); 
    car[i].ano = 0; 
    car[b].ano = 0;
    do { 
        printf(" ======================================== "); 
        printf("\n MENU CADASTRO DE VEÍCULOS\n"); 
        printf(" ======================================== ");
        printf("\n OPÇÕES:"); 
        printf("\n 1. |CADASTRAR NOVO VEÍCULO"); 
        printf("\n 2. |LISTAR TODOS OS VEÍCULOS"); 
        printf("\n 3. |FILTRAR VEÍCULO POR MODELO"); 
        printf("\n 4. |LISTAR VEÍCULOS A PARTIR DE UM ANO");
        printf("\n 5. |LISTAR VEÍCULO DE UM ANO DE FABRICAÇÃO ESPECÍFICO"); 
        printf("\n 6. |SAIR\n"); 
        printf(" ======================================== ");
        printf("\n \n DIGITE O NÚMERO DA OPÇÃO DESEJADA: "); 
        scanf(" %d",&op); 
        switch(op){ 
            case 1: 
            if (car[i].codigo<=9) 
            { 
                car[i].codigo=i; 
                printf("\n Digite a marca do veículo: "); 
                scanf(" %s",&car[i].marca); 
                printf("\n Digite o modelo do veículo: "); 
                scanf(" %s",&car[i].modelo); 
                printf("\n Digite a placa do veículo (ex: XXX-YYYY): "); 
                scanf(" %s",&car[i].placa); 
                printf("\n Digite o ano do veículo *(somente números): "); 
                scanf(" %d",&car[i].ano); 
                printf("\n");
                i=i+1; 
            } 
        else 
        { 
            printf("\n O limite máximo de cadastro de veículos foi atingido."); 
        } 
        break; 
        case 2: 
            for(int x=0; x<i; x++) 
        { 
            printf("\n A marca do veículo é: %s",car[x].marca); 
            printf("\n O modelo do veículo é: %s",car[x].modelo); 
            printf("\n O ano do veículo é: %d",car[x].ano); 
            printf("\n A placa do veículo é: %s",car[x].placa); 
            printf("\n\n =================================== \n \n"); 
        } 
        break; 
        case 3: 
        printf("\n INSIRA O MODELO A SER PESQUISADO:"); 
        scanf(" %s",&modelo); 
            for (int x=0; x<i; x++) 
            { 
                if (strcmp(car[x].modelo,strlwr(modelo)) == 0) 
                { 
                    printf("\n A marca do veículo é: %s",car[x].marca); 
                    printf("\n O modelo do veículo é: %s",car[x].modelo); 
                    printf("\n O ano do veículo é: %d",car[x].ano); 
                    printf("\n A placa do veículo é: %s",car[x].placa); 
                    printf("\n\n =================================== \n \n"); 
                    z++; 
                } 
            } 
        if (z==0) 
        { 
            printf("\n NÃO FOI ENCONTRADO O MODELO %s \n\n",modelo); 
        } 
        else 
        { 
            z=0; 
        } 
        break; 
        case 4: 
            printf("\n INSIRA O ANO A SER PESQUISADO:"); 
            scanf(" %d",&ano); 
            for (int x=0; x<i; x++) 
                { 
                    if (car[x].ano >= ano) 
                    { 
                        printf("\n A marca do veículo é: %s",car[x].marca); 
                        printf("\n O modelo do veículo é: %s",car[x].modelo); 
                        printf("\n O ano do veículo é: %d",car[x].ano); 
                        printf("\n A placa do veículo é: %s",car[x].placa); 
                        printf("\n\n =================================== \n \n"); 
                        z++; 
                    } 
                } 
        if (z==0) 
        { 
            printf("\n NÃO FOI ENCONTRADO VEÍCULOS ACIMA DE %d \n\n",ano); 
        } 
        else 
        { 
            z=0; 
        } 
        break; 
        case 5:
            printf("DIGITE O ANO DE FABRICAÇÃO A SER PESQUISADO:");
            scanf("%d",&ano2);
            for (int x=0; x<i; x++){
        
                if (car[x].ano==ano2)
                {
                    printf("\n\n =================================== \n \n");
                    printf("\n OS VEÍCULOS ENCONTRADOS NO ANO %d",ano2);
                    printf("\n\n =================================== \n \n");
                    printf("\n A marca do veículo é: %s",car[x].marca); 
                    printf("\n O modelo do veículo é: %s",car[x].modelo); 
                    printf("\n O ano do veículo é: %d",car[x].ano); 
                    printf("\n A placa do veículo é: %s",car[x].placa); 
                    printf("\n\n =================================== \n \n");
                    z++;
            

                }
            }
        if (z==0){
            printf("NÃO FORAM ENCONTRADOS VEÍCULOS CADASTRADOS COM O ANO DE FABRICAÇÃO ESPECIFICADO.\n");
        }
        else{
            z=0;
        }
        break;
        case 6:
            exit(0);
        default: 
        printf("\n *Opção não existe, digite novamente.*\n\n"); 
        break; 
        } 
    } 
    while (op!=6 && i<=9); 
    if (i==9) 
    { 
        printf("\n \n LIMITE DE VEÍCULOS ALCANÇADO! \n \n \n"); 
    } 
        for (int y=0; y<i; y++) 
        { 
        printf("\n A marca do veículo é: %s",car[y].marca); 
        printf("\n O modelo do veículo é: %s",car[y].modelo); 
        printf("\n O ano do veículo é: %d",car[y].ano); 
        printf("\n A placa do veículo é: %s",car[y].placa); 
        printf("\n\n =================================== \n \n"); 
    } 
    return 0;
}

 

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

typedef struct carro { 
    int codigo; 
    char marca [20]; 
    char modelo [20]; 
    int ano; 
    char placa[10]; 
}carro; 
carro car[10]; 

 

Nunca, por nenhuma razão declare variáveis globais em C

 

Faça sua vida mais simples e declare uma estrutura para conter os Carro... E com um contador.

 

é o simples. Ao ver que está lotado não inclua mais nenhum. Só isso. Do modo como escreveu está muito complicado a toa. E frágil. Por isso está cancelando.

 

Use funções.. É muito mais fácil.

 

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

4 horas atrás, Daniel Ferreira Ribeiro disse:

@arfneto Mas e se eu colocar todo esse código dentro de um loop de 'for', daria certo? Meu prazo pra realizar a atividade é muito pouco e sou iniciante :((((( 

 

Sim, é muito mais fácil e vai terminar em menos tempo ;) 

 

Se tivesse feito isso na terça á teria terminado. E não diria que é " todo "  esse código...

 

Você escreveu um programa bem grande antes de testar qualquer coisa...

  • Curtir 1
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...