Exercicio 5
A) Definir Estrutura
struct Carro{
char marca[15];
char modelo[15];
int ano;
float preco;
};
B) Função Inserir Carro
void inserirCarro(struct Carro coche[], int n){
int i;
for(i = 0; i < n; i++){
// inserir marca
printf("Insira a marca do carro: ");
fflush(stdin);
gets(coche[i].marca);
// inserir modelo
printf("Insira a modelo do carro: ");
fflush(stdin);
gets(coche[i].modelo);
// inserir ano
printf("Insira o ano de lancamento: ");
scanf("%d",&coche[i].ano);
// inserir preço
printf("Insira o preco do carro: ");
scanf("%f",&coche[i].preco);
}
}
C) Função enviar carros para ficheiro
void enviarCarrosFile(char nomefile[], struct Carro coche[], int n){
int i;
FILE* ficheiro = fopen(nomefile, "w");
if(ficheiro != NULL){
for(i = 0; i < n; i++){
fprintf(ficheiro,"%s | %s | %d | %.2f$",coche[i].marca,
coche[i].modelo
coche[i].ano,
coche[i].preco
);
}
fclose(ficheiro);
}
}
D) Função ler todos os carros do ficheiro
void mostrarCarro(char nomefile[], struct Carro coche[], int n, char marca[]){
int i, encontrado = 0;
FILE* ficheiro = fopen(nomefile, "r");
if(ficheiro != NULL){
for(i = 0; i < n; i++){
// ler caros
fscanf(ficheiro,"%s%s%d%f", coche[i].marca,
coche[i].modelo,
&coche[i].ano,
&coche[i].preco
);
// checar marca
/* presisa incluir a biblioteca <string.h> */
if( strcmp(coche[i].marca, marca) == 0){
printf("Marca : %s\n",coche[i].marca);
printf("Modelo: %s\n",coche[i].modelo);
printf("Ano : %d\n",coche[i].ano);
printf("Preço : %.2f$\n\n",coche[i].preco);
encontrado++;
}
}
if(encontrado == 0){
printf("Não há nenhum carro disponível");
}else{
printf("%d carros disponíveis", encontrado);
}
fclose(ficheiro);
}
}
E) Função MAIN()
int main()
{
int N = 5;
struct Carro carro[N];
FILE* f = fopen("carro.txt", "w");
inserirCarro(carro, N);
enviarCarrosFile("carro.txt", carro, N);
char pesquisa_marca[20];
printf("Pesquizar por marca de carro:");
fflush(stdin);
gets(pesquisa_marca);
mostrarCarro("carro.txt", carro, N, pesquisa_marca);
return 0;
}