Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Para controle dos veículos que circulam em uma determinada cidade bem
- pequena (mas muito pequena mesmo), a Secretaria dos Transportes criou um
- registro-padrão que tem as seguintes informações: proprietário, combustível
- (que pode ser álcool,diesel ou gasolina), modelo, cor, número do chassi,
- ano e placa (placa possui os 3 primeiros valores alfabéticos e os 4 restantes
- valores numéricos). Sabendo que o número máximo de veículos da cidade é de 100
- unidades, faça um programa que possibilite gerar os itens a seguir:
- >> Um procedimento para listar os nomes dos proprietários cujos carros são do ano
- de 1980 ou posterior e que sejam movidos à diesel;
- >> Um procedimento para listar as placas que comecem com a letra A e terminem
- com 0, 2, 4, ou 7 e seus respectivos proprietários;
- >> Um procedimento para listar o modelo e a cor dos veículos cujas placas possuem
- como segunda letra uma vogal.*/
- #include <stdio.h>
- #include <string.h>
- #define MAX 2
- typedef struct {
- char proprietario[50], combustivel[9], modelo[15], cor[15], placa[7];
- int chassi, ano;
- } s_carro;
- //x: carros a registrar. n: carros já registrados. lista_carros: lista de carros
- //Retorna: quantidade de carros já registrados
- int registro_carros(int x, int n, s_carro lista_carros[]);
- //listando proprietarios de carros do ano >1980 movidos a diesel
- void movidos_diesel_pos1980(int n, s_carro lista_carros[]);
- //listando proprietarios de placas Axx-xx0, Axx-xx2, Axx-xx4, Axx-xx7
- void placas_especificas(int n, s_carro lista_carros[]);
- //listando modelo+cor dos carros com placas xAx-xxx, xEx-xxx, xIx-xxx, xOx-xxx, xUx-xxx
- void placas_vogais(int n, s_carro lista_carros[]);
- int main(void){
- s_carro lista_carros[MAX];
- int qtd, qtd_registros=0;
- printf("Gerenciador de carros da Cidade Pequena\n");
- printf("Deseja registrar quantos carros? ");
- scanf("%d", &qtd);
- qtd_registros = registro_carros(qtd, qtd_registros, lista_carros);
- printf("%d carros registrados\n\n", qtd_registros);
- printf("Listando proprietarios de carros movidos a diesel de 1980+ :\n");
- movidos_diesel_pos1980(qtd_registros, lista_carros);
- printf("Listando todos os proprietarios de placas que comecam com A e terminam com 0,2,4,7: \n");
- placas_especificas(qtd_registros, lista_carros);
- printf("Listando todos os proprietarios de placas que têm vogais no segundo digito: \n");
- placas_vogais(qtd_registros, lista_carros);
- fflush(stdin);
- getchar();
- }
- int registro_carros(int x, int n, s_carro lista_carros[]){
- printf("\n |-------| Registro de carros |--------| \n");
- int i;
- for(i = n; i < x; i++){
- printf("Registro %d (%d carros ja registrados)\n",i+1, n);
- fflush(stdin);
- printf("Placa (3 numeros e 3 letras, sem espacos): ");
- gets(lista_carros[i].placa);
- printf("Numero do Chassi: ");
- scanf("%d", &lista_carros[i].chassi);
- fflush(stdin);
- printf("Proprietario: ");
- gets(lista_carros[i].proprietario);
- fflush(stdin);
- printf("Modelo: ");
- gets(lista_carros[i].modelo);
- printf("Ano: ");
- scanf("%d", &lista_carros[i].ano);
- fflush(stdin);
- printf("Combustivel (gasolina/alcool/diesel): ");
- gets(lista_carros[i].combustivel);
- fflush(stdin);
- printf("Cor: ");
- gets(lista_carros[i].cor);
- }
- printf("\nRegistro concluido\n");
- return i+1;
- }
- void movidos_diesel_pos1980(int n, s_carro lista_carros[]){
- for(int i = 0; i < n; i++){
- if(strcmp(lista_carros[i].combustivel, diesel)==0 && lista_carros[i].ano >= 1980){
- printf("%s\n",lista_carros[i].nome);
- }
- }
- }
- void placas_especificas(int n, s_carro lista_carros[]){
- for(int i=0; i<n; i++){
- if(
- (lista_carros[i].placa[0] == 'a' || lista_carros[i].placa[0] == 'A') &&
- (lista_carros[i].placa[5] == '0' ||
- lista_carros[i].placa[5] == '2' ||
- lista_carros[i].placa[5] == '4' ||
- lista_carros[i].placa[5] == '7')
- )
- printf("%s\n",lista_carros[i].proprietario);
- }
- }
- void placas_vogais(int n, s_carro lista_carros[]){
- for(int i=0; i<n; i++){
- if(
- (lista_carros[i].placa[1] == 'a' || lista_carros[i].placa[1] == 'A') ||
- (lista_carros[i].placa[1] == 'e' || lista_carros[i].placa[1] == 'E') ||
- (lista_carros[i].placa[1] == 'i' || lista_carros[i].placa[1] == 'I') ||
- (lista_carros[i].placa[1] == 'o' || lista_carros[i].placa[1] == 'O') ||
- (lista_carros[i].placa[1] == 'u' || lista_carros[i].placa[1] == 'U')
- )
- printf("Modelo: %s | Cor: %s \n", lista_carros[i].modelo, lista_carros[i].cor);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement