Поиск и удаление профиля пользователя.

ВВЕДЕНИЕ

С++ - язык программирования, который поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщенное программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений . Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C; множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико, но не включает все возможные программы на C.

АЛГОРИТМИЗАЦИЯ

В данном разделе приведено описание используемых методов и алгоритмов для решения поставленной задачи, а именно для управления профилями пользователей.

1.1 Описание алгоритмов выполнения поставленных задач:

В данную программу входят следующие классы:

· Menu;

· UserContainer;

· User;

1.1.1 Описание классов:

Класс Menu предназначен для вывода на экран всех пунктов меню в программе, а так же отвечает за обработку выбранных элементов.

Он содержит поле "container", предназначенное для хранения указателя на объект списка пользователей, а так же метод mainMenu(), предназначенный для вывода перечня допустимых операций над списком пользователя и обработки выбранных пунктов пользователя.

Класс Menu является пользовательским интерфейсом.

Класс UserContainer предназначен для хранения и управления списков пользователей.

UserContainer содержит поле deque<User> userList, предназначенное для хранения списка пользователей.

Класс содержит следующие методы:

· void addUser(User user)

Добавляет нового пользователя в список(дек);

· void printAllUser()

Выводит список всех пользователей на экран;

· User findUserBySurname(string surname)

Находит пользователя в деке по переданному параметру surname;

· void deleteUser(User user)

Находит пользователя "user" и удаляет его из деки;

· void updateUser(User user)

Находит пользователя по user.id и заменяет все поля на указанные в user;

Класс User является контейнером полей профиля пользователя.

Он содержит следующий поля:

· string name - имя пользователя;

· string surname - фамилия пользователя;

· string patronymic - отчество пользователя;

· string login - логин пользователя;

· string email - email пользователя;

· string password - пароль пользователя;

· string phone - контактный телефон пользователя;

· string regDate - дата регистрации пользователя;

· string lastActivityDate - дата последней активности пользователя;

· bool onlineFlag - онлайн/офлайн статус пользователя;

· int roleCode - код роли пользователя в системе;

· int branchCode - код филиала пользователя;

· int partCode - код подразделения пользователя;

· int userPositionCode - код должности пользователя;

Класс User содержит метод void printUser(), предназначенный для вывода на экран полей текущего объекта пользователя.

Создание пользователя.

Для создания пользователя в методе Menu::mainMenu() создаётся новый объект типа User, в поля которого передаются значения, введённые пользователем посредством оператора cin. После чего указатель на заполненный объект передаётся в метод UserContainer::addUser(*user).

Поиск и удаление профиля пользователя.

Для удаления пользователя необходимо:

1) Выбрать пункт 2 основного меню программы;

2) Выбрать пункт 1 и ввести фамилию пользователя;

3) Выбрать пункт меню 2.

На первом шаге проверяется нажатая клавиша, если она соответствует пункту меню, отвечающему за поиск пользователя, происходит отчистка экрана и появляется новое меню, предлагающее ввести фамилию, либо вернуться в главное меню.

На втором шаге анализируется нажатая клавиша, если она соответствует пункту, отвечающему за ввод фамилии, управления переключается на оператор cin, ожидающий от пользователя ввода данных. После ввода фамилии вызывается метод UserContainer::findUserBySurname(surname), который принимает введенные пользователем данные и, в случае успешного поиска, возвращает объект типа User и выводит на экран его поля. В противном случае выводится сообщение, что пользователь не найден.

На третьем шаге анализируется нажатая клавиша, если она соответствует пункту, отвечающему за удаление пользователя, вызывается метод UserContainer::deleteUser(user), которому в качестве аргумента передается объект пользователя, найденный на предыдущем этапе. В реализации метода deleteUser(user), в цикле сравниваются идентификаторы всех имеющихся пользователей с идентификатором переданного объекта и, в случае совпадения, вызывается стандартный метод удаления элемента из деки (userList.erase(userList.begin() + i).

Наши рекомендации