Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <string>
- #include <conio.h>
- class info_container
- {
- std::string name;
- int phone = 0;
- bool isValidName = false, isValidPhone = false;
- public:
- info_container() {}
- info_container(const int& i) : phone(i), isValidPhone(true) {}
- info_container(const std::string& i) : name(i), isValidName(true) {}
- info_container(const char* i) : name(std::string(i)), isValidName(true) {}
- info_container(const std::string& i1, const int& i2) : name(i1), phone(i2), isValidName(true), isValidPhone(true) {}
- info_container(const char* i1, const int& i2) : name(std::string(i1)), phone(i2), isValidName(true), isValidPhone(true) {}
- const std::string& getName()
- {
- return name;
- }
- void setName(const std::string& i)
- {
- name = i;
- if (!isValidName)
- isValidName = true;
- }
- void setName(const char* i)
- {
- name = std::string(i);
- if (!isValidName)
- isValidName = true;
- }
- const int& getPhoneNumber()
- {
- return phone;
- }
- void setPhoneNumber(const int& i)
- {
- phone = i;
- if (!isValidPhone)
- isValidPhone = true;
- }
- };
- class queue;
- class queue_mngr
- {
- queue* first_element;
- public:
- queue* getFirst()
- {
- return this->first_element;
- }
- void setFirst(queue* f)
- {
- this->first_element = f;
- }
- };
- class queue
- {
- queue_mngr* first_element = nullptr;
- queue* next_element = nullptr;
- info_container data;
- public:
- queue()
- {
- first_element = new queue_mngr();
- first_element->setFirst(this);
- }
- queue(const info_container& d, queue_mngr* fe) : data(d), first_element(fe) {}
- queue* getNext()
- {
- return this->next_element;
- }
- ~queue()
- {
- }
- void setNext(queue* n)
- {
- this->next_element = n;
- }
- const info_container& getData()
- {
- return data;
- }
- void push(const info_container& d)
- {
- queue* new_element = new queue(d, this->first_element);
- queue* last_element = this->first_element->getFirst();
- while (last_element->getNext())
- {
- last_element = last_element->getNext();
- }
- last_element->setNext(new_element);
- }
- bool pop(info_container& d)
- {
- if (!this->first_element->getFirst()->getNext())
- return false;
- queue* pop_element = this->first_element->getFirst()->getNext();
- d = pop_element->getData();
- this->first_element->getFirst()->setNext(pop_element->getNext());
- delete pop_element;
- return true;
- }
- };
- int main()
- {
- std::string ak[5] = {"first", "second", "third", "fourth", "fifth"};
- queue q;
- std::string is;
- int in;
- for (int i = 0; i < 5; i++)
- {
- std::cout << "Enter " << ak[i] << " name: ";
- std::getline(std::cin >> std::ws, is);
- std::cout << "Enter " << ak[i] << " phone number: ";
- std::cin >> in;
- std::cout << std::endl;
- q.push(info_container(is, in));
- }
- std::cout << std::endl;
- info_container tp;
- while (q.pop(tp))
- {
- std::cout << "Name: " << tp.getName() << std::endl;
- std::cout << "Phone number: " << tp.getPhoneNumber() << std::endl;
- std::cout << std::endl;
- }
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement