Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- using std::string;
- using std::vector;
- using std::cout;
- using std::endl;
- /**
- * Класс пользователя
- * Хрнанит:
- * Имя пользователя
- * Id пользователя
- */
- class User {
- public:
- // Конструктор
- User(int id, string const &name) {
- this->id = id;
- this->name = name;
- }
- int getId() const {
- return id;
- }
- string getName() const {
- return name;
- }
- private:
- int id;
- string name;
- };
- /**
- * Класс базы пользователей
- * Операции:
- * Добавление нового пользователя
- * Удаление пользователя (По имени или по Id)
- * Поиск (По имени или по id)
- */
- class DataBase {
- public:
- /**
- * Возвращаем результат добавления
- * true - добавили
- * false - не добавили
- */
- bool add(User const &user) {
- // Проверяем на уникальность id
- for (auto it = user_list.begin(); it != user_list.end(); ++it) {
- if (it->getId() == user.getId()) {
- return false;
- }
- }
- user_list.push_back(user);
- return true;
- }
- /**
- * Возвращаем результат удаления
- * true - удалено
- * false - не удалено
- */
- bool remove(int id) {
- // auto === vector<User>::iterator
- for (auto it = user_list.begin(); it != user_list.end(); ++it) {
- if (it->getId() == id) {
- user_list.erase(it);
- return true;
- }
- }
- return false;
- }
- bool remove(string const &name) {
- for (auto it = user_list.begin(); it != user_list.end(); ++it) {
- if (it->getName() == name) {
- user_list.erase(it);
- return true;
- }
- }
- return false;
- }
- /**
- * Возвращаем результат:
- * true - Нашлось
- * false - Не нашлось
- * Второй параметр - результат.
- * Т.е. он будет содержать найденного пользователя
- */
- bool find(int id, User &result) const {
- for (auto it = user_list.begin(); it != user_list.end(); ++it) {
- if (it->getId() == id) {
- result = *it;
- return true;
- }
- }
- return false;
- }
- bool find(string const &name, User &result) const {
- for (auto it = user_list.begin(); it != user_list.end(); ++it) {
- if (it->getName() == name) {
- result = *it;
- return true;
- }
- }
- return false;
- }
- private:
- vector<User> user_list;
- };
- int main() {
- setlocale(LC_ALL, "Russian");
- DataBase db;
- // Добавляем пользователей
- db.add(User(0, "Alex"));
- db.add(User(1, "Bill"));
- db.add(User(2, "Ann"));
- // Попытка добавить пользователя с id, который уже есть в бд
- if (!db.add(User(1, "Nick"))) {
- cout << "Пользователь с id == 1 уже есть в бд" << endl;
- }
- User result(0, "");
- // Ищем пользователя по id
- if (db.find(1, result)) {
- cout << "Имя пользователя с id == 1: " << result.getName() << endl;
- }
- // Удаляем пользователя с id == 1
- if (db.remove(1)) {
- cout << "Пользователь с id == 1 успешно удален" << endl;
- }
- // Ищем пользователя с id == 1
- if (!db.find(1, result)) {
- cout << "Пользователя c id == 1 нет в бд" << endl;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement