Ir ao conteúdo
  • Cadastre-se

Ajuda em struct com vetores


Daniel Kenzo

Posts recomendados

Preciso de ajuda nesse código, eu quero armazenar a informação de 10 carros na struct usando vetores, obg!


 

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

struct CARRO {
char placa[9]; //AAA-1234
char modelo[50]; //gol, celta, palio, ...
char fabricante[50];//chevrolet, fiat, ...
int ano_fabricacao;
int ano_modelo;
char combustivel[50]; //alcool, gasolina, flex, diesel
float preco_venda;
};


char geraAlfabeto() {
int i;
char letras[] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

i=rand()%26;
return(letras-32);
}

char geraNumero() {
int i;
char numeros[] = { '0','1','2','3','4','5','6','7','8','9'};

i=rand()%9;
return(numeros);
}

void geraPlaca(char *p) {

srand( (unsigned)time(NULL) );
p[0]=geraAlfabeto();
p[1]=geraAlfabeto();
p[2]=geraAlfabeto();
p[3]='-';
p[4]=geraNumero();
p[5]=geraNumero();
p[6]=geraNumero();
p[7]=geraNumero();
p[8]='\0';
}

void geraModelo(char *modelo) {
char mod[][50]={"Gol","Celta","Palio","S10","Logan","Uno","Up"};

srand( (unsigned)time(NULL) );
strcpy(modelo,mod[rand()%7]);
}

void geraFabricante(char *fabricante) {
char fab[][50]={"VW","GM","Fiat","Renault"};

srand( (unsigned)time(NULL) );
strcpy(fabricante,fab[rand()%4]);
}

int geraAnoFabricacao() {
int i;

srand( (unsigned)time(NULL) );
i=rand()%115;
return(i+1900);
}

int geraAnoModelo(int anoFabricacao) {
int i;

srand( (unsigned)time(NULL) );
i=rand()%2;
return(i+anoFabricacao);
}

void geraCombustivel(char *combustivel) {
char comb[][50]={"alcool","gasolina","diesel","flex"};

srand( (unsigned)time(NULL) );
strcpy(combustivel,comb[rand()%4]);
}

float geraPrecoVenda() {
int centena, milhar, dezena_milhar;
float preco;

srand( (unsigned)time(NULL) );
do {
centena=rand()%9;
} while(centena==0);
do {
milhar=rand()%9;
} while(milhar==0);
do {
dezena_milhar=rand()%9;
} while(dezena_milhar==0);

preco=(centena*100.0)+(milhar*1000.0)+(dezena_milhar*10000.0);
return(preco);
}

void geraRegistro(struct CARRO *car) {

geraPlaca(car->placa);
geraModelo(car->modelo);
geraFabricante(car->fabricante);
car->ano_fabricacao=geraAnoFabricacao();
car->ano_modelo=geraAnoModelo(car->ano_fabricacao);
geraCombustivel(car->combustivel);
car->preco_venda=geraPrecoVenda();
}

void imprimeRegistro(struct CARRO car) {

printf("\nPlaca :%s",car.placa);
printf("\nModelo :%s",car.modelo);
printf("\nFabricante :%s",car.fabricante);
printf("\nAno Fabricao:%d",car.ano_fabricacao);
printf("\nAno Modelo :%d",car.ano_modelo);
printf("\nCombustivel :%s",car.combustivel);
printf("\nPreco Venda :%.2f",car.preco_venda);
}

void sleep(time_t delay) {
time_t timer0, timer1;

time(&timer0);
do {
time(&timer1);
} while((timer1-timer0)<delay);
}

int main()
{
struct CARRO car;

for(i=0;i<10;i++){
  geraRegistro(&car);
  imprimeRegistro(car);
  sleep(1);
  printf("\n");
}

return 0;
}

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!