• Matéria: Informática
  • Autor: rikercosta
  • Perguntado 5 anos atrás

Em linguagens de programação estruturadas, tal como a linguagem C/C++ temos a possibilidade de organizar as informações a serem manipuladas sob dois aspectos: organização homogênea e organização heterogênea. No viés homogêneo, todas as informações, possuidoras de um único tipo de dados, estão dispostas em uma estrutura denominada vetor. E, por sua vez, no viés heterogêneo, as informações, podendo possuir tipagens distintas, estão armazenadas em estruturas de dados denominadas como “struct”.

Com base nisso, suponha que é necessário armazenar informações relacionadas à veículos, totalizando, no máximo, 10 veículos. Para cada veículo, deverão ser fornecidos os seguintes dados:

- marca do veículo

- modelo - ano de fabricação

- placa (formato 000-1111; onde 0 denota as letras e 1 denota os números da placa).

O sistema deverá oferecer, ao usuário, as seguintes 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.


fabiojbarbosa: Poxa!? Ningém para ajudar!? :(
carlosasanches: disponibilizei aqui https://brainly.com.br/tarefa/24112749

Respostas

respondido por: LucianoBarretto
8

Resposta:

#include <iostream>

#include <stdio.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {

struct carro{

 

char marca[10];

char modelo[10];

char placa[10];

int ano;

};

struct carro carro;

int i,j;

int vetor[10];

int aux;

for(i=0;i<10;i++){  

printf("\n\nCarro\n\n");

printf("Digite a marca:");

fgets(carro.marca, 10, stdin);

printf("Digite o modelo:");

fgets(carro.modelo, 10, stdin);

printf("Digite a placa:");

fgets(carro.placa, 10, stdin);

 

printf("Digite o ano:");

scanf("%d", &vetor[i]);

}

for(i=0;i<10;i++){

for(j=i+1;j<10;j++){

if(vetor[j] < vetor[i]){

aux = vetor[i];

vetor[i] = vetor[j];

vetor[j] = aux;

}

}

}

printf("\n\nDados dos veiculos por ano\n\n");

for(i=0;i<10;i++){

printf("%d,  ", vetor[i]);

}

 

return 0;

}

Explicação:

Consegui este código, rodou bem


carlosasanches: E cadê as funções exigidas no enunciado? Listar veículos por ano, por modelo, por ano acima do especificado pelo usuário. Tá incompleta a questão!
respondido por: yancarvalho3
1

O algoritmo escrito na linguagem de programação C que resolve a problemática dos veículos apresentada acima é:

#include <string.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

#include <ctype.h>

typedef struct carro

{

  int cod;

  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=0;

   int option;

   int ano=0;

   int z=0;

   char modelo[20];

   car[i].cod = 0;

   strcpy(car[i].marca,"NULL");

   strcpy(car[i].modelo,"NULL");

   strcpy(car[i].placa,"NULL");

   

   car[i].ano = 0;

       do{

           printf("\n\nCadastro de carros");

           printf("\n1 - Cadastrar novo carro");

           printf("\n2 - Listar carros cadastrados");

           printf("\n3 - Listar carros por modelo");

           printf("\n4 - Listar carros a partir de um ano informado");

           printf("\n5 - Sair");

           printf("\n\nDigite qual opção deseja: "); scanf("%d",&option);

           

           switch(option){

           case 1:

               if (car[i].cod<=9){

                   car[i].cod=i;

                   printf("\nCarro %i ", i+1);

                   printf("\n\nDigite a marca do carro:"); scanf("%s",car[i].marca);

                   printf("Digite o modelo do carro:"); scanf("%s",car[i].modelo);

                   printf("Digite a placa do carro:"); scanf("%s",car[i].placa);

                   printf("Digite o ano do carro:"); scanf("%d",&car[i].ano);

                       i=i+1;

               }else{

                   printf("Limite de cadastro é 10!");

               }break;                                              

           case 2:

               printf("\n-------- Lista de carros --------");

               for(int x=0; x<i; x++){

                   printf("\nCarro %i ", x+1);

                   printf("\nMarca: %s",car[x].marca);

                   printf("\nModelo: %s",car[x].modelo);

                   printf("\nAno: %d",car[x].ano);

                   printf("\nPlaca: %s",car[x].placa);

                   printf("\n");

               }break;

           case 3:

               printf("\nInforme o modelo do carro: "); scanf("%s",modelo);

                   for (int x=0; x<i; x++){

                       if (strcmp(car[x].modelo, modelo) == 0){

                           printf("\n-------- Modelo %s --------", modelo);

                           printf("\nCarro %i ", x+1);

                           printf("\nMarca: %s",car[x].marca);

                           printf("\nModelo: %s",car[x].modelo);

                           printf("\nAno: %d",car[x].ano);

                           printf("\nPlaca: %s",car[x].placa);

                           printf("\n\n");

                               z++;

                       }

                   }

                   if (z==0){

                       printf("\nNenhum modelo carro de modelo '%s' foi encontrado! \n\n",modelo);

                   }else{

                       z=0;

                   }break;

           case 4:

               printf("\nInforme o ano a ser pesquisado: "); scanf("%d",&ano);

                   for (int x=0; x<i; x++){

                       if (car[x].ano >= ano){

                           printf("\n-------- Ano %s --------", modelo);

                           printf("\nCarro %i ", x+1);

                           printf("\nMarca: %s",car[x].marca);

                           printf("\nModelo: %s",car[x].modelo);

                           printf("\nAno: %d",car[x].ano);

                           printf("\nPlaca: %s",car[x].placa);

                           printf("\n\n");

                               z++;                                                                                                  

                       }

                   }

                   if (z==0){

                       printf("\nNenhum carro com ano acima de '%d' foi encontrado!",ano);

                   }else{

                       z=0;

                   }break;

           case 5:break;

           default:

               printf("\nOpção inexistente!");

               break;

           }

       }

   while (option!=5 && i<=9);

       if (i==9){

           printf("\nLimite de cadastro de carros alcançado!");

       }

       for (int y=0; y<i; y++){

           printf("\nCarro %i ", y+1);

           printf("\nMarca: %s",car[y].marca);

           printf("\nModelo: %s",car[y].modelo);

           printf("\nAno: %d",car[y].ano);

           printf("\nPlaca: %s",car[y].placa);

           printf("\n");

       }

   return 0;

}

Mas de que forma esse algoritmo em C resolve esse problema dos veículos?

Esse algoritmo escrito em C recebe os valores digitados pelo usuário que vai escolher as opções apresentadas.

Caso 1, irá cadastrar um novo veículo com marca, modelo, placa e ano.

Caso 2, irá listar todos os carros cadastrados e suas marcas, modelos, placas e anos.

Caso 3, irá listar todos os carros a partir do modelo digitado pelo usuário, caso não tenha nenhum irá aparecer a mensagem de que o modelo não existe.

Caso 4, irá listar todos os carros a partir do ano digitado pelo usuário, caso não tenha nenhum carro com ano igual ou superior ao digitado irá aparecer a mensagem de que os carros a partir desse ano não existem.

Caso 5, irá fechar o algoritmo e listar os carros caso haja algum.

Default, caso não seja nenhuma das opções apresentadas, irá aparecer uma mensagem de opção inválida e o programa irá fechar.

Saiba mais sobre programação em C aqui: https://brainly.com.br/tarefa/28035640

#SPJ2

Anexos:
Perguntas similares