Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNING
- #include "Person.h"
- #include <iostream>
- #include <exception>
- #include <vector>
- #include <cstring>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "RUS");
- const Person *NO_DAD, *Adam, *Eve, *Ivan, *Maria ;
- try
- {
- Adam = new Person("Adam", Person::Gender::man);
- Eve = new Person("Eve", Person::Gender::woman);
- NO_DAD = new Person("NO_DAD", Person::Gender::man);
- cout << *Adam << endl;
- cout << *Eve << endl;
- Maria = Eve->GiveBirth("Maria", Person::Gender::woman);
- cout << *Maria << endl;
- }
- catch (runtime_error& error)
- {
- cout << error.what() << endl;
- return 1;
- }
- try
- {
- Ivan = Eve->GiveBirth("Ivan", Person::Gender::man, Adam);
- cout << *Ivan << endl;
- }
- catch (runtime_error& error)
- {
- cout << error.what() << endl;
- return 1;
- }
- vector <const Person*> People;
- People.push_back(NO_DAD);
- People.push_back(Adam);
- People.push_back(Eve);
- People.push_back(Maria);
- People.push_back(Ivan);
- for (int i = 0; ; )
- {
- if (i == People.size())
- i = 0;
- cout << "Do you want to create person?(1 - yes, 0 - no)" << endl;
- int choice;
- cin >> choice;
- if (choice == 1)
- {
- char name[50];
- char o[90];
- if (i % 2 == 0)
- cout << "It is a girl!" << endl;
- else
- cout << "It is a boy!" << endl;
- cout << "Enter Name: " << endl;
- cin.getline(o, 90);
- cin.getline(name, 50);
- cout << "Choose mother:" << endl;
- for (int i = 0; i < People.size(); i++)
- {
- if (People[i]->GetGender() == Person::Gender::woman)
- cout << People[i]->GetName() << " -- " << i << endl;
- }
- int mother;
- cin >> mother;
- cout << "Choose father:" << endl;
- for (int i = 0; i < People.size(); i++)
- {
- if (People[i]->GetGender() == Person::Gender::man)
- cout << People[i]->GetName() << " -- " << i << endl;
- }
- int father;
- cin >> father;
- Person::Gender gender;
- const Person *s;
- if (i % 2 == 0)
- gender = Person::Gender::woman;
- else
- gender = Person::Gender::man;
- s = People[mother]->GiveBirth(name, gender, People[father]);
- People.push_back(s);
- i++;
- }
- if (choice == 0)
- {
- for (int i = 4; i < People.size(); i++)
- {
- cout << *People[i] << endl;
- }
- system("pause");
- return 0;
- }
- }
- for (int i = 0; i < People.size(); i++)
- {
- delete[] People[i];
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement