301

(31 відповідей, залишених у C++)

koala написав:

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

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

302

(31 відповідей, залишених у 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:
    listbonent>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_clientbonent tmp)
        //перегрузка метода добавления новой записи
    {
        this->Note.push_back(tmp);
    }
    //вывод всех записей
    void Output()
    {
        listbonent>::iterator IT = Note.begin();
        for (; IT != Note.end(); IT++)
        {
            cout << *IT << endl;
        }
    }
    void SearchByFname(string F)
    {
        bool f = false;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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() 
    {
        listbonent>::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;
    listbonent>::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);
}

303

(31 відповідей, залишених у C++)

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

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

304

(31 відповідей, залишених у C++)

sasha87 написав:

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

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

305

(31 відповідей, залишених у C++)

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

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

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

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

306

(31 відповідей, залишених у C++)

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

307

(31 відповідей, залишених у C++)

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

308

(31 відповідей, залишених у C++)

А в коді?

309

(31 відповідей, залишених у C++)

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

310

(31 відповідей, залишених у 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 & outbonent& 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:
    listbonent>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_clientbonent tmp)
    //перегрузка метода добавления новой записи
    {
        this->Note.push_back(tmp);
    }
    //вывод всех записей
    void Output()
    {
        listbonent>::iterator IT=Note.begin();
        for (;IT!=Note.end();IT++)
        {
            cout<<*IT<<endl;
        }
    }
    void SearchByFname(string F)
    {
        bool f=false;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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();
        // показать всех
        listbonent>::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;
    listbonent>::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);
}

311

(31 відповідей, залишених у 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 & outbonent& 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:
    listbonent>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_clientbonent tmp)
    //перегрузка метода добавления новой записи
    {
        this->Note.push_back(tmp);
    }
    //вывод всех записей
    void Output()
    {
    listbonent>::iterator IT=Note.begin();
    for (;IT!=Note.end();IT++)
    {
        cout<<*IT<<endl;
    }
    }
    void SearchByFname(string F)
    {
        bool f=false;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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;
    listbonent>::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();
           // показать всех
         listbonent>::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;
    listbonent>::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);
}

312

(31 відповідей, залишених у C++)

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

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

313

(16 відповідей, залишених у C++)

є якісь помилки в коді? додавання елементів, пошук по критерію і тд.?

314

(16 відповідей, залишених у C++)

Питання полягає в тому, чи правильно описані методи пошуку по імені, пошті і тд.?

#include<iostream>
#include<istream>
#include<string>
#include<fstream>
#include<list>
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 = l;
        PhoneNumber = P;
        DateofBirth = D;
    }
  
   // void ShowByFewParameters(){}
    void Setlname()
                    {
                        cout << "введіть фамілію";
                        cin >> lname;
                    }
            string Getlname()
                    {
                        return lname;
                    }

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

    friend ostream& operator<< (ostream & outbonent& obj);
    friend istream& operator>>(istream &in, Аbonent& obj);
};
ostream& operator<< (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;
}
class Notebook
{
private:
    listbonent>Note;
public:
        Notebook()
    {
        Note.clear();
    }
    void add_client()
    {
    //створення нового запису
    Аbonent* tmp = new Аbonent();
    tmp->setallINFO();
    this->Note.push_back(*tmp);
    delete tmp;
    }
    void add_clientbonent tmp)
    //перегрузка методу створення нового запису
    {
        this->Note.push_back(tmp);
    }
    //вывод всех записей
    void Output()
    {
    listbonent>::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(std::listbonent>::iterator IT=Note.begin();IT!=Note.end();IT++)
        {
            if(F==(*IT).Getfname())
                cout<<*IT<<endl;
            f=true;
        }
        if(!f)
            cout<<"нема такого імені в записнику"<<endl;
    }
    void SearchByLname(string L)
    {
        bool l=false;
        listbonent>::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;
        listbonent>::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;
        listbonent>::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;
    listbonent>::iterator IT=Note.begin();
    for(;IT!=Note.end();IT++)
    {
        if(D==(*IT).Getemail())
            cout<<*IT<<endl;
        d=true;
    }
    if(!d)
        cout<<"немає такого дня народження в записнику"<<endl;
    } 
};
void Menu()
{
    
}
int main()
{

}

315

(16 відповідей, залишених у C++)

koala, якщо я правильно вас зрозумів, то мені треба назвати клас Spravochnik - Firma, MassivFirm - Spravochnik? Тобто навпаки?
У мене є подібне завдання, тільки його треба робити з використанням контейнера List (STL)
Описати клас «записна книжка».
/Передбачити можливість роботи з довільним числом записів, реалізувати пошук необхідної інформації за будь - якою ознакою
/(за прізвищем, ім'ям, датою народження, e - mail, номеру телефону), а також за кількома ознаками одночасно, реалізувати додавання і видалення записів,
/сортування за прізвищем, доступ до запису по номеру.
/ Написати програму, яка демонструвала б всі розроблені елементи класу.
Чим вона буде відрізнятись від описаної вище програми? На скільки треба модифікувати код описаної вище програми крім зміни назви параметрів(прізвище, електронна адреса, ім'я, дата народження)? Звичайно що в списків є свої функції, а в вектора - свої.
бажано не прив'язувати код класів до конкретних об'єктів - навіть таких, як cin/cout...Де і як мені це реалізувати?
Це початок. Що можете порекомендувати?

#include<iostream>
#include<fstream>
#include<list>
using namespace std;
class Аbonent
{
protected:
    string fname;
    string lname;
    string e_mail;
    string PhoneNumber;
    string DateofBirth;


public:
    Аbonent(string f, string l, string e, string P, string D) 
    {
        fname = f;
        lname = l;
        e_mail = l;
        PhoneNumber = P;
        DateofBirth = D;
    }
    void ShowByFname(){}
    void ShowByLname(){}
    void ShowByEmail(){}
    void ShowByPhoneNumber(){}
    const char ShowByFewParameters(){}
    void Setlname()
                    {
                        cout << "введите фамилию";
                        cin >> lname;
                    }
                    string Getlname()
                    {
                        return lname;
                    }
    void Setfname()
                    {
                        cout << "введите имя" << endl;
                        cin >> fname;
                    }
                
                    string Getfname()
                    {
                        return fname;
                    }
    void Setemail()
                    {
                        cout << "введите адрес електронной почты" << endl;
                        cin >> e_mail;
                    }
                    string Getemail()
                    {
                        return e_mail;
                    }
     void SetPhone()
                    {
                        cout << "введите номер телефона " << endl;
                        cin >> PhoneNumber;
                    }
                    string GetPhone()
                    {
                        return PhoneNumber;
                    }
    void SetDateofbirth()
                    {
                        cout << "введите дату рождения" << endl;
                        cin >> DateofBirth;
                    }
                    string GetDateofBirth()
                    {
                        return DateofBirth;
                    }
    void setallINFO()
                    {
                        Setlname();
                        Setfname();
                        Setemail();
                        SetPhone();
                        SetDateofbirth();
                    }
};
class Notebook
{
private:
    listbonent>Note;

};
int main()
{

}

316

(16 відповідей, залишених у C++)

це як окрема функція? ЇЇ треба постійно створювати при роботі із string?

string prompt(string &text="")
{
    string result;
    cout<<text<<endl;
    getline(cin,result);
    return result;
}

317

(16 відповідей, залишених у C++)

тепер працює.якщо є зауваження, то будь-ласка коментуйте...

#include<iostream>
#include<string.h>
#include<fstream>
#include<ostream>
#include<ctime>
#include<vector>
#include<algorithm>
#include<windows.h>
using namespace std;
class Spravochnik
{
protected:
    string NameFirm;
    string Owner_Name;
    string ADRESS;
    string Phone;
    string Type_Work;
public:
    Spravochnik()
    {
        NameFirm = "NULL";
        Owner_Name = "NULL";
        ADRESS = "NULL";
        Phone = "NULL";
        Type_Work = "NULL";
    }
    Spravochnik (string N, string O, string A, string P, string T)
    {
        NameFirm = N;
        Owner_Name = O;
        ADRESS = A;
        Phone = P;
        Type_Work = T;
    }
    void Show()
            {
                cout << NameFirm << endl;
                cout << Owner_Name << endl;
                cout << ADRESS << endl;
                cout << Phone << endl;
                cout << Type_Work << endl;
            }
            void SetNameFirm()
            {
                cout << "введите название фирмы";
                cin >> NameFirm;
            }
            string GetNameFirm()
            {
                return NameFirm;
            }
            void SetNameOwner()
            {
                cout << "введите имя владельца" << endl;
                cin >> Owner_Name;
            }
        
            string GetNameOwner()
            {
                return Owner_Name;
            }
            void SetAdress()
            {
                cout << "введите адрес фирмы" << endl;
                cin >> ADRESS;
            }
            string GetAdress()
            {
                return ADRESS;
            }
            void SetPhone()
            {
                cout << "введите номер телефона " << endl;
                cin >> Phone;
            }
            string GetPhone()
            {
                return Phone;
            }
            void SetTypeWork()
            {
                cout << "введите вид деятельности" << endl;
                cin >> Type_Work;
            }
            string GetTypeWork()
            {
                return Type_Work;
            }
            
            void setallINFO()
            {
                SetAdress();
                SetNameFirm();
                SetNameOwner();
                SetPhone();
                SetTypeWork();
            }
            friend ostream& operator<< (ostream & out, Spravochnik & obj);
};
ostream& operator<< (ostream& out, Spravochnik& obj)
{
    out << obj.NameFirm << endl;
    out << obj.Owner_Name << endl;
    out << obj.ADRESS << endl;
    out << obj.Phone << endl;
    out << obj.Type_Work << endl;
    return out;
}
class MassivFirm    
{
private:
vector<Spravochnik>Firms;
public:
    MassivFirm()
    {
        Firms.clear();
    }
    
    void clear(string file_name)
    { //Функция очистки файла
        ofstream in("B:\\Firma.txt", ios::out | ios::trunc);
        in.close();
    }
    void save_into_file(string file_name)
    {
        clear("B:\\Firma.txt");
        ofstream out(file_name, ios::out);
        if (out)
        {
            for (int i = 0; i < this->Firms.size(); i++)
                out << Firms[i];
        }
        else
        {
            cout << "Ошибка открытия файла" << "B:\\Firma.txt" << "\n\n";
        }
    }
    //стоп, це ж опис функції....
    void input_from_file(string file_name)//вывод информации в консоль из файла
    {
        char OwnName[100];
        char NameF[100];
        char Adr[100];
        char Tel[100];
        char TypeWork[100];
        ifstream GET(file_name);
        GET.getline(NameF,100,'\n');
        GET.getline(OwnName, 100, '\n');
        GET.getline(Adr, 100, '\n');
        GET.getline(Tel, 100, '\n');
        GET.getline(TypeWork, 100,'\n');
        Spravochnik FIRMA(NameF,OwnName,Adr,Tel,TypeWork);
        add_client(FIRMA);
        while (GET.getline(NameF, 100, '\n')) 
        {
            GET.getline(OwnName, 100, '\n');
            GET.getline(Adr, 100, '\n');
            GET.getline(Tel, 100, '\n');
            GET.getline(TypeWork, 100, '\n');
            Spravochnik FIRMA(NameF, OwnName, Adr, Tel, TypeWork);
            add_client(FIRMA);
        }
        GET.close();
    }
    void add_client() 
    { 
        //Добавление новой записи
        Spravochnik* tmp = new Spravochnik();
        tmp->setallINFO();
        this->Firms.push_back(*tmp);
        delete tmp;
    }
    void add_client(Spravochnik tmp)//перегрузка метода добавления новой записи
    {
        //Добавление новой записи
        this->Firms.push_back(tmp);
    }
    void output_client() 
    { //Функция вывода списка клиентов
        vector<Spravochnik>::iterator IT = Firms.begin();
        for (true;IT != Firms.end(); IT++)
        {
            cout << *IT << endl;
        }
    }
    void SearchByOwnerName(string ON) 
    {
        bool o;
        vector<Spravochnik>::iterator IT = Firms.begin();
        for (true; IT != Firms.end(); IT++)
        {
            if(ON==(*IT).GetNameOwner())
            cout << *IT << endl;
            o = true;
        }
        if (!o)
            cout << "Ничего не найдено" << endl;
    }
    void SearchByNameFirm(string Nf)
    {
        bool n = false;
        vector<Spravochnik>::iterator IT = Firms.begin();
        for (true; IT != Firms.end(); IT++)
        {
            if (Nf == (*IT).GetNameFirm())
                cout << *IT << endl;
            n = true;
        }
        if (!n)
            cout << "Ничего не найдено" << endl;
    }
    void SearchByPhone(string Ph)
    {
        bool ph = false;
        vector<Spravochnik>::iterator IT = Firms.begin();
        for (true; IT != Firms.end(); IT++)
        {
            if (Ph == (*IT).GetPhone())
            {
                cout << *IT << endl;
                ph = true;
            }
        }
        if (!ph)
            cout << "Ничего не найдено" << endl;
    }
    void SearchByTypeWork(string Tw)
    {
        bool t = false;
        vector<Spravochnik>::iterator IT = Firms.begin();
        for (true; IT != Firms.end(); IT++)
        {
            if (Tw == (*IT).GetTypeWork())
                cout << *IT << endl;
            t = true;
        }
        if(!t)
            cout << "Ничего не найдено" << endl;
    }
    void SearchByAdress(string A)
    {
        bool a = false;
        vector<Spravochnik>::iterator IT = Firms.begin();
        for (true; IT != Firms.end(); IT++)
        {
            if (A == (*IT).GetAdress())
                cout << *IT << endl;
            a = true;
        }
        if (!a)
            cout << "Ничего не найдено" << endl;
    }
};
void Menu_()
{
    cout << "\tДля роботы со справочником добавьте данные" << endl;
    cout << "\tСправочник:" << endl;
    cout << "1 - Добавление данных" << endl;
    cout << "2 - поиск по названию фирмы" << endl;
    cout << "3 - поиск по имени владельца" << endl;
    cout << "4 - поиск по виду деятельности" << endl;
    cout << "5 - поиск по номеру телефона" << endl;
    cout << "6 - Показ всех записей " << endl;
    cout << "7 - Exit" << endl;
}
int main()
{
    setlocale(LC_ALL, "rus");
    MassivFirm M;
    M.input_from_file("B:\\Firma.txt");
    int Menu = 0;
    string TMP;
        do
        {
            system("cls");
            Menu_();
            cin >> Menu;
            switch (Menu)
            {
            case 1:
                cout << "Добавление данных" << endl;
                M.add_client();
                break;
            case 2:
                cout << "поиск по названию фирмы" << endl;
                cout << "введите название фирмы" << endl;
                cin >> TMP;
                M.SearchByNameFirm(TMP);
                cout << "В справочнике нет такой фирмы" << endl;
                break;
            case 3:
                cout << "поиск по имени владельца" << endl;
                cout << "введите имя владельца" << endl;
                cin >> TMP;
                M.SearchByOwnerName(TMP);
                cout << "В справочнике нет такого владельца" << endl;
                break;
            case 4:
                cout << "поиск по виду деятельности" << endl;
                cout << "введите вид деятельности" << endl;
                cin >> TMP;
                M.SearchByTypeWork(TMP);
                cout << "В справочнике нет такого вида деятельности" << endl;
                break;
            case 5:
                cout << "поиск по номеру телефона" << endl;
                cout << "введите номер телефона" << endl;
                cin >> TMP;
                M.SearchByPhone(TMP);
                cout << "В справочнике нет такого номера телефона" << endl;
                break;
            case 6:
                cout << "вывод всех записей" << endl;
                M.output_client();
            default:cout << "No such number menu item" << endl;
            }
            
            system("pause");
        } while (Menu != 7);
        M.save_into_file("B:\\Firma.txt");
        system("pause");
        return 0;
    
}

318

(16 відповідей, залишених у C++)

Тобто в одному класі відбувається робота з однією фірмою, а в іншому відбувається реалізація для множини фірм?

319

(16 відповідей, залишених у C++)

створити клас Довідник з полями :

  1. Назва фірми

  2. Власник

  3. Телефон

  4. Адреса

  5. Вид діяльності

Реалізувати наступні функції:

  • Пошук по назві фірми

  • Пошук по власнику

  • Пошук по номеру телефону

  • Пошук по виду діяльності

  • Показ всіх записів і додавання

Вся інформацію зберігати у файлі з можливістю дозапису.
Допоможіть будь-ласка переробити програму для масиву фірм. Тобто щоб усі операції виконувались для багатьох фірм. Плюс там ще є помилки...

#include<iostream>
#include<string.h>
#include<fstream>
#include<ostream>
#include<ctime>
#include<vector>
#include<algorithm>
#include<windows.h>
using namespace std;
class Spravochnik
{
protected:
   
    char NameFirm[100];
    char Owner_Name[100];
    char ADRESS[100];
    int Phone;
    char Type_Work[100];
public:
    Spravochnik()
    {
        NameFirm[100] = NULL;
        Owner_Name[100] = NULL;
        ADRESS[100] = NULL;
        Phone = 0;
        Type_Work[100] = NULL;
    }
    Spravochnik(char N, char O, char A, int P, char T)
    {
        NameFirm[100] = N;
        Owner_Name[100] = O;
        ADRESS[100] = A;
        Phone = P;
        Type_Work[100] = T;
    }
    void Show()
    {
        cout << NameFirm << endl;
        cout << Owner_Name << endl;
        cout << ADRESS << endl;
        cout << Phone << endl;
        cout << Type_Work << endl;
    }
    void SetNameFirm(char * key)
    {
        cout << "введіть назву фірми";
        cin >> NameFirm;
    }
    char  GetNameFirm()
    {
        return NameFirm[100];
    }
    void SetNameOwner(char * key)
    {
        cout << "введіть ім'я власника" << endl;
        cin >> Owner_Name;
    }

    char GetNameOwner()
    {
        return Owner_Name[100];
    }
    void SetAdress(char* key)
    {
        cout << "введіть адресу фірми" << endl;
        cin >> ADRESS;
    }
    char GetAdress()
    {
        return ADRESS[100];
    }
    void SetPhone(int const & key)
    {
        cout << "введіть номер телефону " << endl;
        cin >> Phone;
    }
    int GetPhone()
    {
        return Phone;
    }
    void SetTypeWork(char* key)
    {
        cout << "введіть вид діяльності" << endl;
        cin >> Type_Work;
    }
    char GetTypeWork()
    {
        return Type_Work[100];
    }
    vector<Spravochnik>l;
    void AddInfo()
    {
        Spravochnik tmp;
        tmp.Owner_Name;
        tmp.ADRESS;
        tmp.NameFirm;
        tmp.Phone;
        tmp.Type_Work;
        l.push_back(tmp);
    }
   

    //void Show_all()
    //{
    //    /*char* str = new char[100];
    //    cin.getline(str, 100);
    //    for (int i = 0; i <l.size(); i++)
    //    {
    //        if (strcmp(l[i].GetNameFirm(), str) == 0)
    //        {
    //            cout << "Found:" << endl;
    //            l[i].Show();
    //        }
    //    }*/
    //    

    //    for (int i = 0; i < l.size(); i++)
    //    {
    //        cout << "Found:" << endl;
    //        l[i].Show();
    //    }
    //}

    friend std::istream& operator>>(istream& in, Spravochnik& obj)
    { //Перезавантаження оператора вводу в консоль
        cout << "Додавання нових записів:\n\n";
        cout << "Им'я.: "; in >> obj.Owner_Name;
        cout << "Номер телефону: "; in >> obj.Phone;
        cout << "Назва фірми: "; in >> obj.NameFirm;
        cout << "вид діяльності"; in >> obj.Type_Work;
        cout << "Адреса фірми"; in >> obj.ADRESS;
        return in;
    }

   friend std:: ostream & operator<<(ostream& out, Spravochnik& obj)
    { //Перезавантаження оператора виводу в консоль
        out << obj.Owner_Name<< "\n";
        out << obj.ADRESS << "\n";
        out << obj.Phone<< "\n";
        out << obj.Type_Work << "\n";
        out << obj.NameFirm<< "\n";

        return out;
    }

    void clear() { //Функція очистки файла
        ofstream in("input.txt", ios::out | ios::trunc);
        in.close();
    }

    void clear_new() { //Функція очистки нового файла
        ofstream in("input_new.txt", ios::out | ios::trunc);
        in.close();
    }

    bool is_file_empty() { //Функція перевірки файла на пустоту
        ifstream in("input.txt");
        in.seekg(0, ios::end);
        if (in.tellg() == 0) {
            return true;
        }
        in.close();
        return false;
    }
    void save_into_file() { //Функція збереження списка в файл
        clear();
        ofstream out("input.txt");
        for (const Spravochnik& data :l) {
            out << data.NameFirm<< "\n";
            out << data.Owner_Name << "\n";
            out << data.Phone << "\n";
            out << data.Type_Work << "\n";
        }
        out.close();
    }
    void read_from_file(Spravochnik& data) 
    { //Функція додавання записів із файла в список
        ifstream in("input.txt");
        while (in >> data) {
            l.push_back(data);
        }
        in.close();
    }

    void output_from_file() { //Функція виводу записів із файлу в консоль
        if (!is_file_empty()) {
            ifstream in("input.txt");
            if (in) {
                int k = 0;
                while (in >> *this) {
                    k++;
                    cout << "Запис #" << k << ":\n\n";
                    cout << *this;
                    cout << "\n";
                }
                in.close();
            }
            else {
                cout << "Файл input.txt не знайдено!\n\n";
            }
        }
        else {
            cout << "Файл input.txt пуст!\n\n";
        }
    }

    void output_from_new_file(Spravochnik& data) { //Функція виводу записів з нового файлу в консоль
        ifstream in("input_new.txt");
        if (in) {
            int k = 0;
            while (in >> data.NameFirm >> data.Owner_Name>>data.Phone>>data.ADRESS>>data.Type_Work) {
                k++;
                cout << "Запись #" << k << ":\n\n";
                cout << data.NameFirm << "\n";
                cout << data.Owner_Name << "\n\n";
                cout << data.Phone << "\n\n";
                cout << data.ADRESS << "\n\n";
                cout << data.Type_Work << "\n\n";
            }
            in.close();
        }
        else {
            cout << "Файл input_new.txt не знайдено!\n\n";
        }
    }

    void add_client(Spravochnik& data) { //Додавання нового запису в список (записи додаються в кінец списку)
        int k;
        cout << "Введіть число записів, які треба додати: ";
        cin >> k;
        for (int i = 1; i <= k; i++) {
            cout << "\nЗапись #" << i << ":\n";
            cin >> data;
            l.push_back(data);
        }
        cout << "\nЗаписи додані!\n\n";
        save_into_file(); //зберігаємо результат в файл
    }
    void output_client(string *const key) { //Функція виводу списку клієнтів
        ifstream in("input.txt");
        bool flag = false;
        cout << "виведення всіх записів: ";
        for (auto it = l.begin(); it != l.end(); ++it)
        {
            
                cout << it->Owner_Name << "\n";
                cout << it->NameFirm << "\n";
                cout << it->ADRESS << "\n";
                cout << it->Phone << "\n";
                cout << it->Type_Work << "\n";
                flag = true;
          }
        in.close();
        if (!flag) {
            cout << "клиентів не знайдено!\n\n";
        }
    }
};
void Menu_()
{
    cout << "\tДля роботи з довідником додайте дані" << endl;
    cout << "\tдовідник:" << endl;
    cout << "1 - Додавання даних" << endl;
    cout << "2 - пошук по назві фірми" << endl;
    cout << "3 - пошук по імені власника" << endl;
    cout << "4 - пошук по виду діяльності" << endl;
    cout << "5 - пошук по номеру телефону" << endl;
    cout << "6 - Показ всіх записів " << endl;
    cout << "7 -запис інформації в файл " << endl;
    cout << "8 - Exit" << endl;
}

int main()
{
    setlocale(LC_ALL, "ua");
    Spravochnik S;
    int n;
    char* key = new char[100];
    n = 10;
    int Menu = 0;
    do
    {
        system("cls");
        Menu_();
        cin >> Menu;
        cin.ignore();
        switch (Menu)
        {
        case 1:
            cout << "Додавання даних" << endl;
            S.add_client(S);
            break;
        case 2:
            cout << "пошук по назві фірми" << endl;
            cout << "введіть назву фірми" << endl;
            cin.getline(key, 100);
            S.SetNameFirm(key);
            cout << "В довідникунема такої фірми" << endl;
            break;
        case 3:

            cout << "пошук по імені власника" << endl;
            cout << "введіть ім'я власника" << endl;
            cin.getline(key, 100);
            S.SetNameOwner(key);
            cout << "В довіднику нема такого власника" << endl;
            break;
        case 4:

            cout << "пошук по виду діяльгості" << endl;
            cout << "введіть вид діяльності" << endl;
            cin.getline(key, 100);
            S.SetTypeWork(key);

            cout << "нема такого виду діяльності" << endl;
            break;
        case 5:
            int str;
            cout << "пошук по номеру телефона" << endl;
            cout << "введіть номер телефона" << endl;
            cin >> str;
            S.SetPhone(746874186);
            S.GetPhone();
            if (S.GetPhone() == str) 
                cout << "нема такого номера телефона" << endl;
            break;
        case 6:
            cout << "вывод всех записей" << endl;
            S.output_from_file();
        case 7:
            cout << "запис інформації в файл" << endl;
            S.save_into_file();

        default:cout << "No such number menu item" << endl;
        }
        system("pause");
    } while (Menu != 8);
    system("pause");
    return 0;
}

320

(28 відповідей, залишених у C++)

а чому не дуже добре?