Разработка и реализация на языке С/С++ информационно-поискового справочника «Фоторезисторы», страница 4

    while( !scanf("%d", &x) || x <= 0 || x > kol || arr[x].marka[0] == '\0' )

    {

              puts("Ошибка при вводе или такой записи в справочнике нет");

               while( getchar() != '\n' )  continue;

    }

    // Перенос нижестоящих записей на одну вверх

       for( i = x - 1; i < CHISLO - 1; i++ )

               arr[i] = arr[i + 1];

    // Обнуление последней записи

    arr[CHISLO - 1].marka[0] = '\0';

    arr[CHISLO - 1].vid[0] = '\0';

    arr[CHISLO - 1].sopr = 0;

    arr[CHISLO - 1].chuvstv = 0;

    arr[CHISLO - 1].mosch = 0;

    system("clear");

    printf("Запись N%d удалена из справочника.\n", x);

    getchar();

}

8) Файл « sort_puz.c».

// Заголовочный файл

#include "foto.h"

void sort_puz( struct foto arr[] )

{

    // Переменные и структура-буфер

    int i, k, x;     

    struct foto t; 

    if( podschet( arr ) == 0 )

        return;

for( i = 0; i < CHISLO - 1; i++ )

       for( k = 0; k < CHISLO - 1; k++ )

              if( arr[k].sopr < arr[k + 1].sopr  )

               {

                      t = arr[k];

                      arr[k] = arr[k + 1];

                      arr[k + 1] = t;

               }

    // Данные после сортировки

   system("clear");  

   puts("\t\tСправочник \"Фоторезисторы\", отсортираванный");

   puts("\t\t\tпо сопротивлению по убыванию.\n");

   for( i = 0; i < R; i++)

       printf("=");

   puts("\n| N |    Марка  |  Вид фоторезистора   |Сопротивление|Чувствит. |  Мощность  |");

   puts("|   |           |                      |     кОм     |  А/Лм-В  | рассеян.,Wt|");

    for( i = 0; i < R; i++)

       printf("=");

    puts("");

    for( i = 0; i < CHISLO; i++)

       if( arr[i].marka[0] != '\0' )

            printf("|%3d| %-9s | %-20s | %11g | %8g | %10g |\n",

                   i + 1, arr[i].marka, arr[i].vid, arr[i].sopr, arr[i].chuvstv, arr[i].mosch);       

    for( i = 0; i < R; i++)

       printf("=");

    puts(""); 

    getchar();

}

9) Файл «sort_vib.c».

// Заголовочный файл

#include "foto.h"

void sort_vib( struct foto arr[] )

{

    // Переменные и буферные структуры

    int i, j, k, x;  

    struct foto min; 

    struct foto t; 

    if( podschet( arr ) == 0 )

        return;

for( i = 0; i < CHISLO; i++ )

   {

       min = arr[i];

       k = i;

       for( j = i; j < CHISLO; j++ )

               if( strcmp( arr[j].vid, arr[k].vid ) < 0 )

               {

                      min = arr[j];

                      k = j;

               }

       t = arr[i];  

       arr[i] = min;  

       arr[k] = t;

    }

    // Перенос читстых записей в конец

    for( i = 0, j = 0; i < CHISLO; i++ )

       if( arr[i].marka[0] != '\0' )

       {

               min = arr[i];

               arr[i] = arr[j];

              arr[j] = min;

               j++;

       }

    // Данные после сортировки

    system("clear");  

    puts("\t\tСправочник \"Фоторезисторы\", отсортираванный");

    puts("\t\t\tпо виду в алфавитном порядке.\n");

    for( i = 0; i < R; i++)

       printf("=");

    puts("\n| N |    Марка  |  Вид фоторезистора   |Сопротивление|Чувствит. |  Мощность  |");

    puts("|   |           |                      |     кОм     |  А/Лм-В  | рассеян.,Wt|");

    for( i = 0; i < R; i++)

       printf("=");

    puts("");

    for( i = 0; i < CHISLO; i++)

       if( arr[i].marka[0] != '\0' )

           printf("|%3d| %-9s | %-20s | %11g | %8g | %10g |\n",