База даних засобами С++
9

}

 

 

void del()// процедура видалення непотрібних записів

{

int j,i,s,k,no;
aviabase t[20],m;

FILE *st;
FILE *nt;

printf("Введите No записи для удаления: ");

scanf("%d",&no);// номер запису для видалення

 st=fopen("aviabase.dat","r"); // відкриття файла aviabase.dat для читання

 k=0;
while (!feof(st))

  if (fread(&t[k],sizeof(t[k]),1,st)>0) k++;

for (i=0; i<k; i++)// зчитування інформації до масиву t

  fread(&t[i],sizeof(t[i]),1,st);

fclose(st);

no=no-1;
nt=fopen("aviabase.dat","w");// відкриття фалу aviabase.dat для запису

 for (i=0; i<no; i++)// запис першої частини (до удаляємого запису)

  fwrite(&t[i],sizeof(t[i]),1,nt);

for (j=no+1; j<k; j++)// запис другої частини (після удаляємого запису)

  fwrite(&t[j],sizeof(t[j]),1,nt);

fclose(nt);

}

 

void readtomas()// процедура зчитує інформацію з файла aviabase.dat і // записує її в масив d

{

FILE *ms;

ms=fopen("aviabase.dat","r");// відкриття файла aviabase.dat для читання

g=0;

while (!feof(ms))

  if (fread(&d[g],sizeof(d[g]),1,ms)>0) g++;

for (int i=0; i<g; i++)// запис інформації до масиву

  fread(&d[i],sizeof(d[i]),1,ms);

fclose(ms);

}

 

void sort_po_bn()// сортування по бортовому номеру

{

int f;

aviabase tmp;

do

{

  f=1;

  for (int j=0; j<g; j++)// метод “бульбашки”

   if (d[j].bn<d[j+1].bn)

    {

     tmp=d[j];

     d[j]=d[j+1];

     d[j+1]=tmp;

     f=0;

    }

}

while (f==0);

 printf("Результат сортировки: \n");

printf("Б/н | Тип | Вес | Подъемоспос. | Скорость | Дальность | Топливо | Экипаж \n");

 for (int i=0; i<g; i++)// вивід результату

  printf(" %d\t %s\t %d\t %d\t %d\t %d\t %d\t %d \n", d[i].bn,d[i].typ,d[i].ves,d[i].mpod,d[i].mspd,d[i].mdal,d[i].top,d[i].ecip);

 printf(" Для продолжения нажмите любую кнопку ... ");

}