/* THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL. Problem Statement: Write C++ program using STL for sorting and searching with user defined records such as person record (Name, DOB, Telephone number) using vector container. Code from Object Oriented Programming (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/ObjectOrientedProgramming */ // BEGINNING OF CODE #include #include #include #include using namespace std; class Person { public: string name; int day,month,year; int telephone; string dob; Person(){ name=""; telephone=0; day=1; month=1; year=2023; } bool operator==(Person p2){ return name==p2.name; } void input(){ cout<<"Enter name: "; cin>>name; cout<<"Enter telephone: "; cin>>telephone; cout<<"Date of birth (first DD [ENTER], then MM [ENTER], then YYYY [ENTER] format): "; cin>>day>>month>>year; dob=""+ to_string(day)+"/"+to_string(month)+"/"+to_string(year); } void display () { cout<<"(Name: "< vs1){ Person p1; cout<<"Enter name of the person you want to find: "<>p1.name; vector::iterator ir; ir=find(vs1.begin(),vs1.end(),p1); if(ir==vs1.end()) cout<<"The person with name "<display();cout<& vs1){ Person p1; cout<<"Enter name of the person you want to delete: "<>p1.name; vector::iterator ir; ir=find(vs1.begin(),vs1.end(),p1); if(ir==vs1.end()) cout<<"The person with name "<display();cout<<"\n"; vs1.erase(ir); cout<<"Deleted\n"; } } void vec_display(vector vs1){ cout<<"["; for (auto elem:vs1){ elem.display(); cout<<","; } cout<<"]\n"; } int main(){ vector v1; cout<<"Enter number of people: "; int n,ch,ch2; cin>>n; for (int i=0;i>ch; switch(ch){ case 1: v1.push_back(return_obj()); break; case 2: deletevec(v1); break; case 3: cout<<"1.Sort by DOB , 2 Sort by Name , 3 Sort by Telephone no.\n"; cin>>ch2; switch(ch2){ case 1: sort(v1.begin(),v1.end(),compareDate); break; case 2: sort(v1.begin(),v1.end(),compareName); break; case 3: sort(v1.begin(),v1.end(),compareTelephone); break; } vec_display(v1); break; case 4: srch(v1); break; case 5: vec_display(v1);break; case 6: exit(1); default: cout<<"Please choose a valid option.\n"; } } } // END OF CODE