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 XXX-YYYY; onde X denota as letras e Y 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.
Referência DEITEL, P. J.; DEITEL, H. C: Como Programar. 6. ed. São Paulo: Pearson Prentice Hall, 2011. [Recurso eletrônico, Biblioteca Virtual Universitári
bom , seguinte recomendo estudar algoritmo pra criar essas funções de ordenar por nome ou data vou te mostrar o sistema que eu fiz pra ordenar.
no caso tem q criar uma função fora do main com o comando de ordenação , e depois aplicar ele no seu sistema. ^^
struct veiculo{
char marca[10];
char modelo[10];
int anofabricacao;
char placaletra[10];
int placanumero;
};
void insertionSortFabricacao(struct veiculo *v, int N) { //algoritmo de ordenação de fabricação
int i,j;
struct veiculo aux;
for(i = 1;i < N; i++) {
aux = v[i];
for(j=i;(j>0) && (aux.anofabricacao<v[j-1].anofabricacao);j--)
v[j] = v[j -1];
v[j] = aux;
}
}
void insertionSortModelo(struct veiculo *v, int N) { //algoritmo de ordenação de Modelo ta meio bugado mas n consegui fazer funcionar 100%
int i,j;
struct veiculo aux;
for(i = 1;i < N; i++) {
aux = v[i];
for(j=i;(j>0) && (strcmp(aux.modelo,v[j - 1].modelo)<0);j--)
v[j] = v[j -1];
v[j] = aux;
}
}
pode aplicar eles assim exemplo:
if (selecao == 2){
insertionSortFabricacao(v,10); // <- aqui aplico o algoritmo de ordenação antes de listar os veiculos
for(i=0; i<10;i++){
printf("\n");
printf("DADOS DO CARRO\n");
printf("=============================\n");
printf("Ano de Fabricacao %d\n ",v[i].anofabricacao);
printf("Marca %s\n ",v[i].marca);
printf("Modelo %s\n ",v[i].modelo);
printf("Placa %s",v[i].placaletra);
printf("-");printf("%d\n",v[i].placanumero);
}
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar