#include
#include
#include
#include
struct avto
{char marka[80];
char cvet[128];
long int sernomer;
long int regisnomer;
int koldv;
long int vipusk;
long int cena;
};
avto* sozd(avto*,int);
void vvod(avto*,int,int);
void vivod(avto*,int);
avto* plus(avto*,int*);
void find(avto *,int,int);
void sort(avto *,int,int);
void main(void)
{ clrscr();
int n;
int f;
avto * av;
printf(«\nВведите количество записей \n»);
scanf(«%d»,&n);
av=sozd(av,n);
vvod(av,n,0);
vivod(av,n);
av=plus(av,&n);
printf(«\nВыберите категорию поиска\n 1 — поиск по марке\n2 — по цвету\n3 — по серийному номеру\n4 — по регистрационному номеру\n5 — по кол-ву дверей\n6 — по дате выпуска\n7 — по цене\n»);
scanf(«%d»,&f);
find(av,f,n);
fflush(stdin);
printf(«\nДля сортировки выберите категрию\n 1 — по марке автомобиля\n2 — по цвету\n3 — по серийному номеру\n4 — по регистрационному номеру\n5 — по кол-ву дверей\n6 — по дате выпуска\n7 — по цене\n»);
scanf(«%d»,&f);
sort(av,f,n);
vivod(av,n);
delete[] av;
getch();
}
avto* sozd(avto*av,int n)
{av=new avto[n];
if(av==0)
{puts(«Ошибка выделения памяти»);
exit(1);}
return av;}
void vvod(avto *av,int n,int k=0)
{for(int i=k;i
{strcpy(tmp,av[i].marka);
strcpy(av[i].marka,av[i+1].marka);
strcpy(av[i+1].marka,tmp);}
if(f==2)
for(int i=0;i
{strcpy(tmp,av[i].cvet);
strcpy(av[i].cvet,av[i+1].cvet);
strcpy(av[i+1].cvet,tmp);}
if(f==3)
for(int i=0;i
{temp=av[i].sernomer;
av[i].sernomer=av[i+1].sernomer;
av[i+1].sernomer=temp;
}
if(f==4)
for(int i=0;i
{temp=av[i].regisnomer;
av[i].regisnomer=av[i+1].regisnomer;
av[i+1].regisnomer=temp;
}
if(f==5)
for(int i=0;i
{temp=av[i].koldv;
av[i].koldv=av[i+1].koldv;
av[i+1].koldv=temp;
}
if(f==6)
for(int i=0;i
{temp=av[i].vipusk;
av[i].vipusk=av[i+1].vipusk;
av[i+1].vipusk=temp;
}
if(f==7)
for(int i=0;i
{temp=av[i].cena;
av[i].cena=av[i+1].cena;
av[i+1].cena=temp; }
}
Автомобиль. Программа на Си++
30 Ноя, 2012