Курсовая работа по дисциплине
«Основы конструирования программ»
Исходные данные к курсовой работе
1. Тема курсовой работы выбирается из списка, приведенного в одноименном файле.
2. Язык программирования С++.––
3. Среда разработки Microsoft Visual Studio версии 2010 и выше.
4. Вид приложения – консольное.––
5. Парадигма программирования – процедурная (в качестве альтернативы по согласованию с преподавателем допускается реализация программы в рамках объектно-ориентированной парадигмы программирования).
6. Способ организации данных – структуры (struct) (либо поля соответствующих классов в случае объектно-ориентированного программирования).
7. Способ хранения данных – файлы (в качестве альтернативы по согласованию с преподавателем допускается подключение баз данных).
8. Каждая логически завершенная задача программы должна быть реализована в виде функции (метода в случае объектно-ориентированного программирования).
9. Построение программного кода должно соответствовать правилам, определенным в документе «С++ Code Convention» (см. одноименный файл).
10. Текст пояснительной записки оформляется в соответствии со стандартом предприятия СТП 01–2013 (см. одноименный файл).
Каждая курсовая работа, включая программную часть, должна быть уникальной, т.к. подразумевает индивидуальную работу над своим заданием (об уникальности вашей работы будут свидетельствовать соответствующие тематике имена переменных, констант, функций; комментарии; проработка исключительных ситуаций; добавление «своих» функциональных возможностей и др.).
Для защиты курсовой работы необходимо распечатать пояснительную записку и продемонстрировать работу программу.
Функциональные требования к курсовой работе
Первым этапом работы программы является авторизация – предоставление прав доступа (не путать с регистрацией!). В рамках данного этапа необходимо считать данные из файла с учетными записями пользователей следующего вида:
- login;
- password;
- role (данное поле служит для разделения в правах администраторов и пользователей).
После ввода пользователем своих персональных данных (логина и пароля) и сверки со считанной из файла информацией необходимо предусмотреть возможность входа в качестве администратора (в этом случае, например, role = 1) или в качестве пользователя (в этом случае, например, role = 0).
Если файл с учетными записями пользователей не существует, то необходимо программно создать его и записать учетные данные администратора.
Обратите внимание: регистрация новых пользователей при входе в систему не предусмотрена! Данную задачу выполняет администратор в режиме работы с учетными записями пользователей.
Вторым этапом работы программы является собственно работа с данными, которая становится доступной только после прохождения авторизации. Данные хранятся в отдельном файле и имеют вид, описанный подробно в каждом варианте к курсовой работе.
Для работы с данными должны быть предусмотрены два функциональных модуля: модуль администратора и модуль пользователя.
Модуль администратора включает следующие подмодули (с указанием функциональных возможностей):
1. Управление учетными записями пользователей:
- просмотр всех учетных записей;
- добавление новой учетной записи;
- редактирование учетной записи;
- удаление учетной записи.
2. Работа с файлом данных:
- создание файла;
- открытие существующего файла;
- удаление файла.
3. Работа с данными:
а) режим редактирования:
- просмотр всех данных;
- добавление новой записи;
-удаление записи;
- редактирование записи;
б) режим обработки данных:
- выполнение индивидуального задания;
- поиск данных (как минимум три вида);
- сортировка (как минимум три вида).
Модуль пользователя включает подмодуль работы с данными со следующими функциональными возможностями:
- просмотр всех данных;
- выполнение индивидуального задания;
- поиск данных (как минимум три вида);
- сортировка (как минимум три вида).
Для реализации перечисленных модулей/подмодулей необходимо создавать меню с соответствующими пунктами (примеры приведены на рис. 1-3; данные примеры не являются единственно правильным вариантом).
Рис.1 – Пример авторизации и меню для пользователя
Рис.2 – Пример поиска
Рис.3 – Пример сортировки
Предусмотреть:
- обработку исключительных ситуаций (например, файл с данными не создан, ничего не найдено по результатам поиска, введенные данные не соответствуют формату поля, номер удаляемой записи выходит за пределы массива/вектора, логин новой учетной записи уже существует и т.д.);
- возможность возврата назад (навигация);
- запрос на подтверждение удаления вида «Вы действительно хотите удалить файл (запись)?»;
- вывод сообщения об успешности создания файла/удаления записи/ и т.д.