C++ проблема поиска

#include <iostream>
#include <conio.h>
#include <fstream>


using namespace std;
void check() {

    string text;
    ifstream file;
    file.open("test.txt");
     ofstream file(text);
}
struct
    Work {
    char Name_1[20];
    char Name_2[20];
    char Name_3[20];
    struct {
        int Day;
        char Month[10];
        int Year;
    } BirthDay;
    struct {
        int Day;
        char Month[10];
        int Year;
    } Job;
    char Address[100];
};
int N = -1;
Work Mas[5];
void Add_Changes(int);
void View();

***> void Search(Work* arr, const size_t size, function<bool(Work)> fn) {
>   for (size_t i = 0; i < size; i++)       if (fn(arr[i]))             return i;
>   return -1; }***

void Menu();

void main()
{
    clrscr();

    Menu();
}
/*Функция добавления или изменения информации о рабочем. Добавлять
или изменять уже имеющуюся информацию, решаем на основании
значения параметра Condition (если Condition = -1, то пытаемся
добавить информацию о новом рабочем, иначе - изменяем имеющуюся)*/
void clrscr()
{
    system("CLS");
}
void Add_Changes(int Condition)
{
    int m;
    bool Vrem;
    Vrem = false; //Признак невозможности добавить нового рабочего
    if ((N < 4) && (Condition == -1))
    {
        cout << " *** Создание новой записи ***" << endl;
        N++;
        m = N; //Индекс элемента массива для новой записи
        Vrem = true;
    } //Можно добавить еще рабочего
    if (Condition > -1)
    {
        cout << " *** Изменение записи и номером " << Condition;
        m = Condition;
    } //Индекс элемента, содержащего изменяемую запись
    if (Condition > N) cout << endl << "Нет записи с таким номером.";
    if (((Vrem == true) && (Condition == -1)) ||
        ((Condition > -1) && (Condition <= N)))
    {
        cout << "Фамилия: ";
        cin >> Mas[m].Name_1;
        cout << "Имя: ";
        cin >> Mas[m].Name_2;
        cout << "Отчество: ";
        cin >> Mas[m].Name_3;
        cout << "\n ## Введите дату рождения:" << endl;
        cout << "Число: ";
        cin >> Mas[m].BirthDay.Day;
        cout << "Месяц: ";
        cin >> Mas[m].BirthDay.Month;
        cout << "Год: ";
        cin >> Mas[m].BirthDay.Year;
        cout << "\n ## Введите дату приема на работу:" << endl;
        cout << "Число: ";
        cin >> Mas[m].Job.Day;
        cout << "Месяц: ";
        cin >> Mas[m].Job.Month;
        144;
        cout << "Год: ";
        cin >> Mas[m].Job.Year;
        cout << "\n ## Введите адрес места жительства:" << "\n\t";
        cin >> Mas[m].Address;
    }
    if ((Vrem == false) && (Condition == -1))
    {
        cout << "\nВсе доступные записи заполнены. Добавление новой записи"
            << endl << "возможно только путем изменения уже имеющихся.";
    }
    cout << "\nДля продолжения нажмите любую клавишу...";
}
void View() //Вывод сведений о рабочих предприятия
{
    int i;
    cout << " *** Информация о работниках предприятия ***" << endl;
    if (N == -1) cout << "\nНет информации ни в одной записи!";
    else for (i = 0; i <= N; i++)
    {
        cout << i + 1 << ". " << Mas[i].Name_1 << " " << Mas[i].Name_2
            << " " << Mas[i].Name_3;
        cout << "\n Дата рождения: " << Mas[i].BirthDay.Day << " "
            << Mas[i].BirthDay.Month << " " << Mas[i].BirthDay.Year;
        cout << "\n Принят на работу: " << Mas[i].Job.Day << " "
            << Mas[i].Job.Month << " " << Mas[i].Job.Year;
        cout << "\n ## Aдрес места жительства: " << Mas[i].Address;
        cout << endl;
    }
    cout << "\nДля продолжения нажмите любую клавишу...";
}

void Menu()
{
    char Ch;
    int Number, Vrem;
    Ch = 13;
    while (Ch != 27)
    {
        cout << " [ Главное меню программы ]";
        cout << "\n1. Вывод сведений о работниках предприятия.";
        cout << "\n2. Добавление сведений о новом работнике.";
        cout << "\n3. Изменение сведений о работнике.";
        cout << "\n4. поиск по сведением о работников.";
        cout << "\n5. сохранение в отдельный файл для изменения";
        cout << "\n Завершение работы.";

        cout << "\n\nВыберите пункт меню |-> ";
        cin >> Number;
        clrscr();
        switch (Number) {
        case 1: View(); break;
        case 2: Add_Changes(-1); break;
        case 3: clrscr();
            cout << "Номер изменяемой записи (всего записей: " << N + 1145 << ") |-> \n";
            cin >> Vrem;
            Add_Changes(Vrem); break;
        case 4: Ch = 27; break;
        case 5:Search();
        case 6: check();
        default: cout << "\nНет такого пункта меню.";
            cout << "\nДля продолжения нажмите любую клавишу...";
        }
        if (Ch != 27) Ch = getch();
    }

}

В чём ошибка?


Ответы (0 шт):