Последовательный двоичный файл (начальный балл 3.5)
Программирование. Курсовая работа. Семестр 3.
Содержание пояснительной записки
Курсовая работа должна быть выполнена с использованием технологии объектно-ориентированного программирования (классы, наследование, виртуальные функции, шаблоны) и реализована в виде набора классов. Программа демонстрирует выполнение всех своих функций в любой последовательности через систему меню. Пояснительная записка должна иметь объем не менее 20 стр. текста (без приложения, шрифт 12), выполнена в соответствии с ГОСТом и содержать следующие разделы.
1. Развернутое описание задания.
2. Структурное описание разработки. Описание используемых структур данных, форматов данных, сопровождаемое необходимыми графическими иллюстрациями (рисунками). Содержательное описание основных алгоритмов, их особенностей (4-5 стр.). Структурное описание разработки должно давать представление о том, какие основные решения приняты при разработке, как работает программа, какие данные являются статическими, какие – динамическими, должны быть упомянуты особенности алгоритмов. Структурное описание – словесное, с привлечением графических иллюстраций (схем, рисунков), фрагментоворигинальных алгоритмов и структур данных.
3. Функциональное описание. Содержательное описание типов данных, структур данных, фрагментов нетривиальных алгоритмов. Для описания использовать смешанное текстово-формальное представление программы с включением этих элементов в связный текст изложения материала.
4. Описание пользовательского интерфейса.
5. Описание работы программы на контрольных примерах (например, на большом текстовом файле), временные характеристики программы на простых типах для одного из методов: сортировка, балансировка, поиск в неупорядоченной последовательности.
6. Выводы. Ограничения (по памяти, по времени), ошибки, особенности проектирования.
7. Список используемой литературы.
8. Приложение: текст программы с комментариями по существу алгоритма и структур данных.
Критерии оценки
1. Для каждой группы заданий установлен средний (начальный) уровень оценки, определяемый сложностью задания.
2. При “идеальном” выполнении задания она может быть повышена, но не более, чем на 0,5 балла (по 5-ти бальной шкале).
3. При низком качестве выполнения работы оценка может быть снижена на 1-2 балла.
4. Пояснительная записка и файл программы сдаются за 3 дня до защиты. Работоспособность программы должна быть продемонстрирована при защите. Защита курсовой работы проходит в форме собеседования с вопросами как по пояснительной записке, так и по тексту программы. При небрежном оформлении пояснительной записки оценка снижается на 1 балл (по 5-ти бальной шкале).
Простые структуры данных в памяти (начальный балл 3,0)
Задан объект со списком полей – запись хранимой таблицы. Структура данных таблица должна быть полностью динамической и также реализована в виде класса. Обязательные операции – добавление, удаление, включение и извлечение по логическому номеру, сортировка, включение с сохранением порядка, загрузка и сохранение объектов в бинарном файле, поиск по различным критериям. Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д.).
Программа должна реализовывать указанные выше действия. Протестировать структуру данных на простом типе данных (например, int, double) и сложном, из выбранного задания. Программа тестирования должна содержать меню, обеспечивающее выбор операций.
Содержание записи (строки) таблицы.
1. Список студентов факультета. Основная таблица: Фамилия, дата рождения, дата поступления, дата отчисления, адрес, группа. Редактирование с выбором по группе и шаблону фамилии.
2. Доска объявлений. Категория объявления: куплю-продам, рубрика: транспорт, недвижимость, материалы и т.д. Текст объявления – строка (абзац) переменной длины, дата подачи, контактный телефон. Поиск по заданной рубрике и по шаблону искомого слова в тексте объявления. Сортировка по дате подачи.
3. Движение поездов. Номер поезда, дни недели отправления, время отправления, время в пути (часов, минут). Станция отравления, назначения, промежуточные станции. Промежуточные станции запоминаются в динамическом массиве номеров станций. Поиск всех поездов, следующих до заданной станции.
4. Учет посещаемости индивидуальных и коллективных занятий. Фамилия, группа, динамический массив дат посещения занятий. Операции добавления даты посещения для выбранного слушателя и для выбранной группы слушателей. Вывод списка студентов, посещавших занятия по заданной дате. Добавление и удаление групп. Сортировка по количеству посещений и по фамилии.
5. Справочник склада. Наименование товара, категория товара, количество, дата поступления, цена и процент торговой надбавки. Сортировка по всем параметрам. Составление фактуры: выбор нескольких товаров, количества (с уменьшением его на складе), подсчет общей суммы и торговой надбавки.
6. База данных междугородных переговоров. Город, код города, тариф, дата, время переговоров, продолжительность в минутах, телефон абонента, дата оплаты. Сортировка по дате переговоров. Вывод списка неоплаченных переговоров и суммы оплаты (дата оплаты пуста).
7. База данных пункта проката. Предмет проката, стоимость проката, дата, время получения и возврата предмета, фамилия. Несданные предметы – пустая дата возврата. Подсчет суммы оплаты за сданный предмет, подсчет дохода пункта за заданный год/месяц.
Вид структуры данных
1. Динамический массив указателей на структуры.
2. Односвязный список структур.
3. Двусвязный циклический список структур.
4. Динамический массив структур с уплотнением при удалении и с расширением при переполнении.
5. Дерево, вершина которого содержит два указателя на поддеревья, счетчик количества вершин и структурированную переменную (начальный балл 4).
Дополнение: добавить в структуру данных вложенный класс, реализующий функции итератора (дополнительный балл 0,5).
Последовательный двоичный файл (начальный балл 3.5)
Двоичный файл содержит записи переменной длины – строки таблицы с заданной структурой столбцов (см. простые структуры данных). Формат записи предполагает ее переменную размерность. Реализовать набор операций над записями без загрузки одновременно всей таблицы в память (поэлементная загрузка СД): добавление строки таблицы, извлечение, удаление, вставка по логическому номеру и редактирование (обновление) строки, вставка с сохранением порядка, сортировка, постраничный просмотр, сжатие файла. При изменении размерности записи она переписывается в конец файла.
Программа должна реализовывать указанные выше действия. Протестировать структуру данных на простом типе данных (например, int, double) и сложном, из выбранного по заданию. Программа тестирования должна содержать меню, обеспечивающее выбор операций.
Вид структуры данных
1. Динамический массив указателей на структуры.
2. Односвязный список структур.
3. Двусвязный циклический список структур.
4. Динамический массив структур с уплотнением при удалении и с расширением при переполнении.
5. Дерево, вершина которого содержит два указателя на поддеревья, счетчик количества вершин и структурированную переменную (начальный балл 4).
Дополнение: добавить в структуру данных вложенный класс, реализующий функции итератора (дополнительный балл 0,5).