Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cstring>
- #include <deque>
- #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;
- }
- };
- template <typename tp>
- class queue
- {
- std::deque<tp> dq;
- int size = 0;
- public:
- void push(const tp& i)
- {
- dq.push_back(i);
- size++;
- }
- tp pop()
- {
- tp t;
- if (size > 0)
- {
- t = dq.front();
- dq.pop_front();
- size--;
- }
- return t;
- }
- const int& getSize()
- {
- return size;
- }
- };
- int main()
- {
- queue<info_container> q;
- char c;
- do
- {
- std::string st;
- int nt;
- std::cout << "Enter name: ";
- std::getline(std::cin >> std::ws, st);
- std::cout << "Enter phone number: ";
- std::cin >> nt;
- q.push(info_container(st, nt));
- std::cin.clear();
- std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- std::cout << "Wanna continue? (y/n): ";
- std::cin >> c;
- } while (c == 'y');
- std::cout << std::endl;
- while(q.getSize() > 0)
- {
- info_container t = q.pop();
- std::cout << "Name: " << t.getName() << std::endl;
- std::cout << "Phone Number: " << t.getPhoneNumber() << std::endl << std::endl;
- }
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement