Редактирование профиля пользователя.
Для редактирования пользователя необходимо:
1) Выбрать пункт 2 основного меню программы;
2) Выбрать пункт 1 и ввести фамилию пользователя;
3) Выбрать пункт меню 1.
На первом шаге проверяется нажатая клавиша, если она соответствует пункту меню, отвечающему за поиск пользователя, происходит отчистка экрана и появляется новое меню, предлагающее ввести фамилию, либо вернуться в главное меню.
На втором шаге анализируется нажатая клавиша, если она соответствует пункту, отвечающему за ввод фамилии, управления переключается на оператор cin, ожидающий от пользователя ввода данных. После ввода фамилии вызывается метод UserContainer::findUserBySurname(surname), который принимает введенные пользователем данные и, в случае успешного поиска, возвращает объект типа User и выводит на экран его поля. В противном случае выводится сообщение, что пользователь не найден.
На третьем шаге проверяется нажатая клавиша, если она соответствует пункту меню, происходит отчистка экрана и управление передается блоку операторов cin, запрашивающих новые данные пользователя. После чего вызывается метод UserContainer::updateUser(user), в реализации которого в цикле сравниваются идентификаторы всех имеющихся пользователей с идентификатором переданного объекта и, в случае совпадения, найденный объект заменяется переданным.
Вывод списка всех пользователей.
В главном меню анализируется нажатая клавиша, если она соответствует пункту меню, отвечающему за вывод списка пользователей на экран, вызывается метод UserContainer::printAllUsers(). Данный метод не принимает параметры и не возвращает объекты. В цикле перебираются все имеющиеся объекты пользователей и, у каждого из них, вызывается метод User::printUser(), который выводит на экран список полей объекта.
Описание алгоритмов демонстрационной программы.
Консольный графический интерфейс.
Отображение любого интерактивного меню в приложении выполняется следующей последовательностью:
· вывод названия меню и его функционального содержания;
· вывод возможных действий над содержанием или переходов в другие пункты;
· ввод возможного номера действия или перехода пользователем.
· непосредственно выполнение действия или перехода.
Инициализация приложения.
В данной части приложения выполняется локализация консоли для правильного отображения кириллических символов, создание экземпляров классов Menu и UserContainer. В поле container объекта menu записываем указатель на объект UserContainer. Далее основной цикл приложения выполняется методом Menu::mainMenu().
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
2.1 Краткое описание используемой среды разработки
Для написания программы задан язык С++.
Microsoft Visual Studio 2015 – линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных.
Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов цикла разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).