1

Тема: C++ допоможіть виправити помилку

видає помилку - 'lname' is a protected member of 'Аbonent'
дана функція має сортувати список по прізвищу - lname.
допоможіть виправити помилку.
дане поле є захищеним полем іншого класу(protected)

void SortbyLname()    
{
        Note.sort();
           // показать всех
         list<Аbonent>::iterator IT=Note.begin();
               for(;IT!=Note.end();IT++)
                std::cout << (*IT).lname<<" "<< std::endl;
           std::cin.get();
    }

2

Re: C++ допоможіть виправити помилку

весь код:

#include<iostream>
#include<ostream>
#include<string>
#include<fstream>
#include<list>
#include<ctime>
using namespace std;
class Аbonent
{
protected:
    string fname;
    string lname;
    string e_mail;
    string PhoneNumber;
    string DateofBirth;
public:
    Аbonent()
    {
        fname="NULL";
        lname="NULL";
        e_mail="NULL";
        PhoneNumber="NULL";
        DateofBirth="NULL";
        
    }
    Аbonent(string f, string l, string e, string P, string D)
    {
        fname = f;
        lname = l;
        e_mail = e;
        PhoneNumber = P;
        DateofBirth = D;
    }
  
   // void ShowByFewParameters(){}
    void Setlname()
                    {
                        cout << "введите фамилию"<<this->lname<<endl;
                        cin >> lname;
                    }
            string Getlname()
                    {
                        return lname;
                    }

    void Setfname()
                    {
                        cout << "введите имя" << endl;
                        cin >> fname;
                    }
            string Getfname()
                    {
                        return fname;
                    }
    void Setemail()
                    {
                        cout << "введите адрес електронной почты" <<this->e_mail<< endl;
                        cin >> e_mail;
                    }
            string Getemail()
                    {
                        return e_mail;
                    }
     void SetPhone()
                    {
                        cout << "введите номер телефона " <<this->PhoneNumber<< endl;
                        cin >> PhoneNumber;
                    }
            string GetPhone()
                    {
                        return PhoneNumber;
                    }
    void SetDateofbirth()
                    {
                        cout << "введите дату рождения" <<this->DateofBirth<< endl;
                        cin >> DateofBirth;
                    }
                    string GetDateofBirth()
                    {
                        return DateofBirth;
                    }
    void setallINFO()
                    {
                        Setlname();
                        Setfname();
                        Setemail();
                        SetPhone();
                        SetDateofbirth();
                    }

    friend ostream& operator<< (ostream & out,Аbonent& obj);
    friend istream& operator>>(istream &in, Аbonent& obj);
};
std::ostream& operator<< (std::ostream& out, Аbonent& obj)
{
    out << obj.lname << endl;
    out << obj.fname << endl;
    out << obj.e_mail << endl;
    out << obj.PhoneNumber << endl;
    out << obj.DateofBirth<< endl;
    return out;
}
std::istream& operator>>(std::istream &in, Аbonent & obj)
{
    in>>obj.lname;
    in>>obj.DateofBirth;
    in>>obj.fname;
    in>>obj.e_mail;
    in>>obj.PhoneNumber;
    return in;
}


class Notebook

{
private:
    list<Аbonent>Note;
public:
    friend class Abonent;
    string lname="NULL";
        Notebook()
    {
        Note.clear();
    }
    void add_client()
    {
    //Добавление новой записи
    Аbonent* tmp = new Аbonent();
    tmp->setallINFO();
    this->Note.push_back(*tmp);
    delete tmp;
    }
    void add_client(Аbonent tmp)
    //перегрузка метода добавления новой записи
    {
        this->Note.push_back(tmp);
    }
    //вывод всех записей
    void Output()
    {
    list<Аbonent>::iterator IT=Note.begin();
    for (;IT!=Note.end();IT++)
    {
        cout<<*IT<<endl;
    }
    }
    void SearchByFname(string F)
    {
        bool f=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(F==(*IT).Getfname())
                cout<<*IT<<endl;
            f=true;
        }
        if(!f)
            cout<<"нет такого имени в записной книжке"<<endl;
    }
    void SearchByLname(string L)
    {
        bool l=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
          if(L==(*IT).Getlname())
              cout<<*IT<<endl;
            l=true;
        }
        if(!l)
            cout<<"нет такой фамилии в записной книжке"<<endl;
    }
    void SearchByEmail(string E)
    {
        bool e=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(E==(*IT).Getemail())
                cout<<*IT<<endl;
            e=true;
        }
        if(!e)
            cout<<"нет такой електронной почты в записной книжке"<<endl;
    }
    void SearchByPhoneNumber(string P)
    {
        bool p=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(P==(*IT).GetPhone())
                cout<<*IT<<endl;
            p=true;
        }
        if(!p)
            cout<<"нет такого номера телефона в записной книжке"<<endl;
    }
    void SearchByDateofBirth(string D)
    {
        bool d=false;
    list<Аbonent>::iterator IT=Note.begin();
    for(;IT!=Note.end();IT++)
    {
        if(D==(*IT).Getemail())
            cout<<*IT<<endl;
        d=true;
    }
    if(!d)
        cout<<"нет такой даты в записной книжке"<<endl;
    }
    void SortbyLname()
    {
        Note.sort();
           // показать всех
         list<Аbonent>::iterator IT=Note.begin();
               for(;IT!=Note.end();IT++)
                std::cout << (*IT).lname<<" "<< std::endl;
           std::cin.get();
    }
    };
void Menu()
    {
    cout<<"Заполните пожалуйста данные"<<endl;
    cout<<"1 - Добавить новую запись"<<endl;
    cout<<"2 - Показать информацию по имени"<<endl;
    cout<<"3 - Показать информацию по фамилии"<<endl;
    cout<<"4 - Показать информацию по Дате рождения"<<endl;
    cout<<"5 - Показать информацию по електронной почте"<<endl;
    cout<<"6 - Сортировать по фамилии"<<endl;
    cout<<"7 - Показать информацию по нескольким признакам"<<endl;
    cout<<"8 - Удалить информацию"<<endl;
    cout<<"9 - EXIT"<<endl;
}
int main()
{
    setlocale(LC_ALL,"rus");
    Аbonent A;
    Notebook N;
    string TMP;
    list<Аbonent>::iterator tmp_abonent;
    int Menu=0;
    int Sub_Menu;
    do
    {
        system("cls");
        cin>>Menu;
        switch (Menu)
        {
    case 1:
    cout<<"добавление новой записи"<<endl;
    N.add_client();
    case 2:
    cout<<"Показ информации по имени"<<endl;
    cout<<"Введите имя"<<endl;
    cin>>TMP;
    N.SearchByFname(TMP);
    cout<<"Введите другое имя"<<endl;
    case 3:
        cout<<"Показ информации по фамилии"<<endl;
        cout<<"Введите фамилию"<<endl;
        cin>>TMP;
        N.SearchByLname(TMP);
        cout<<"Введите другую фамилию"<<endl;
            case 4:
                cout<<"Показ информации по Дате Рождения"<<endl;
                cout<<"Введите Дату Рождения"<<endl;
                cin>>TMP;
                N.SearchByDateofBirth(TMP);
                cout<<"Введите другую дату рождения"<<endl;
            case 5:
                    cout<<"Показ информации по Електронной почте"<<endl;
                    cout<<"Введите адрес електронной почты"<<endl;
                    cin>>TMP;
                    N.SearchByEmail(TMP);
                    cout<<"Введите другой адрес електронной почты"<<endl;
            case 6:
                cout<<"Сортировка по фамилии"<<endl;
                N.SortbyLname();
            case 7:
                
                
        
    }
    

}
    while(Menu!=9);
}

3

Re: C++ допоможіть виправити помилку

Ви, здається, так і не зрозуміли, що я вам написав в іншій темі.
Невирівняний код - це ознака неповаги до тих, хто його буде читати. Ви звертаєтеся по допомогу до тих, кого не поважаєте? Серйозно?
Ваш код складно читати. Вирівняйте його. Після кожної { збільшуйте відступ, припустимо, на 4 пробіли. З кожною } зменшуйте на стільки ж. Всередині if, for, while, do збільшуйте відступ навіть без фігурних дужок на один рядок (так, ніби вони б там були). В чому проблема?

4

Re: C++ допоможіть виправити помилку

вибачаюсь...
так краще?

#include<iostream>
#include<ostream>
#include<string>
#include<fstream>
#include<list>
#include<ctime>
using namespace std;
class Аbonent
{
protected:
    string fname;
    string lname;
    string e_mail;
    string PhoneNumber;
    string DateofBirth;
public:
    Аbonent()
    {
        fname="NULL";
        lname="NULL";
        e_mail="NULL";
        PhoneNumber="NULL";
        DateofBirth="NULL";
        
    }
    Аbonent(string f, string l, string e, string P, string D)
    {
        fname = f;
        lname = l;
        e_mail = e;
        PhoneNumber = P;
        DateofBirth = D;
    }
    
    // void ShowByFewParameters(){}
    void Setlname()
    {
        cout << "введите фамилию"<<this->lname<<endl;
        cin >> lname;
    }
    string Getlname()
    {
        return lname;
    }
    
    void Setfname()
    {
        cout << "введите имя" << endl;
        cin >> fname;
    }
    string Getfname()
    {
        return fname;
    }
    void Setemail()
    {
        cout << "введите адрес електронной почты" <<this->e_mail<< endl;
        cin >> e_mail;
    }
    string Getemail()
    {
        return e_mail;
    }
    void SetPhone()
    {
        cout << "введите номер телефона " <<this->PhoneNumber<< endl;
        cin >> PhoneNumber;
    }
    string GetPhone()
    {
        return PhoneNumber;
    }
    void SetDateofbirth()
    {
        cout << "введите дату рождения" <<this->DateofBirth<< endl;
        cin >> DateofBirth;
    }
    string GetDateofBirth()
    {
        return DateofBirth;
    }
    void setallINFO()
    {
        Setlname();
        Setfname();
        Setemail();
        SetPhone();
        SetDateofbirth();
    }
    
    friend ostream& operator<< (ostream & out,Аbonent& obj);
    friend istream& operator>>(istream &in, Аbonent& obj);
};
std::ostream& operator<< (std::ostream& out, Аbonent& obj)
{
    out << obj.lname << endl;
    out << obj.fname << endl;
    out << obj.e_mail << endl;
    out << obj.PhoneNumber << endl;
    out << obj.DateofBirth<< endl;
    return out;
}
std::istream& operator>>(std::istream &in, Аbonent & obj)
{
    in>>obj.lname;
    in>>obj.DateofBirth;
    in>>obj.fname;
    in>>obj.e_mail;
    in>>obj.PhoneNumber;
    return in;
}


class Notebook

{
private:
    list<Аbonent>Note;
public:
    friend class Abonent;
    string lname="NULL";
    Notebook()
    {
        Note.clear();
    }
    void add_client()
    {
        //Добавление новой записи
        Аbonent* tmp = new Аbonent();
        tmp->setallINFO();
        this->Note.push_back(*tmp);
        delete tmp;
    }
    void add_client(Аbonent tmp)
    //перегрузка метода добавления новой записи
    {
        this->Note.push_back(tmp);
    }
    //вывод всех записей
    void Output()
    {
        list<Аbonent>::iterator IT=Note.begin();
        for (;IT!=Note.end();IT++)
        {
            cout<<*IT<<endl;
        }
    }
    void SearchByFname(string F)
    {
        bool f=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(F==(*IT).Getfname())
                cout<<*IT<<endl;
            f=true;
        }
        if(!f)
            cout<<"нет такого имени в записной книжке"<<endl;
    }
    void SearchByLname(string L)
    {
        bool l=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(L==(*IT).Getlname())
                cout<<*IT<<endl;
            l=true;
        }
        if(!l)
            cout<<"нет такой фамилии в записной книжке"<<endl;
    }
    void SearchByEmail(string E)
    {
        bool e=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(E==(*IT).Getemail())
                cout<<*IT<<endl;
            e=true;
        }
        if(!e)
            cout<<"нет такой електронной почты в записной книжке"<<endl;
    }
    void SearchByPhoneNumber(string P)
    {
        bool p=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(P==(*IT).GetPhone())
                cout<<*IT<<endl;
            p=true;
        }
        if(!p)
            cout<<"нет такого номера телефона в записной книжке"<<endl;
    }
    void SearchByDateofBirth(string D)
    {
        bool d=false;
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
        {
            if(D==(*IT).Getemail())
                cout<<*IT<<endl;
            d=true;
        }
        if(!d)
            cout<<"нет такой даты в записной книжке"<<endl;
    }
    void SortbyLname()
    {
        Note.sort();
        // показать всех
        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
            std::cout << (*IT).lname<<" "<< std::endl;
        std::cin.get();
    }
};
void Menu()
{
    cout<<"Заполните пожалуйста данные"<<endl;
    cout<<"1 - Добавить новую запись"<<endl;
    cout<<"2 - Показать информацию по имени"<<endl;
    cout<<"3 - Показать информацию по фамилии"<<endl;
    cout<<"4 - Показать информацию по Дате рождения"<<endl;
    cout<<"5 - Показать информацию по електронной почте"<<endl;
    cout<<"6 - Сортировать по фамилии"<<endl;
    cout<<"7 - Показать информацию по нескольким признакам"<<endl;
    cout<<"8 - Удалить информацию"<<endl;
    cout<<"9 - EXIT"<<endl;
}
int main()
{
    setlocale(LC_ALL,"rus");
    Аbonent A;
    Notebook N;
    string TMP;
    list<Аbonent>::iterator tmp_abonent;
    int Menu=0;
    int Sub_Menu;
    do
    {
        system("cls");
        cin>>Menu;
        switch (Menu)
        {
            case 1:
                cout<<"добавление новой записи"<<endl;
                N.add_client();
            case 2:
                cout<<"Показ информации по имени"<<endl;
                cout<<"Введите имя"<<endl;
                cin>>TMP;
                N.SearchByFname(TMP);
                cout<<"Введите другое имя"<<endl;
            case 3:
                cout<<"Показ информации по фамилии"<<endl;
                cout<<"Введите фамилию"<<endl;
                cin>>TMP;
                N.SearchByLname(TMP);
                cout<<"Введите другую фамилию"<<endl;
            case 4:
                cout<<"Показ информации по Дате Рождения"<<endl;
                cout<<"Введите Дату Рождения"<<endl;
                cin>>TMP;
                N.SearchByDateofBirth(TMP);
                cout<<"Введите другую дату рождения"<<endl;
            case 5:
                cout<<"Показ информации по Електронной почте"<<endl;
                cout<<"Введите адрес електронной почты"<<endl;
                cin>>TMP;
                N.SearchByEmail(TMP);
                cout<<"Введите другой адрес електронной почты"<<endl;
            case 6:
                cout<<"Сортировка по фамилии"<<endl;
                N.SortbyLname();
            case 7:
                cout<<"Показ информации по нескольким признакам"<<endl;
                cout<<"выберите признак1";
                cin>>Sub_Menu;
                if(Sub_Menu==0)
                {
                    cout<<"Выберите другой пункт меню"<<endl;
                }
                else
    }
    while(Menu!=9);
}

5

Re: C++ допоможіть виправити помилку

Так, дякую.
У вас є ґеттер Getlname(). В чому проблема написати

        list<Аbonent>::iterator IT=Note.begin();
        for(;IT!=Note.end();IT++)
            std::cout << (*IT).Getlname()<<" "<< std::endl;

Конструкція (*x).y має навіть в C скорочений запис x->y, тут можна записати

IT->Getlname()

Але це ще не все. Зараз 2020 рік. А починаючи з C++11, можна робити цикли по колекціях:

for(Аbonent& abonent: Note)
    std::cout << abonent.Getlname() <<std::endl;

Це - синтаксичний цукор над ітераторами, тобто код повністю еквівалентний вашому, зате значно коротший і зручніший, правда?

Подякували: leofun011

6

Re: C++ допоможіть виправити помилку

А є якісь помилки в логіці?

7

Re: C++ допоможіть виправити помилку

Є в заголовку теми.

Подякували: leofun011

8

Re: C++ допоможіть виправити помилку

А в коді?

9

Re: C++ допоможіть виправити помилку

В коді - сортування буде не за тієї ознакою. А так - можна багато чого сказати, але вам же це треба здати? Щоб здати, цього вистачить.

10

Re: C++ допоможіть виправити помилку

а як зробити щоб було за тією?
Хочеться розібратись трохи, а не щоб для галочки і розуміти що до чого?

11

Re: C++ допоможіть виправити помилку

Тоді напишіть власну реалізацію сортування. Хоча б бульбашкою.

12

Re: C++ допоможіть виправити помилку

koala написав:

Є в заголовку теми.

Заголовок виправив.

13

Re: C++ допоможіть виправити помилку

як покласти в case7 ті функції, які лежать в кейсах з 2 по 6. (показати інформацію по кільком параметрам одночасно - по прізвищу, імені, даті народження. тобто в одному пункті меню)?

14

Re: C++ допоможіть виправити помилку

leofun01 написав:
koala написав:

Є в заголовку теми.

Заголовок виправив.

вседно є помилка

Подякували: leofun011

15

Re: C++ допоможіть виправити помилку

sasha87 написав:

як покласти в case7 ті функції, які лежать в кейсах з 2 по 6. (показати інформацію по кільком параметрам одночасно - по прізвищу, імені, даті народження. тобто в одному пункті меню)?

А це хтось може підказати?

16

Re: C++ допоможіть виправити помилку

переробив трохи сортування, створив предикат. але помилка після Note.

bool Lname(Notebook& a1, Notebook& a2)
    {
        return a1.lname < a2.lname;
    }
    void SortBylname() 
    {
        list<Аbonent>::iterator IT = Note.begin();
      Note.sort(Note.begin(),Note.end(),Lname);
   }

17

Re: C++ допоможіть виправити помилку

В 1970-х, коли комп'ютери були великі, а обсяги їхньої пам'яті маленькі, компілятори не могли детально повідомити про помилку - лише про факт, що вона є, і, в кращому разі, в якому рядку. З того часу комп'ютери зробили певний прогрес, і компілятори теж розвинулися. До чого це? До того, що або ви працюєте з дуже старим компілятором, і я наполегливо раджу вам перейти на новіший; або ж ви чомусь вирішили погратися з нами в партизана і не скопіювати сюди текст помилки, щоб для нас це виглядало, як компілятор 1970-х. Повірте, це зовсім не так цікаво.
Версію ж про те, що ви вирішили зекономити собі час на трьох кліках мишки і двох комбінаціях клавіш, я відкидаю, як очевидно абсурдну. Людина, що хоче ТАК економити собі час, не вправі розраховувати на те, що хтось, хто захоче відповідати, взагалі прочитає її питання - це ж довше, ніж скопіювати текст помилки, а час економити всі хочуть.

Подякували: leofun011

18

Re: C++ допоможіть виправити помилку

помилки:
Ошибка    C2780    void std::sort(const _RanIt,const _RanIt): требует аргументов: 2, имеется: 3       
Ошибка    C3867    "Notebook::Lname": нестандартный синтаксис; используйте "&", чтобы создать указатель на член   
Ошибка    C3867    "Notebook::SortBylname": нестандартный синтаксис; используйте "&", чтобы создать указатель на член   
Ошибка    C2672    "std::sort": не найдена соответствующая перегруженная функция   

#include<iostream>
#include<ostream>
#include<string>
#include<list>
#include<ctime>
#include<algorithm>
using namespace std;
class Аbonent
{
protected:
    string fname;
    string lname;
    string e_mail;
    string PhoneNumber;
    string DateofBirth;
public:
    /*Аbonent()
    {
        fname = "NULL";
        lname = "NULL";
        e_mail = "NULL";
        PhoneNumber = "NULL";
        DateofBirth = "NULL";

    }*/
    Аbonent()
    {
        fname=this->fname;
        lname = this->lname;
        e_mail =this->e_mail;
        PhoneNumber = this->PhoneNumber;
        DateofBirth = this->DateofBirth;
    }

    // void ShowByFewParameters(){}
    void Setlname()
    {
        cout << "введите фамилию" << this->lname << endl;
        cin >> lname;
    }
    string Getlname()
    {
        return lname;
    }

    void Setfname()
    {
        cout << "введите имя" << endl;
        cin >> fname;
    }
    string Getfname()
    {
        return fname;
    }
    void Setemail()
    {
        cout << "введите адрес електронной почты" << this->e_mail << endl;
        cin >> e_mail;
    }
    string Getemail()
    {
        return e_mail;
    }
    void SetPhone()
    {
        cout << "введите номер телефона " << this->PhoneNumber << endl;
        cin >> PhoneNumber;
    }
    string GetPhone()
    {
        return PhoneNumber;
    }
    void SetDateofbirth()
    {
        cout << "введите дату рождения" << this->DateofBirth << endl;
        cin >> DateofBirth;
    }
    string GetDateofBirth()
    {
        return DateofBirth;
    }
    void setallINFO()
    {
        Setlname();
        Setfname();
        Setemail();
        SetPhone();
        SetDateofbirth();
    }

    friend ostream& operator<< (ostream& out, Аbonent& obj);
    friend istream& operator>>(istream& in, Аbonent& obj);
};
std::ostream& operator<< (std::ostream& out, Аbonent& obj)
{
    out << obj.lname << endl;
    out << obj.fname << endl;
    out << obj.e_mail << endl;
    out << obj.PhoneNumber << endl;
    out << obj.DateofBirth << endl;
    return out;
}
std::istream& operator>>(std::istream& in, Аbonent& obj)
{
    in >> obj.lname;
    in >> obj.DateofBirth;
    in >> obj.fname;
    in >> obj.e_mail;
    in >> obj.PhoneNumber;
    return in;
}
class Notebook

{
private:
    list<Аbonent>Note
    {
        Аbonent()
    };
public:
    string lname = "NULL";
    Notebook()
    {
        Note.clear();
    }
    void add_client()
    {
        //Добавление новой записи
        Аbonent* tmp = new Аbonent();
        tmp->setallINFO();
        this->Note.push_back(*tmp);
        delete tmp;
    }
    void add_client(Аbonent tmp)
        //перегрузка метода добавления новой записи
    {
        this->Note.push_back(tmp);
    }
    //вывод всех записей
    void Output()
    {
        list<Аbonent>::iterator IT = Note.begin();
        for (; IT != Note.end(); IT++)
        {
            cout << *IT << endl;
        }
    }
    void SearchByFname(string F)
    {
        bool f = false;
        list<Аbonent>::iterator IT = Note.begin();
        for (; IT != Note.end(); IT++)
        {
            if (F == (*IT).Getfname())
                cout << *IT << endl;
            f = true;
        }
        if (!f)
            cout << "нет такого имени в записной книжке" << endl;
    }
    void SearchByLname(string L)
    {
        bool l = false;
        list<Аbonent>::iterator IT = Note.begin();
        for (; IT != Note.end(); IT++)
        {
            if (L == (*IT).Getlname())
                cout << *IT << endl;
            l = true;
        }
        if (!l)
            cout << "нет такой фамилии в записной книжке" << endl;
    }
    void SearchByEmail(string E)
    {
        bool e = false;
        list<Аbonent>::iterator IT = Note.begin();
        for (; IT != Note.end(); IT++)
        {
            if (E == (*IT).Getemail())
                cout << *IT << endl;
            e = true;
        }
        if (!e)
            cout << "нет такой електронной почты в записной книжке" << endl;
    }
    void SearchByPhoneNumber(string P)
    {
        bool p = false;
        list<Аbonent>::iterator IT = Note.begin();
        for (; IT != Note.end(); IT++)
        {
            if (P == (*IT).GetPhone())
                cout << *IT << endl;
            p = true;
        }
        if (!p)
            cout << "нет такого номера телефона в записной книжке" << endl;
    }
    void SearchByDateofBirth(string D)
    {
        bool d = false;
        list<Аbonent>::iterator IT = Note.begin();
        for (; IT != Note.end(); IT++)
        {
            if (D == (*IT).Getemail())
                cout << *IT << endl;
            d = true;
        }
        if (!d)
            cout << "нет такой даты в записной книжке" << endl;
    }
    bool Lname(Notebook& a1, Notebook& a2)
    {
        return a1.lname < a2.lname;
    }
    void sort() {}
    void SortBylname() 
    {
        list<Аbonent>::iterator IT = Note.begin();
         std::sort(Note.begin(),Note.end(),Lname);
   }
};
void Menu()
{
    cout << "Заполните пожалуйста данные" << endl;
    cout << "1 - Добавить новую запись" << endl;
    cout << "2 - Показать информацию по имени" << endl;
    cout << "3 - Показать информацию по фамилии" << endl;
    cout << "4 - Показать информацию по Дате рождения" << endl;
    cout << "5 - Показать информацию по електронной почте" << endl;
    cout << "6 - Сортировать по фамилии" << endl;
    cout << "7 - Показать информацию по нескольким признакам" << endl;
    cout << "8 - Удалить информацию" << endl;
    cout << "9 - EXIT" << endl;
}
int main()
{
    setlocale(LC_ALL, "rus");
    Аbonent A;
    Notebook N;
    string TMP;
    list<Аbonent>::iterator tmp_abonent;
    int Menu = 0;
    int Sub_Menu;
    do
    {
        system("cls");
        cin >> Menu;
        switch (Menu)
        {
        case 1:
            cout << "добавление новой записи" << endl;
            N.add_client();
        case 2:
            cout << "Показ информации по имени" << endl;
            cout << "Введите имя" << endl;
            cin >> TMP;
            N.SearchByFname(TMP);
            cout << "Введите другое имя" << endl;
        case 3:
            cout << "Показ информации по фамилии" << endl;
            cout << "Введите фамилию" << endl;
            cin >> TMP;
            N.SearchByLname(TMP);
            cout << "Введите другую фамилию" << endl;
        case 4:
            cout << "Показ информации по Дате Рождения" << endl;
            cout << "Введите Дату Рождения" << endl;
            cin >> TMP;
            N.SearchByDateofBirth(TMP);
            cout << "Введите другую дату рождения" << endl;
        case 5:
            cout << "Показ информации по Електронной почте" << endl;
            cout << "Введите адрес електронной почты" << endl;
            cin >> TMP;
            N.SearchByEmail(TMP);
            cout << "Введите другой адрес електронной почты" << endl;
        case 6:
            cout << "Сортировка по фамилии" << endl;
            N.SortBylname;
        case 7:
            cout << "Показ информации по нескольким признакам" << endl;
            cout << "выберите признак1";

            cin >> Sub_Menu;
            if (Sub_Menu == 0)
            {
                cout << "Выберите другой пункт меню" << endl;
            }
            
        }
    } while (Menu != 9);
}

19

Re: C++ допоможіть виправити помилку

А, тут така ситуація... ні, боюся, вам на цьому форумі більше мало чим допоможуть. Тут мало фахівців з цієї мови. Зверніться на спеціалізований форум.

Подякували: leofun01, dot2

20

Re: C++ допоможіть виправити помилку

koala написав:

А, тут така ситуація... ні, боюся, вам на цьому форумі більше мало чим допоможуть. Тут мало фахівців з цієї мови. Зверніться на спеціалізований форум.

Яка ситуація?
Невже ніхто не може підказати як виправити помилки?