Написать программу обработки файла типа запись, обязательно

advertisement
Курсовая работа по дисциплине
«Основы конструирования программ»
Исходные данные к работе
1. Индивидуальное задание выбирается из списка, приведенного в одноименном
файле.
2. Язык программирования С++.––
3. Рекомендуемая среда разработки Microsoft Visual Studio.
4. Вид приложения – консольное.––
5. Данные должны быть организованы в структуре (struct). В качестве
альтернативы допускается реализация программы в рамках объектноориентированного программирования (посредством классов).
6. Данные должны храниться в файлах.
7. Построение программного кода должно соответствовать правилам,
определенным в документе «С++ Code Conventions» (см. одноименный файл).
8. Программа должна быть реализована посредством работы с функциями
(методами – в случае ООП).
9. Текст пояснительной записки оформляется в соответствии со стандартом
предприятия СТП 01–2013 (см. одноименный файл).
Требования к программной части проекта
Программа основана на работе с файлами в консольном режиме.
Первым этапом работы программы является авторизация. Для этого
необходимо создать файл, содержащий сведения об учетных записях пользователей
следующего вида:
 login;
 password;
 role.
Предусмотреть возможность входа в качестве администратора (в этом случае,
например, role = 1) и в качестве пользователя (в этом случае, например, role = 0).
Изначально записать в файл учетную запись администратора.
Вторым этапом работы программы является собственно работа с файлом данных,
которая становится возможной после прохождения авторизации.
Должны быть предусмотрены два функциональных модуля: модуль
администратора и модуль пользователя.
Модуль администратора включает следующие подмодули (с указанием
функциональных возможностей):
1. Управление учетными записями пользователей:
 просмотреть все учетные записи;
 добавить учетную запись;
 отредактировать учетную запись;
 удалить учетную запись.
2. Работа с файлом данных:
 создать файл;
 открыть файл;
 удалить файл.
3. Работа с данными:
а) режим редактирования:
 просмотреть все данные;
 добавить запись;
 удалить запись (для этого необходимо ввести порядковый номер
конкретной записи);
 редактировать запись (для этого необходимо ввести порядковый номер
конкретной записи);
б) режим обработки данных:
 выполнить задачу (задачи), указанную в индивидуальном задании;
 выполнить поиск данных;
 выполнить сортировку по различным полям в алфавитном порядке / в
порядке убывания.
Модуль пользователя включает подмодуль работы с данными со следующими
функциональными возможностями:
 просмотреть все данные;
 выполнить задачу (задачи), указанную в индивидуальном задании;
 выполнить поиск данных;
 выполнить сортировку по различным полям в алфавитном порядке / в порядке
убывания.
Для реализации перечисленных модулей/подмодулей необходимо создавать меню
с соответствующими пунктами (примеры приведены на рис. 1-3; данные примеры не
являются единственно правильным вариантом).
Рис.1 – Пример авторизации и меню для пользователя
Рис.2 – Пример поиска
Рис.3 – Пример сортировки
Предусмотреть:
 обработку исключительных ситуаций (например, файл с данными не создан,
ничего не найдено по результатам поиска, ввод некорректных данных и т.д.);
 возможность возврата назад (навигация);
 запрос на подтверждение удаления вида «Вы действительно хотите удалить
файл (запись)?»;
 вывод сообщения об успешности создания файла/удаления записи/… .
Каждая курсовая работа, включая программную часть, должна быть
уникальной, т.к. подразумевает индивидуальную работу над своим заданием.
Для защиты курсовой работы необходимо распечатать пояснительную записку и
продемонстрировать работу программу.
Структура пояснительной записки
Титульный лист (образец приведен в одноименном файле)
Задание по курсовой работе (заполненное и подписанное студентом и
преподавателем)
Содержание
1. Анализ задачи (здесь приводится полный текст Вашего варианта задания)
1.1 Разработка модульной структуры программы (см. пояснения ниже)
1.2 Выбор способов описания и объединения входных данных (см. пояснения
ниже)
1.3 Разработка перечня пользовательских функций программы (см. пояснения
ниже)
2. Разработка алгоритмов работы пользовательских функций программы (см.
пояснения ниже)
3. Разработка и описание работы программы (см. пояснения ниже)
Приложение (обязательное): листинг кода с комментариями (приводится ВЕСЬ
код с Вашим оригинальным форматированием и комментариями).
Разработка модульной структуры программы подразумевает описание
структуры программы с указанием модулей, подмодулей и их функциональных
возможностей (за основу можно взять информацию раздела «Требования к
программной части проекта» данного документа, конкретизировав ее в соответствии с
тематикой Вашего задания).
Выбор способов описания и объединения:
 в качестве выбора способа описания входных данных: приводится описание
типов struct (1. для учетных записей пользователей, 2. для данных) с указанием
конкретных полей. В случае использования ООП приводится карта классов (названия
предполагаемых классов и содержащихся в них полей).
 в качестве способа объединения входных данных: указывается использование
массивов или векторов, а также их выбранная область видимости (локальные /
глобальные переменные).
Разработка перечня пользовательских функций программы подразумевает
перечисление и краткое описание прототипов функций, необходимых для реализации
программы. В случае использования ООП приводятся методы для классов, описанных
в предыдущем пункте. Код функций (методов) НЕ ПРИВОДИТСЯ, т.к. на этом этапе
он еще не существует.
По сути, результатом первого раздела в будущем будет являться код программы
до главной функции main (здесь расположены пользовательские типы данных –
структуры, глобальные переменные массивов или векторов, прототипы всех
предполагаемых функций).
Разработка алгоритмов работы пользовательских функций программы
включает блок-схемы алгоритмов с описанием их работы для трех пользовательских
функций. Обратите внимание, что так как алгоритмы разрабатываются до
непосредственного кодирования программы, то они не могут содержать просто
копии строчек кода. Алгоритм может содержать словесные инструкции с
упоминанием имен структур, массивов/векторов (описанных в подразделе 1.2).
функций (описанных в подразделе 1.3). Главный критерий хорошего алгоритма:
если Вы можете дать Ваш алгоритм коллеге (одногруппнику) и он по Вашему
алгоритму без дополнительных разъяснений с Вашей стороны напишет код, значит
алгоритм достиг своей цели.
Разработка и описание работы программы подразумевает собственно описание
работы программы со скриншотами консоли.
Общие рекомендации по разработке программы
Старайтесь придерживаться одного стиля.
Главное – корректность, простота и ясность.
Давайте осмысленные имена.
Комментируйте код.
Избегайте дублирования кода. Нужно завести именованную функцию вместо
повтора схожих фрагментов кода.
Избегайте длинных функций и глубокой вложенности: текст функции должен
умещаться на один экран, а вложенность блоков и операторов должна быть не более
трёх.
Не используйте в коде неименованные числовые константы.
Активно используйте const.
Пусть одна функция решает только одну задачу.
Избегайте вложенных последовательных конструкций if там, где их можно
заменить операторами &&, ||.
Download