Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- ///////////////////////////////////////
- class Person
- {
- public:
- void setName(string newName) { name = newName; }
- void setAge (int newAge) { age = newAge; }
- void setGender(string newGender) { gender = newGender; }
- void setPassport(int newPassport) { passport = newPassport; }
- string getName() { return name; }
- void showInfo()
- {
- cout << "Name: " << name << ", Age: " << age
- << ", Gender: " << gender << ", Passport: " << passport << endl;
- }
- private:
- string name;
- int age;
- string gender;
- int passport;
- };
- // v.erase(v.begin() + 2); // Удаление третьего элемента
- ////////////////////////////////////////////////////////
- class Archive
- {
- public:
- int nCounter;
- void delete_P()
- {
- persons.pop_back();
- // persons.erase(persons.begin() + 2);
- }
- void delete_Persons(string name)
- {
- for (int i = 0; i < persons.size(); i++)
- {
- if (persons[i]->getName () == name)
- { // delete_P(); //showInfo();
- persons.erase(persons.begin() + i);
- }
- else cout << "Person with name " << name << " not found." << endl;
- }
- }
- void addPerson(Person* newPerson)
- {
- persons.push_back(newPerson);
- }
- void showPersons()
- {
- for (int i = 0; i < persons.size(); i++)
- {
- persons[i]->showInfo();
- cout << "------------------------------" << endl;
- }
- }
- void findPersonByName(string name)
- {
- for (int i = 0; i < persons.size(); i++)
- {
- if (persons[i]->getName () == name)
- { persons[i]->showInfo();
- }
- else cout << "Person with name " << name << " not found." << endl;
- }
- }
- private:
- vector<Person*> persons;
- };
- /////////////////////////////////////////////////////////////////////////////
- int main()
- {
- Archive archive;
- Person *person1 = new Person;
- person1->setName ("Vlad");
- person1->setAge (28);
- person1->setGender ("M");
- person1->setPassport (5231);
- archive.addPerson(person1);
- person1 = new Person;
- person1->setName ("Olga");
- person1->setAge (32);
- person1->setGender ("W");
- person1->setPassport (5798);
- archive.addPerson (person1);
- person1 = new Person;
- person1->setName ("Vlad");
- person1->setAge (33);
- person1->setGender ("M");
- person1->setPassport (1111);
- archive.addPerson(person1);
- person1 = new Person;
- person1->setName ("Natali");
- person1->setAge (56);
- person1->setGender ("W");
- person1->setPassport (2898);
- archive.addPerson (person1);
- int choice = 0;
- int age,
- passport;
- string name,
- gender,
- searchName;
- Person* newPerson;
- string searchName_d;
- while (choice != 5)
- {
- cout << "What do you want to do?" << endl;
- cout << "1) Add a person" << endl;
- cout << "2) Find a person" << endl;
- cout << "3) Show all persons" << endl;
- cout << "4) Delete person" << endl;
- cout << "5) Exit the program" << endl;
- cout << "Your choice: ";
- cin >> choice;
- switch(choice)
- {
- case 1: newPerson = new Person;
- cout << "Enter name: ";
- cin >> name;
- newPerson->setName(name);
- cout << "Enter age: ";
- cin >> age;
- newPerson->setAge(age);
- cout << "Enter gender (M/W): ";
- cin >> gender;
- newPerson->setGender(gender);
- cout << "Enter passport number: ";
- cin >> passport;
- newPerson->setPassport(passport);
- archive.addPerson(newPerson);
- cout << "Person added!" << endl;
- break;
- case 2:
- cout << "Enter name to search: ";
- cin >> searchName;
- archive.findPersonByName(searchName);
- break;
- case 3: archive.showPersons();
- break;
- case 4: cout << "Enter name to delete: ";
- cin >> searchName_d;
- archive.delete_Persons(searchName_d);
- break;
- case 5: cout << "Program terminated." << endl;
- break;
- default: cout << "Invalid choice. Try again." << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement