You are on page 1of 10

#include <stdio.

h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

#include "automobil.h"

//ALOCARE SI REALOCARE DINAMICA

automobil* din_realloc(automobil *a,int n)

a=(automobil*)realloc(a,n*sizeof(automobil));

if(!a)

printf("\a\nNu sa alocat memorie!\n");

system("pause");

exit(1);

return a;

//CITIRE FISIER

automobil* intro_auto(char *fname,int*n)

int i=0,m=0;

automobil *a=NULL;

FILE *demo=fopen(fname,"r");

if(!demo)
{

printf("\aFisierul nu exista!\n");

while(!feof(demo))

m++;

a=din_realloc(a,m);

fscanf(demo,"%s%s%s%d%f",&a[i].marca,&a[i].model,&a[i].origine,&a[i].anu,&a[i].pret);

i++;

*n=m;

fclose(demo);

return a;

//INTRODUCERE MANUALA

automobil* intro_manual(automobil *a,int *n)

int i;

printf("Introdu numarul de automobili: ");

scanf("%d",n);

a=din_realloc(a,*n);

for(i=0;i<*n;i++)

printf("\n****************************************\n\n");
printf("Introdu datele automobilului %d\n",i+1);

printf("Marca: ");

scanf("%s",&a[i].marca);

printf("Model: ");

scanf("%s",&a[i].model);

printf("Originea: ");

scanf("%s",&a[i].origine);

printf("Anul de productie: ");

scanf("%d",&a[i].anu);

printf("Pretul($): ");

scanf("%f",&a[i].pret);

return a;

void afisare(automobil* a,int *n)

int i;

system("cls");

for(i=0;i<*n;i++){

printf("****************************************\n\n");

printf("Datele automobilului: %d\n",i+1);

printf("Marca: %s\n",a[i].marca);

printf("Model: %s\n",a[i].model);

printf("Originea: %s\n",a[i].origine);

printf("Anul de productie: %d\n",a[i].anu);


printf("Pretul: %.2f\n\n",a[i].pret);

//Afisare dupa anul introdus

void afis_an(automobil* a,int *n,int an)

int i,j=0;

printf("Masini produse in anul : %d\n\n",an);

for(i=0;i<*n;i++){

if(a[i].anu==an){

printf("****************************************\n\n");

printf("Nr. de ordine: %d\n",i+1);

printf("Marca: %s\n",a[i].marca);

printf("Model: %s\n",a[i].model);

printf("Originea: %s\n",a[i].origine);

printf("Anul de productie: %d\n",a[i].anu);

printf("Pretul: %.2f\n\n",a[i].pret);

j++;

if(j==0)

system("cls");

printf("Nu s-au gasit nici un automobil din anul %d\n\n",an);

}
}

automobil* add_car(automobil* a,int *n,int nr)

int i;

a=din_realloc(a,*n+nr);

for(i=*n;i<*n+nr;i++)

printf("\n****************************************\n\n");

printf("Datele automobilului %d\n",i+1);

printf("Marca: ");

scanf("%s",&a[i].marca);

printf("Model: ");

scanf("%s",&a[i].model);

printf("Originea: ");

scanf("%s",&a[i].origine);

printf("Anul de productie: ");

scanf("%d",&a[i].anu);

printf("Pretul: ");

scanf("%f",&a[i].pret);

*n=*n+nr;

automobil* add_car_everyw(automobil* a,int *n ,int k)

int i;
automobil p;

a=din_realloc(a,*n+1);

printf("\n****************************************\n\n");

printf("Datele automobilului %d\n",k);

printf("Marca: ");

scanf("%s",&p.marca);

printf("Model: ");

scanf("%s",&p.model);

printf("Originea: ");

scanf("%s",&p.origine);

printf("Anul de productie: ");

scanf("%d",&p.anu);

printf("Pretul: ");

scanf("%f",&p.pret);

for (i=k-1; i<*n; i++)

a[i+1]=a[i];

a[k-1]=p;

*n=*n+1;

automobil* add_car_prepend(automobil* a,int *n)

int i;
int k=1;

automobil p;

a=din_realloc(a,*n+1);

printf("\n****************************************\n\n");

printf("Datele automobilului %d\n",k);

printf("Marca: ");

scanf("%s",&p.marca);

printf("Model: ");

scanf("%s",&p.model);

printf("Originea: ");

scanf("%s",&p.origine);

printf("Anul de productie: ");

scanf("%d",&p.anu);

printf("Pretul: ");

scanf("%f",&p.pret);

for (i=k-1; i<*n; i++)

a[i+1]=a[i];

a[0]=p;

*n=*n+1;

//functia pentru stergere

void del_car(automobil* a,int *n,int nd)

{
int i;

*n=*n-1;

if(*n>0)

for(i=nd-1;i<*n;i++)

a[i]=a[i+1];

else

system("cls");

printf("\nNu mai sunt automobile!\a\n");

a=din_realloc(a,*n);

//functia de salvare

void save(automobil* a,int *n,char *fname)

int i;

FILE *demo=fopen(fname,"wt");

for(i=0;i<*n;i++)

fprintf(demo,"\n%s %s %s %d %.2f",a[i].marca,a[i].model,a[i].origine,a[i].anu,a[i].pret);

fclose(demo);

}
void ord_cr(automobil* a,int *n)

int i,j,p;

float max;

automobil t;

for(i=0;i<*n;i++)

max=a[i].pret;

p=i;

for(j=i;j<*n;j++)

if(max<a[j].pret)

max=a[j].pret;

p=j;

t=a[i];

a[i]=a[p];

a[p]=t;

afisare(a,n);

//modificarea datelor

void car_m(automobil* a,int nm)


{

printf("Nr. de ordine: %d\n",nm);

printf("Marca: %s\n",a[nm-1].marca);

printf("Model: %s\n",a[nm-1].model);

printf("Originea: %s\n",a[nm-1].origine);

printf("Anul de productie: %d\n",a[nm-1].anu);

printf("Pretul: %.2f\n\n",a[nm-1].pret);

printf("****************************************\n\n");

printf("Datele automobilului pentru modificare:\n");

printf("Marca: ");

scanf("%s",&a[nm-1].marca);

printf("Model: ");

scanf("%s",&a[nm-1].model);

printf("Originea: ");

scanf("%s",&a[nm-1].origine);

printf("Anul de productie: ");

scanf("%d",&a[nm-1].anu);

printf("Pretul: ");

scanf("%f",&a[nm-1].pret);

You might also like