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

                              puts("Ошибка ввода.");

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

                                     continue;

                      }

               }

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

            continue;

       }

       return 0;

}

3) Файл «chisl_menu.c».

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

#include "foto.h"

int chisl_menu( void )

{  

    // Переменные

    int x; 

    // Вывод на экран меню

    system("clear"); // Очистка экрана

    puts("\t\tМеню программы");

    puts(" 1 – Ввод данных о фоторезисторах.");

    puts(" 2 - Вывод данных о фоторезисторах на экран.");

    puts(" 3 – Удаление записи из справочника.");

    puts(" 4 – Вывод записи по её порядковому номеру.");

    puts(" 5 – Сортировка выбором марки по алфавиту.");

    puts(" 6 – Сортировка пузырьком сопротивления по убыванию.");

    puts(" 7 – Сортировка вставками вида по алфавиту.");

    puts(" 8 – Сохранение справочника в файл.");

    puts(" 9 – Открытие справочника из файла.");   

    puts("10 – Выход из приложения.");

    scanf("%d", &x);

    return x;

}

4) Файл «vvod_zapisey.c».

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

#include "foto.h"

void vvod_zapisey( struct foto arr[] )

{

    // Переменные

    char a;

    int i, vvod;     

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

    {

                      system("clear");

            // Ввод марки

                      puts("Введите марку фоторезистора.");

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

                      fgets( arr[i].marka, MARKA, stdin );

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

            /* Проверка ввода некорректных данных */

                      while( arr[i].marka[0] == '\n' || arr[i].marka[0] == ' ' )

                      {

                             puts("Ошибка при вводе.");

                             fgets( arr[i].marka, MARKA, stdin );

                      }

                      arr[i].marka[strlen( arr[i].marka ) - 1] = '\0';

            // Ввод вида

                      puts("Введите вид фоторезистора.");

                      fgets( arr[i].vid, VID, stdin );

                      while( arr[i].vid[0] == '\n' || arr[i].vid[0] == ' ' )

                      {

                             puts("Ошибка при вводе.");

                             fgets( arr[i].vid, VID, stdin );

                      }

                      arr[i].vid[strlen( arr[i].vid ) - 1] = '\0';

            // Ввод темнового сопротивления

                      puts("Введите темновое сопротивление фоторезистора в кОм.");

            /* Проверка некорректного ввода путём сравнения числа,

возвращаемого функцией scanf(), с 0 */

                      while( !scanf("%f", &arr[i].sopr) )

                      {

                             puts("Ошибка при вводе.");

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

                      }

            // Ввод чувствительности

                      puts("Введите чувствительность фоторезистора в А/Лм-В.");

                      while( !scanf("%f", &arr[i].chuvstv) )

                      {

                             puts("Ошибка при вводе.");

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

                      }

            // Ввод мощности рассеивания

                      puts("Введите мощность рассеивания фоторезистора.");

                      while( !scanf("%f", &arr[i].mosch) )