Пример9: Классы: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Новая: <nowiki>#include <iostream> using namespace std; class Person{ public: Person(){} ~Person(){} string GetFamiliya(){ return persFamiliya...)
 
 
Строка 1: Строка 1:
−
<nowiki>#include <iostream>
+
#include <iostream>
−
using namespace std;
+
using namespace std;
−
 
+
class Person{
−
class Person{
+
public:
−
 
+
        Person(){}     
−
public:
+
        ~Person(){}                  
−
        Person(){}     
+
        string GetFamiliya(){ return persFamiliya;}
−
        ~Person(){}  
+
        string GetName(){ return persName;}
−
       
+
        string GetData(){ return persData;}
−
       
+
        string GetTelefon(){ return persTelefon;}      
−
        string GetFamiliya(){ return persFamiliya;}
+
        void SetFamiliya(string fam){ persFamiliya=fam;}
−
        string GetName(){ return persName;}
+
        void SetName(string name){ persName=name;}
−
        string GetData(){ return persData;}
+
        void SetData(string data){ persData=data;}
−
        string GetTelefon(){ return persTelefon;}
+
        void SetTelefon(string tel){ persTelefon=tel;}      
−
 
+
        void Print();      
−
       
+
private:
−
        void SetFamiliya(string fam){ persFamiliya=fam;}
+
        string persFamiliya;
−
        void SetName(string name){ persName=name;}
+
        string persName;
−
        void SetData(string data){ persData=data;}
+
        string persData;
−
        void SetTelefon(string tel){ persTelefon=tel;}
+
        string persTelefon;      
−
 
+
};
−
       
+
void Person::Print(){
−
        void Print();
+
        cout<<"Familiya: "<<persFamiliya.c_str()<<endl
−
       
+
                <<"Im'a: "<<persName.c_str()<<endl
−
private:
+
                <<"Data rojdeniya: "<<persData.c_str()<<endl
−
        string persFamiliya;
+
                <<"Telefon: "<<persTelefon.c_str()<<endl;
−
        string persName;
+
}
−
        string persData;
+
#include <string>
−
        string persTelefon;
+
#include <vector>
−
       
+
void PrintMenu();         
−
};
+
void PrintAll();         
−
 
+
void SortPerson();       
−
 
+
void FindPerson();       
−
void Person::Print(){
+
void AddPerson();         
−
        cout<<"Familiya: "<<persFamiliya.c_str()<<endl
+
void DeletePerson();     
−
                <<"Im'a: "<<persName.c_str()<<endl
+
int GetNumber(int imin, int imax);
−
                <<"Data rojdeniya: "<<persData.c_str()<<endl
+
vector <Person> pers;  
−
                <<"Telefon: "<<persTelefon.c_str()<<endl;
+
int main(){
−
}
+
        bool exit=false;
−
 
+
        while(true){
−
#include <string>
+
                PrintMenu();
−
#include <vector>
+
                switch(GetNumber(1,6)){
−
 
+
                case 1: PrintAll(); break;
−
 
+
                case 2: SortPerson(); break;
−
 
+
                case 3: FindPerson(); break;
−
 
+
                case 4: AddPerson(); break;
−
void PrintMenu();         
+
                case 5: DeletePerson(); break;
−
void PrintAll();         
+
                case 6: exit=true; break;
−
void SortPerson();       
+
                }
−
void FindPerson();       
+
                if(exit)
−
void AddPerson();         
+
                        break;
−
void DeletePerson();     
+
        }
−
int GetNumber(int imin, int imax);
+
        return 0;
−
 
+
}
−
vector <Person> pers;
+
void PrintMenu(){
−
 
+
        cout<<endl
−
int main(){
+
                <<"--------------------  men'u  --------------------"<<endl
−
        bool exit=false;
+
                <<"1 - Pokazat' vse zapisi"<<endl
−
        while(true){
+
                <<"2 - Sortirovat' zapisi"<<endl
−
                PrintMenu();
+
                <<"3 - Nayti zapis'"<<endl
−
                switch(GetNumber(1,6)){
+
                <<"4 - Dobavit' zapis'"<<endl
−
                case 1: PrintAll(); break;
+
                <<"5 - Udalit' zapis'"<<endl
−
                case 2: SortPerson(); break;
+
                <<"6 - Vyhod"<<endl
−
                case 3: FindPerson(); break;
+
                <<"-------------------------------------------------" << endl;
−
                case 4: AddPerson(); break;
+
}
−
                case 5: DeletePerson(); break;
+
void PrintAll(){
−
                case 6: exit=true; break;
+
        cout<<"---------------  vse zapisi  --------------------\n";
−
                }
+
        for(int n=0; n<pers.size(); n++){
−
                if(exit)
+
                cout<<"\n- Zapis' N "<<n+1<<" -\n";
−
                        break;
+
                pers[n].Print();
−
        }
+
        }
−
        return 0;
+
        cout<<"-------------------------------------------------\n";
−
}
+
}
−
 
+
int GetNumber(int imin, int imax){
−
 
+
        int number=imin-1;
−
void PrintMenu(){
+
        while(true){
−
        cout<<endl
+
                cin >> number;
−
                <<"--------------------  men'u  --------------------"<<endl
+
                if((number>=imin) && (number <=imax) && (cin.peek()=='\n'))
−
                <<"1 - Pokazat' vse zapisi"<<endl
+
                        break;
−
                <<"2 - Sortirovat' zapisi"<<endl
+
                else{
−
                <<"3 - Nayti zapis'"<<endl
+
                        cout << "Povtorite vvod (ojidaets'a chislo ot " << imin << " do " << imax << "):" << endl;
−
                <<"4 - Dobavit' zapis'"<<endl
+
                        cin.clear();
−
                <<"5 - Udalit' zapis'"<<endl
+
                        while(cin.get()!='\n'){}
−
                <<"6 - Vyhod"<<endl
+
                }
−
                <<"-------------------------------------------------" << endl;
+
        }
−
}
+
        return number;
−
 
+
}
−
 
+
int GetNumber(int imin, int imax);
−
void PrintAll(){
+
void SortPerson() {
−
        cout<<"---------------  vse zapisi  --------------------\n";
+
        cout<<"---------------  sortirovka  --------------------\n";
−
        for(int n=0; n<pers.size(); n++){
+
        cout<<"Sortirovka po pol'u\n";
−
                cout<<"\n- Zapis' N "<<n+1<<" -\n";
+
        cout<<" 1 - Familiya\n"
−
                pers[n].Print();
+
            <<" 2 - Im'a\n"
−
        }
+
            <<" 3 - Telefon\n"
−
        cout<<"-------------------------------------------------\n";
+
            <<" 4 - Exit\n";
−
}
+
            int vybor=GetNumber(1,4);
−
 
+
       
−
 
+
                switch(vybor){
−
int GetNumber(int imin, int imax){
+
                case 1:{
−
        int number=imin-1;
+
                        int n, i, k, dl;
−
        while(true){
+
                        for(n=0; n<=pers.size()-1; n++) {
−
                cin >> number;
+
                                dl=pers[n].GetFamiliya().size();
−
                if((number>=imin) && (number <=imax) && (cin.peek()=='\n'))
+
                                for (i=n+1; i<pers.size(); i++)
−
                        break;
+
                                        for (k=dl; k>=0; k--)
−
                else{
+
                                                if (pers[i].GetFamiliya()[k]<pers[n].GetFamiliya()[k]) {
−
                        cout << "Povtorite vvod (ojidaets'a chislo ot " << imin << " do " << imax << "):" << endl;
+
                                                        Person buf=pers[n];
−
                        cin.clear();
+
                                                        pers[n]=pers[i];
−
                        while(cin.get()!='\n'){}
+
                                                        pers[i]=buf;
−
                }
+
                                                }                       
−
        }
+
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
−
        return number;
+
                        pers[n].Print();
−
}
+
                        }
−
 
+
                            }
−
 
+
                        break;           
−
int GetNumber(int imin, int imax);
+
                case 2:{
−
void SortPerson() {
+
                        int n, i, k, dl;
−
        cout<<"---------------  sortirovka  --------------------\n";
+
                        for(n=0; n<=pers.size()-1; n++) {
−
        cout<<"Sortirovka po pol'u\n";
+
                                dl=pers[n].GetName().size();
−
        cout<<" 1 - Familiya\n"
+
                                for (i=n+1; i<pers.size(); i++)
−
            <<" 2 - Im'a\n"
+
                                        for (k=dl; k>=0; k--)
−
            <<" 3 - Telefon\n"
+
                                                if (pers[i].GetName()[k]<pers[n].GetName()[k]) {
−
            <<" 4 - Exit\n";
+
                                                        Person buf=pers[n];
−
            int vybor=GetNumber(1,4);
+
                                                        pers[n]=pers[i];
−
       
+
                                                        pers[i]=buf;
−
                switch(vybor){
+
                                                }
−
                case 1:{
+
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
−
                        int n, i, k, dl;
+
                        pers[n].Print();
−
                        for(n=0; n<=pers.size()-1; n++) {
+
                        }
−
                                dl=pers[n].GetFamiliya().size();
+
                            }
−
                                for (i=n+1; i<pers.size(); i++)
+
                        break;      
−
                                        for (k=dl; k>=0; k--)
+
                case 3:{
−
                                                if (pers[i].GetFamiliya()[k]<pers[n].GetFamiliya()[k]) {
+
                        int n, i, k, dl;
−
                                                        Person buf=pers[n];
+
                        for(n=0; n<=pers.size()-1; n++) {
−
                                                        pers[n]=pers[i];
+
                                dl=pers[n].GetTelefon().size();
−
                                                        pers[i]=buf;
+
                                for (i=n+1; i<pers.size(); i++)
−
                                                }                       
+
                                        for (k=dl; k>=0; k--)
−
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
+
                                                if (pers[i].GetTelefon()[k]>pers[n].GetTelefon()[k]) {
−
                        pers[n].Print();
+
                                                        Person buf=pers[n];
−
                        }
+
                                                        pers[n]=pers[i];
−
                          }
+
                                                        pers[i]=buf;
−
                        break;           
+
                                                }
−
                case 2:{
+
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
−
                        int n, i, k, dl;
+
                        pers[n].Print();
−
                        for(n=0; n<=pers.size()-1; n++) {
+
                        }
−
                                dl=pers[n].GetName().size();
+
                            }
−
                                for (i=n+1; i<pers.size(); i++)
+
                        break;
−
                                        for (k=dl; k>=0; k--)
+
                case 4:{
−
                                                if (pers[i].GetName()[k]<pers[n].GetName()[k]) {
+
                        break;
−
                                                        Person buf=pers[n];
+
                            }
−
                                                        pers[n]=pers[i];
+
                }
−
                                                        pers[i]=buf;
+
        cout<<"-------------------  gotovo  --------------------\n";
−
                                                }
+
}
−
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
+
void FindPerson(){
−
                        pers[n].Print();
+
        cout<<"---------------  poisk zapisi  ------------------\n";
−
                        }
+
        cout<<"Vyberite kriteriy poiska\n";
−
                          }
+
        cout<<" 1 - Familiya\n"
−
                        break;
+
            <<" 2 - Im'a\n"
−
       
+
            <<" 3 - Data rojdeniya\n"
−
                case 3:{
+
            <<" 4 - Telefon\n"
−
                        int n, i, k, dl;
+
            <<" 5 - Exit\n";
−
                        for(n=0; n<=pers.size()-1; n++) {
+
        int vybor=GetNumber(1,5);
−
                                dl=pers[n].GetTelefon().size();
+
                switch(vybor){
−
                                for (i=n+1; i<pers.size(); i++)
+
                case 1:{
−
                                        for (k=dl; k>=0; k--)
+
                        bool find=false;
−
                                                if (pers[i].GetTelefon()[k]>pers[n].GetTelefon()[k]) {
+
                        string sbuf;
−
                                                        Person buf=pers[n];
+
                        cout<<"Vvedite familiyu: ";
−
                                                        pers[n]=pers[i];
+
                        cin>>sbuf;
−
                                                        pers[i]=buf;
+
                        int n=0;
−
                                                }
+
                        while(n<pers.size()){
−
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
+
                                if(sbuf==pers[n].GetFamiliya()) {
−
                        pers[n].Print();
+
                                        pers[n].Print();
−
                        }
+
                                        find=true;
−
                          }
+
                                        break;}
−
                        break;
+
                                else
−
                case 4:{
+
                                        n++;
−
                        break;
+
                        }
−
                          }
+
                        if (find==false) cout<<"Net takoy zapisi\n";
−
                }
+
                        cout<<"-----------------------------------\n";
−
        cout<<"-------------------  gotovo  --------------------\n";
+
                        break;
−
}
+
                            }
−
 
+
                case 2:{
−
 
+
                        bool find=false;
−
void FindPerson(){
+
                        string sbuf;
−
        cout<<"---------------  poisk zapisi  ------------------\n";
+
                        cout<<"Vvedite im'a: ";
−
        cout<<"Vyberite kriteriy poiska\n";
+
                        cin>>sbuf;
−
        cout<<" 1 - Familiya\n"
+
                        int n=0;
−
            <<" 2 - Im'a\n"
+
                        while(n<pers.size()){
−
            <<" 3 - Data rojdeniya\n"
+
                                if(sbuf==pers[n].GetName()) {
−
            <<" 4 - Telefon\n"
+
                                        pers[n].Print();
−
            <<" 5 - Exit\n";
+
                                        find=true;
−
        int vybor=GetNumber(1,5);
+
                                        break;}
−
                switch(vybor){
+
                                else
−
                case 1:{
+
                                        n++;
−
                        bool find=false;
+
                        }
−
                        string sbuf;
+
                        if (find==false) cout<<"Net takoy zapisi\n";
−
                        cout<<"Vvedite familiyu: ";
+
                        cout<<"-----------------------------------\n";
−
                        cin>>sbuf;
+
                        break;
−
                        int n=0;
+
                            }            
−
                        while(n<pers.size()){
+
                case 3:{
−
                                if(sbuf==pers[n].GetFamiliya()) {
+
                        bool find=false;
−
                                        pers[n].Print();
+
                        string sbuf;
−
                                        find=true;
+
                        cout<<"Vvedite datu rojdeniya: ";
−
                                        break;}
+
                        cin>>sbuf;
−
                                else
+
                        int n=0;
−
                                        n++;
+
                        while(n<pers.size()){
−
                        }
+
                                if(sbuf==pers[n].GetData()) {
−
                        if (find==false) cout<<"Net takoy zapisi\n";
+
                                        pers[n].Print();
−
                        cout<<"-----------------------------------\n";
+
                                        find=true;
−
                        break;
+
                                        break;}
−
                          }
+
                                else
−
                case 2:{
+
                                        n++;
−
                        bool find=false;
+
                        }
−
                        string sbuf;
+
                        if (find==false) cout<<"Net takoy zapisi\n";
−
                        cout<<"Vvedite im'a: ";
+
                        cout<<"-----------------------------------\n";
−
                        cin>>sbuf;
+
                        break;
−
                        int n=0;
+
                                }
−
                        while(n<pers.size()){
+
                case 4:{
−
                                if(sbuf==pers[n].GetName()) {
+
                        bool find=false;
−
                                        pers[n].Print();
+
                        string sbuf;
−
                                        find=true;
+
                        cout<<"Vvedite telefon: ";
−
                                        break;}
+
                        cin>>sbuf;
−
                                else
+
                        int n=0;
−
                                        n++;
+
                        while(n<pers.size()){
−
                        }
+
                                if(sbuf==pers[n].GetTelefon()) {
−
                        if (find==false) cout<<"Net takoy zapisi\n";
+
                                        pers[n].Print();
−
                        cout<<"-----------------------------------\n";
+
                                        find=true;
−
                        break;
+
                                        break;}
−
                          }
+
                                else
−
               
+
                                        n++;
−
                case 3:{
+
                        }
−
                        bool find=false;
+
                        if (find==false) cout<<"Net takoy zapisi";
−
                        string sbuf;
+
                        cout<<"-----------------------------------\n";
−
                        cout<<"Vvedite datu rojdeniya: ";
+
                        break;
−
                        cin>>sbuf;
+
                                }
−
                        int n=0;
+
                case 6:{
−
                        while(n<pers.size()){
+
                        break;
−
                                if(sbuf==pers[n].GetData()) {
+
                            }
−
                                        pers[n].Print();
+
                }
−
                                        find=true;
+
        cout<<"-------------------  gotovo  --------------------\n";
−
                                        break;}
+
}
−
                                else
+
void AddPerson(){
−
                                        n++;
+
        string sbuf;
−
                        }
+
        Person bufPers;
−
                        if (find==false) cout<<"Net takoy zapisi\n";
+
        cout<<endl
−
                        cout<<"-----------------------------------\n";
+
                <<"----------------  novaya zapis' ----------------\n"
−
                        break;
+
                <<"Familiya: ";
−
                                }
+
        cin>>sbuf;
−
                case 4:{
+
        bufPers.SetFamiliya(sbuf);  
−
                        bool find=false;
+
        cout<<endl
−
                        string sbuf;
+
                <<"Im'a: ";
−
                        cout<<"Vvedite telefon: ";
+
        cin>>sbuf;
−
                        cin>>sbuf;
+
        bufPers.SetName(sbuf);
−
                        int n=0;
+
        cout<<endl
−
                        while(n<pers.size()){
+
                <<"Data rojdeniya: ";
−
                                if(sbuf==pers[n].GetTelefon()) {
+
        cin>>sbuf;
−
                                        pers[n].Print();
+
        bufPers.SetData(sbuf);  
−
                                        find=true;
+
        cout<<endl
−
                                        break;}
+
                <<"Telefon:";
−
                                else
+
        cin>>sbuf;
−
                                        n++;
+
        bufPers.SetTelefon(sbuf);
−
                        }
+
        pers.push_back(bufPers);
−
                        if (find==false) cout<<"Net takoy zapisi";
+
        cout<<"-------------------  gotovo  --------------------\n";
−
                        cout<<"-----------------------------------\n";
+
}
−
                        break;
+
void DeletePerson(){
−
                                }
+
        string sbuf;
−
                case 6:{
+
        cout<<"----------------  udalenie zapisi ---------------\n";
−
                        break;
+
        cout<<"Vvedite familiyu: ";
−
                          }
+
        cin>>sbuf;  
−
                }
+
        int n=0;
−
        cout<<"-------------------  gotovo  --------------------\n";
+
        bool find=false;
−
 
+
        while(n<pers.size()){
−
}
+
                if(sbuf==pers[n].GetFamiliya()){
−
 
+
                        pers[n].Print();
−
 
+
                        find=true;
−
void AddPerson(){
+
                        pers.erase(pers.begin()+n);
−
        string sbuf;
+
                        cout<<endl;
−
        Person bufPers;
+
                }
−
        cout<<endl
+
                else             
−
                <<"----------------  novaya zapis' ----------------\n"
+
                        n++;
−
                <<"Familiya: ";
+
        }
−
        cin>>sbuf;
+
        if (find==false) cout<<"Net takoy zapisi\n";     
−
        bufPers.SetFamiliya(sbuf);
+
        cout<<"-------------------  gotovo  --------------------\n";
−
 
+
}
−
        cout<<endl
 
−
                <<"Im'a: ";
 
−
        cin>>sbuf;
 
−
        bufPers.SetName(sbuf);
 
−
 
 
−
        cout<<endl
 
−
                <<"Data rojdeniya: ";
 
−
        cin>>sbuf;
 
−
        bufPers.SetData(sbuf);
 
−
 
 
−
        cout<<endl
 
−
                <<"Telefon:";
 
−
        cin>>sbuf;
 
−
        bufPers.SetTelefon(sbuf);
 
−
 
 
−
        pers.push_back(bufPers);
 
−
        cout<<"-------------------  gotovo  --------------------\n";
 
−
}
 
−
 
 
−
 
 
−
void DeletePerson(){
 
−
        string sbuf;
 
−
        cout<<"----------------  udalenie zapisi ---------------\n";
 
−
        cout<<"Vvedite familiyu: ";
 
−
        cin>>sbuf;
 
−
 
 
−
        int n=0;
 
−
        bool find=false;
 
−
        while(n<pers.size()){
 
−
                if(sbuf==pers[n].GetFamiliya()){
 
−
                        pers[n].Print();
 
−
                        find=true;
 
−
                        pers.erase(pers.begin()+n);
 
−
                        cout<<endl;
 
−
                }
 
−
                else             
 
−
                        n++;
 
−
        }
 
−
        if (find==false) cout<<"Net takoy zapisi\n";     
 
−
        cout<<"-------------------  gotovo  --------------------\n";
 
−
}
 
−
</nowiki>
 

Текущая версия на 09:29, 14 января 2009

#include <iostream>
using namespace std;
class Person{
public:
        Person(){}    
        ~Person(){}                   
        string GetFamiliya(){ return persFamiliya;}
        string GetName(){ return persName;}
        string GetData(){ return persData;}
        string GetTelefon(){ return persTelefon;}       
        void SetFamiliya(string fam){ persFamiliya=fam;}
        void SetName(string name){ persName=name;}
        void SetData(string data){ persData=data;}
        void SetTelefon(string tel){ persTelefon=tel;}       
        void Print();        
private:
        string persFamiliya;
        string persName;
        string persData;
        string persTelefon;        
};
void Person::Print(){
        cout<<"Familiya: "<<persFamiliya.c_str()<<endl
                <<"Im'a: "<<persName.c_str()<<endl
                <<"Data rojdeniya: "<<persData.c_str()<<endl
                <<"Telefon: "<<persTelefon.c_str()<<endl;
}
#include <string>
#include <vector>
void PrintMenu();        
void PrintAll();         
void SortPerson();       
void FindPerson();       
void AddPerson();        
void DeletePerson();     
int GetNumber(int imin, int imax);
vector <Person> pers; 
int main(){
        bool exit=false;
        while(true){
                PrintMenu();
                switch(GetNumber(1,6)){
                case 1: PrintAll(); break;
                case 2: SortPerson(); break;
                case 3: FindPerson(); break;
                case 4: AddPerson(); break;
                case 5: DeletePerson(); break;
                case 6: exit=true; break;
                }
                if(exit)
                        break;
        }
        return 0;
}
void PrintMenu(){
        cout<<endl
                <<"--------------------  men'u  --------------------"<<endl
                <<"1 - Pokazat' vse zapisi"<<endl
                <<"2 - Sortirovat' zapisi"<<endl
                <<"3 - Nayti zapis'"<<endl
                <<"4 - Dobavit' zapis'"<<endl
                <<"5 - Udalit' zapis'"<<endl
                <<"6 - Vyhod"<<endl
                <<"-------------------------------------------------" << endl;
}
void PrintAll(){
        cout<<"---------------  vse zapisi  --------------------\n";
        for(int n=0; n<pers.size(); n++){
                cout<<"\n- Zapis' N "<<n+1<<" -\n";
                pers[n].Print();
        }
        cout<<"-------------------------------------------------\n";
}
int GetNumber(int imin, int imax){
        int number=imin-1;
        while(true){
                cin >> number;
                if((number>=imin) && (number <=imax) && (cin.peek()=='\n'))
                        break;
                else{
                        cout << "Povtorite vvod (ojidaets'a chislo ot " << imin << " do " << imax << "):" << endl;
                        cin.clear();
                        while(cin.get()!='\n'){}
                }
        }
        return number;
}
int GetNumber(int imin, int imax);
void SortPerson() {
        cout<<"---------------  sortirovka  --------------------\n";
        cout<<"Sortirovka po pol'u\n";
        cout<<" 1 - Familiya\n"
            <<" 2 - Im'a\n"
            <<" 3 - Telefon\n"
            <<" 4 - Exit\n";
            int vybor=GetNumber(1,4);
        
                switch(vybor){
                case 1:{
                        int n, i, k, dl;
                        for(n=0; n<=pers.size()-1; n++) {
                                dl=pers[n].GetFamiliya().size();
                                for (i=n+1; i<pers.size(); i++)
                                        for (k=dl; k>=0; k--)
                                                if (pers[i].GetFamiliya()[k]<pers[n].GetFamiliya()[k]) {
                                                        Person buf=pers[n];
                                                        pers[n]=pers[i];
                                                        pers[i]=buf;
                                                }                       
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
                        pers[n].Print();
                        }
                           }
                        break;          
                case 2:{
                        int n, i, k, dl;
                        for(n=0; n<=pers.size()-1; n++) {
                                dl=pers[n].GetName().size();
                                for (i=n+1; i<pers.size(); i++)
                                        for (k=dl; k>=0; k--)
                                                if (pers[i].GetName()[k]<pers[n].GetName()[k]) {
                                                        Person buf=pers[n];
                                                        pers[n]=pers[i];
                                                        pers[i]=buf;
                                                }
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
                        pers[n].Print();
                        }
                           }
                        break;        
                case 3:{
                        int n, i, k, dl;
                        for(n=0; n<=pers.size()-1; n++) {
                                dl=pers[n].GetTelefon().size();
                                for (i=n+1; i<pers.size(); i++)
                                        for (k=dl; k>=0; k--)
                                                if (pers[i].GetTelefon()[k]>pers[n].GetTelefon()[k]) {
                                                        Person buf=pers[n];
                                                        pers[n]=pers[i];
                                                        pers[i]=buf;
                                                }
                        cout<<"\n- Zapis' N "<<n+1<<" -\n";
                        pers[n].Print();
                        }
                           }
                        break;
                case 4:{
                        break;
                           }
                }
        cout<<"-------------------  gotovo  --------------------\n";
}
void FindPerson(){
        cout<<"---------------  poisk zapisi  ------------------\n";
        cout<<"Vyberite kriteriy poiska\n";
        cout<<" 1 - Familiya\n"
            <<" 2 - Im'a\n"
            <<" 3 - Data rojdeniya\n"
            <<" 4 - Telefon\n"
            <<" 5 - Exit\n";
        int vybor=GetNumber(1,5);
                switch(vybor){
                case 1:{
                        bool find=false;
                        string sbuf;
                        cout<<"Vvedite familiyu: ";
                        cin>>sbuf;
                        int n=0;
                        while(n<pers.size()){
                                if(sbuf==pers[n].GetFamiliya()) {
                                        pers[n].Print();
                                        find=true;
                                        break;}
                                else
                                        n++;
                        }
                        if (find==false) cout<<"Net takoy zapisi\n";
                        cout<<"-----------------------------------\n";
                        break;
                           }
                case 2:{
                        bool find=false;
                        string sbuf;
                        cout<<"Vvedite im'a: ";
                        cin>>sbuf;
                        int n=0;
                        while(n<pers.size()){
                                if(sbuf==pers[n].GetName()) {
                                        pers[n].Print();
                                        find=true;
                                        break;}
                                else
                                        n++;
                        }
                        if (find==false) cout<<"Net takoy zapisi\n";
                        cout<<"-----------------------------------\n";
                        break;
                           }              
                case 3:{
                        bool find=false;
                        string sbuf;
                        cout<<"Vvedite datu rojdeniya: ";
                        cin>>sbuf;
                        int n=0;
                        while(n<pers.size()){
                                if(sbuf==pers[n].GetData()) {
                                        pers[n].Print();
                                        find=true;
                                        break;}
                                else
                                        n++;
                        }
                        if (find==false) cout<<"Net takoy zapisi\n";
                        cout<<"-----------------------------------\n";
                        break;
                                }
                case 4:{
                        bool find=false;
                        string sbuf;
                        cout<<"Vvedite telefon: ";
                        cin>>sbuf;
                        int n=0;
                        while(n<pers.size()){
                                if(sbuf==pers[n].GetTelefon()) {
                                        pers[n].Print();
                                        find=true;
                                        break;}
                                else
                                        n++;
                        }
                        if (find==false) cout<<"Net takoy zapisi";
                        cout<<"-----------------------------------\n";
                        break;
                                }
                case 6:{
                        break;
                           }
                }
        cout<<"-------------------  gotovo  --------------------\n";
}
void AddPerson(){
        string sbuf;
        Person bufPers;
        cout<<endl
                <<"----------------  novaya zapis' ----------------\n"
                <<"Familiya: ";
        cin>>sbuf;
        bufPers.SetFamiliya(sbuf); 
        cout<<endl
                <<"Im'a: ";
        cin>>sbuf;
        bufPers.SetName(sbuf);
        cout<<endl
                <<"Data rojdeniya: ";
        cin>>sbuf;
        bufPers.SetData(sbuf); 
        cout<<endl
                <<"Telefon:";
        cin>>sbuf;
        bufPers.SetTelefon(sbuf);
        pers.push_back(bufPers);
        cout<<"-------------------  gotovo  --------------------\n";
}
void DeletePerson(){
        string sbuf;
        cout<<"----------------  udalenie zapisi ---------------\n";
        cout<<"Vvedite familiyu: ";
        cin>>sbuf; 
        int n=0;
        bool find=false;
        while(n<pers.size()){
                if(sbuf==pers[n].GetFamiliya()){
                        pers[n].Print();
                        find=true;
                        pers.erase(pers.begin()+n);
                        cout<<endl;
                }
                else            
                        n++;
        }
        if (find==false) cout<<"Net takoy zapisi\n";    
        cout<<"-------------------  gotovo  --------------------\n";
}