Поиск по сайту:


Смотри также:

Методические указания к курсовой работе по отраслевому менеджменту - Вопросы к экзамену.

WEB-программирование (вопросы + шпоры + задачи) НГТУ - Вопросы к экзамену.

Вопросы к экзаменам - ЭЛЕКТРОТЕХНИКА - Вопросы к экзамену.

Вопросы к экзамену по курсу "Философия" - Вопросы к экзамену.

Все новинки...

Вопросы к экзамену «Программирование. Курсовой Проект. Семестр 4»

Где сдавалась работаБФ НГТУ
Файл: 4 КБ
Поделиться:

Программирование. Курсовой Проект. Семестр 4.

Содержание пояснительной записки
Курсовая работы должна быть выполнена с использованием технологии объектно-ориентированного программирования (классы, наследование, виртуальные функции, шаблоны) и реализована в виде набора классов. Программа продемонстрирует выполнение всех своих функций в любой последовательности через систему меню. Пояснительная записка должна иметь объем не менее 20 стр. текста (без приложения, шрифт 12), выполнена в соответствии с ГОСТом и содержать следующие разделы.
1. Задание.
2. Структурное описание разработки. Описание используемых структур данных, форматов данных, сопровождаемое необходимыми графическими иллюстрациями (рисунками). Содержательное описание основных алгоритмов, их особенностей (4-5 стр.).
3. Функциональное описание. Содержательное описание типов данных, структур данных, интерфейсов функций, фрагментов нетривиальных алгоритмов. Для описания использовать смешанное текстово-формальное представление программы с включением этих элементов в связный текст изложения материала.
4. Описание работы программы на контрольных примерах (например, на большом текстовом файле), временные характеристики программы. Выводы. Ограничения (по памяти, по времени), ошибки, особенности проектирования.
5. Приложение: текст программы с комментариями по существу алгоритма и структур данных.

Критерии оценки

1. Для каждой группы заданий устанавливается средний (начальный) уровень оценки, определяемый сложностью задания. При "идеальном" выполнении задания она может быть повышена, но не более, чем на балл.
2. Программа должна быть проверена на входных данных, размерность которых ограничена доступным объемом динамической памяти (например, для large-модели при exe-файле, запускаемом под DOS не из-под оболочки - 500 кБ). Проверить это можно на текстовом файле входных данных достаточно большого объема.
3. Программа должна отображать текущее состояние структуры данных, хотя бы основные ее характеристики - количество элементов.
4. В пояснительной записке структурное описание разработки должно давать представление о том, какие основные решения приняты при разработке, как работает программа, какие данные являются статическими, какие - динамическими, должны быть упомянуты особенности алгоритмов. Структурное описание - словесное, с привлечением графических иллюстраций (схем, рисунков), фрагментов оригинальных алгоритмов и структур данных.
5. Пояснительная записка и файл программы сдаются за 1-2 дня до защиты. Защита курсовой работы происходит в форме собеседования с вопросам как по пояснительной записке, так и по тексту программы.
6. При наличии грамматических и синтаксических ошибок в тексте пояснительной записки оценка снижается.

1. Простые структуры данных в памяти (начальный балл 3,0)

Задана объект со списком полей - запись хранимой таблицы. Поля, представляющие собой дату, время, строку, реализуются в виде отдельных классов. Структура данных должна быть полностью динамической и также реализована в виде класса. Обязательные операции - ввод, постраничный просмотр, удаление и редактирование, сортировка по любому полю, сохранение и чтение из текстового файла (потока). Основная таблица может использовать справочные данные, которые выбирает из соответствующих массивов указателей на строки, помещая в основную таблицу номер строки. Справочные таблицы неизменяемого вида задаются в виде статического массива указателей на строковые константы, изменяемые справочные таблицы загружаются из того же файла, что и основная таблица, в динамические массивы указателей и могут дополняться. Поля с повторяющимися значениями должны быть реализованы в виде шаблонов классов динамических массивов или списков.
Содержание записи (строки) основной таблицы.
1. Список студентов факультета. Основная таблица: Фамилия, дата рождения, дата поступления, дата отчисления, адрес, группа. Неизменяемый справочник групп. Вывод по выбранной группе. Сортировка по фамилии. Редактирование с выбором по группе и шаблону фамилии.
2. Доска объявлений. Категория объявления: куплю-продам, рубрика: транспорт, недвижимость, спорт, хобби, материалы и т.д - справочник. Текст объявления - строка (абзац) неограниченной длины, дата подачи, контактный телефон. Подача объявления, поиск по заданной рубрике и по шаблону искомого слова в тексте объявления. Сортировка по дате подачи .
3. Движение поездов. Номер поезда, дни недели отправления, время отправления, время в пути (часов, минут). Станция отравления, назначения, промежуточные станции. Все станции вводятся из постоянного справочника. Промежуточные станции запоминаются в динамическом массиве номеров станций. Поиск всех поездов, следующих до заданной станции.
4. Учет посещаемости индивидуальных и коллективных занятий. Фамилия, группа, динамический массив дат посещения занятий. Изменяемый справочник групп. Операции добавления даты посещения для выбранного слушателя и для выбранной группы слушателей. Вывод список посещавших по заданной дате. Добавление и удаление групп. Сортировка по количеству посещений и по фамилии.
5. Справочник склада. Товар, Изменяемый (постоянный) справочник категорий товара. Количество, дата поступления, цена и процент торговой надбавки. Сортировка по всем параметрам. Составление фактуры: выбор нескольких товара, количества (с уменьшением его на складе), подсчет общей суммы и торговой надбавки.
6. База данных междугородных переговоров. Постоянный справочник городов. Таблицы-справочники: город(индекс)-код, код-зона, зона-тариф. Дата, время переговора, продолжительность в минутах, телефон абонента, код города, дата оплаты. Сортировка по дате переговоров. Вывод списка неоплаченных переговоров и суммы оплаты (дата оплаты пуста). "Оплата" переговоров абонентом.
7. База данных пункта проката. Постоянный справочник предметов проката. Таблица стоимостей проката предметов. Дата, время получения и возврата предмета, фамилия. Несданные предметы - пустая дата возврата. Подсчет суммы оплаты за сданный предмет, подсчет дохода пункта за заданный год/месяц.
Вид структуры данных основной таблицы
" Динамический массив указателей на структуры.
" Односвязный список структур..
" Двусвязный циклический список структур..
" Динамический массив структур с уплотнением при удалении и с расширением при переполнении.
" Дерево, вершина которого содержит два указателя на поддеревья, счетчик количества вершин и структурированную переменную (начальный балл 4).

2. Последовательный двоичный файл (начальный балл 3.5)

Двоичный файл содержит записи переменной длины - строки таблицы с заданной структурой столбцов (см. простые стуктуры данных). Формат записи предполагает ее переменную размерность. Реализовать набор операций над записями без загрузки одновременно всей таблицы в память (поэлементная загрузка СД): добавление строки таблицы, извлечение, удаление, вставка по логическому номеру и редактирование (обновление) строки, вставка с сохранением порядка, сортировка (возможно, через внешний текстовый файл), экспорт строк из текстового файла, постраничный просмотр. При открытии файла производится его последовательный просмотр и составляется структура данных, содержащая адреса (указатели) записей в файле. При изменении размерности записи она переписывается в конец файла. При завершении работы программы записи переписываются в выходной двоичный файл в логическом порядке следования в структуре данных. Варианты структуры даннных:
" Динамический массив указателей на записи.
" Двусвязный список.
" Двусвязный циклический список.
" Дерево, вершина которого содержит два указателя на поддеревья, счетчик количества вершин и указатель на запись (начальный балл 4).

3. Форматирование текстового файла (начальный балл 4)

1. Выходной файл представляет собой HTML-документ, с требуемым по заданию табличным представлением данных, либо наличием ссылок на выделяемые фрагменты. Входной файл - обычный текстовый файл. Для сохранения данных об исходном тексте (слова, частоты их появления, номера абзацев) использовать динамические структуры данных (динамические массивы, массивы указателей, списки).
2. Термином называется слово, написанное прописными (большими) буквами. Читается текстовый файл и формируется список терминов с сохранением номера абзаца, в котором он обнаружен. При обнаружении в отформатированном тексте термина, написанного соответствующими строчными (маленькими) буквами, формируется ссылка на абзац, где этот термин встречается в первый раз.
3. Термином называется слово, написанное прописными (большими) буквами. Читается текстовый файл и формируется список терминов с сохранением номера абзаца, в котором он обнаружен. Формируется файл отсортированных в алфавитном порядке терминов со ссылками а определяющие их абзацы.
4. Программа подсчитывает частоты появления слов в тексте, слова считаются одинаковыми при совпадении первых 70% букв (% совпадения можно менять, синтаксис слов не учитывается). Формируется таблица из первых n наиболее часто встречающихся слов, в таблице содержится само слово и ссылки на все абзацы, где оно появляется.
5. Программа подсчитывает частоты появления слов в тексте, слова считаются одинаковыми при совпадении первых 70% букв (% совпадения можно менять, синтаксис слов не учитывается). При форматировании текста и обнаружении слова формируется ссылка на предыдущий абзац, где это слово встречается.
6. Лексический контроль текста. При чтении очередного слова в него "снимаются" окончания, а затем суффиксы. Полученная основа ищется в упорядоченном словаре и при ее отсутствии добавляется в словарь. Сам словарь хранится в виде отдельного текстового файла.

4. Шаблон иерархической структуры данных в памяти (начальный балл 4,0)

Для заданной двухуровневой структуры данных, содержащей указатели на объекты (или сами объекты) - параметры шаблона, разработать полный набор операций (добавление, включение и извлечение по логическому номеру, сортировка, включение с сохранением порядка, загрузка и сохранение строк в текстовом файле, балансировка - выравнивание размерностей структур данных нижнего уровня) (см. bk57.rtf). Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..). Программа должна использовать шаблонный класс с объектами- строками и реализовывать указанные выше действия над текстом любого объема, загружаемого из файла.
1. Шаблон структуры данных - двухуровневый массив указателей на объекты. Массив верхнего уровня - статический, массивы нижнего уровня - динамические, размерность - параметр конструктора, последовательность указателей в каждом массиве ограничена NULL. Если после включения указателя массив заполняется полностью, то создается еще один массив указателей, в который переписывается половина указателей из старого.
2. Шаблон структуры данных - двухуровневый массив указателей на объекты с типом - параметром шаблона. Массив верхнего уровня - статический. Массивы нижнего уровня - динамические, размерность каждого следующего в 2 раза больше размерности предыдущего, последовательность указателей в каждом массиве ограничена NULL.
3. Шаблон структуры данных - односвязный список, содержащий статический массив указателей на объекты. Последовательность указателей в каждом массиве ограничена NULL. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.
4. Шаблон структуры данных - односвязный список, содержащий динамический массив указателей на объекты. Размерность массива указателей в каждом последующем элементе списка в 2 раза больше, чем в предыдущем. Последовательность указателей в каждом массиве ограничена NULL. При переполнении текущего массива указателей последний указатель переносится в следующий элемент списка.
5. Шаблон структуры данных - двусвязный циклический список, содержащий статический массив указателей на объекты. Последовательность указателей в каждом массиве ограничена NULL. При переполнении текущего массива указателей создается новый элемент списка, в который переписывается половина указателей из текущего.
6. Шаблон структуры данных - массив указателей на заголовки списков. Элемент списка содержит указатель на строку. (При включении последним предусмотреть ограничение длины текущего списка и переход к следующему).
7. Шаблон структуры данных - cписок, каждый элемент является заголовком односвязного списка. Элемент списка второго уровня содержит указатель на объект. (Включение элемента последним в список производить с учетом выравнивания длины текущего и следующего списков).
8. Шаблон структуры данных - дерево. Конечная вершина дерева содержит внешний (динамический) массив указателей на объекты (фиксированной размерности) и счетчик объектов, промежуточная вершина содержит счетчик количества хранимых в дереве объектов и два указателя на правое и левое поддерево. Естественная нумерация значений производится путем обхода дерева по принципу "левое поддерево - правое поддерево". Если при включении указателя в найденный массив последний переполняется, он становится промежуточной вершиной, а данные переносятся в две новые концевые вершины.
9. Шаблон структуры данных - дерево. Вершина дерева содержит два указателя на объекты и три указателя на поддеревья. Данные в дереве упорядочены..
10. Шаблон структуры данных - двоичное дерево. Вершина дерева содержит статический массив указателей на объекты (ограниченный NULL-указателем) и два указателя на правое и левое поддерево. Значения в дереве упорядочены. ( массив в каждом элементе упорядочен, дерево в целом также упорядочено). Если при включении указателя в найденный массив последний переполняется, то самый правый указатель переносится в правое поддерево.

5. Класс - структура данных в двоичном файле (начальный балл - 4,5)

Класс двоичного файла, производный от fstream. Двоичный файл содержит заданную структуру данных (см. bk59.rtf). Программа должна представлять собой простой текстовый редактор, использующий структуру данных для промежуточного хранения редактируемого файла. Должны быть реализованы операции создания и заполнения двоичного файла из заданного текстового и сохранения содержимого двоичного файла в текстовом.
1. Класс - двоичный файл, производный от fstream. Файл содержит массив указателей на строки, представленные записями переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Формат файла: в начале - файла, размерность массива указателей, текущее количество указателей, адрес (смещение) массива указателей в файле.
2. Класс - двоичный файл, производный от fstream. Файл содержит дерево, конечная вершина которого содержит строку, представленную записью переменной длины: целый счетчик и последовательность символов строки (без 0-ограничителя). Промежуточная вершина содержит указатели на правое и левое поддерево и число вершин в поддереве. Формат файла: в начале - файла, указатель на корневую вершину.
3. Класс - двоичный файл, производный от fstream. Файл содержит односвязный список строк в формате записей переменной длины со счетчиком. Формат файла: в начале файла - заголовок списка. Элемент списка содержит файловый указатель на следующий и саму строку в виде записи переменной длины.
4. Класс - двоичный файл, производный от fstream. Файл содержит двусвязный циклический список строк в формате записей переменной длины со счетчиком. Формат файла: в начале файла - заголовок списка. Элемент списка содержит файловые указатели на следующий и предыдущий и саму строку в виде записи переменной длины.

6. Шаблон - структура данных в двоичном файле (начальный балл - 4.5)

Класс двоичного файла, производный от fstream. Двоичный файл содержит заданную структуру данных (см. bk59.rtf) с типом хранимых объектов - параметром шаблона. Программа должна выполнять операции создания файла, просмотра, добавления, удаления, обновления и сортировки объектов заданного при генерации типа. Реализовать две версии программы для различных хранимыз объектов (например, текстовых строк и степенных полиномов). Предполагается, что операции сравнения хранимых объектов переопределены стандартным образом (в виде операций <,> и т.д..).Для позиционирования в потоке можно использовать методы seekg(long,mode) и long tellg(), для хранимого объекта переопределен метод fstream << object который записывает объект с текущей позиции в открытый двоичный поток и метод fstream >> object, который читает содержимое объекта с текущей позиции открытого потока.
1. Шаблон - двоичный файл, содержащий двусвязный циклический список объектов. Тип хранимого в файле объекта - параметр шаблона. В начале файла расположен файловый указатель на первый элемент списка. Элемент списка содержит 2 файловых указателя на следующий и предыдущий элементы, за которыми следует объект. Шаблон - двоичный файл, содержащий двусвязный циклический список объектов. . Тип хранимого в файле объекта - параметр шаблона. В начале файла расположен файловый указатель на первый элемент списка. Элемент списка содержит 2 файловых указателя на следующий и предыдущий элементы, за которыми следует объект.
2. Шаблон - двоичный файл, содержащий односвязный список объектов. Тип хранимого в файле объекта - параметр шаблона В начале файла расположен файловый указатель на первый элемент списка. Элемент списка содержит файловый указатель на следующий элемент, за которым следует объект.
3. Шаблон - двоичный файл, содержащий массив указателей на объекты. Тип хранимого в файле объекта - параметр шаблона. В начале файла расположены: размерность массива указателей (int), текущее количество указателей (int) и смещение (адрес) массива указателей. Если происходит заполнение массива указателей, то его размерность увеличивается в 2 раза и он переписывается в конец файла.
4. Шаблон - двоичный файл, содержащий двоичное дерево объектов. Тип хранимого в файле объекта - параметр шаблона. В начале файла расположен указатель на корневую вершину. Вершина содержит два файловых указателя на правое и левое поддерево и сам объект, который непосредственно следует за указателями.
5. Шаблон - двоичный файл, содержащий двоичное дерево объектов. Тип хранимого в файле объекта - параметр шаблона. В начале файла расположен указатель на корневую вершину. Вершина содержит два файловых указателя на правое и левое поддерево, счетчик количества объектов (int) и непосредственно следующий за ним массив объектов. Структура данных упорядочена (дерево и массив объектов). (начальный балл - 5.0).
6. Шаблон - двоичный файл, содержащий двоичное дерево объектов. Тип хранимого в файле объекта - параметр шаблона. В начале файла расположен указатель на корневую вершину. Вершина содержит два файловых указателя на правое и левое поддерево, счетчик количества объектов (int) и статический массив указателей на объекты. Структура данных упорядочена (дерево и массив объектов) (начальный балл - 5.0).

7. Коллекция объектов произвольных типов в памяти (начальный балл - 4)

(Для тех групп, где не было л.р.4-8). Необходимо разработать интерфейс для объединения в структуру денных множества объектов различных классов - абстрактный базовый класс объектов object, для которого предусмотреть виртуальные методы: загрузки объекта из текстовой строки, выгрузки объекта в текстовую строку в динамической памяти, добавления объекта в последовательный двоичный файл, чтения объекта из последовательного двоичного файла, возврата уникального идентификатора класса, возврата указателя на строку с именем класса, сравнения двух объектов, "сложения "(объединения) двух объектов, создание динамической копии объекта. Сделать классы хранимых объектов производными от абстрактного базового класса object.
Коллекция представляет собой структуру данных, хранящую указатели на объекты произвольного типа - объекты базового класса. Программа должна обеспечивать просмотр коллекции, добавление объекта выбранного типа, редактирование и удаление объекта, сложение и сравнение объектов при условии совпадения типов с помещением результата в ту же коллекцию, сохранение и загрузку объектов из текстового (или двоичного) файла. Варианты структуры данных для организации коллекции:
1. динамический массив указателей;
2. односвязный список;
3. двусвязный список;
4. циклический двусвязный список;
5. дерево с двумя потомками, конечная вершина которого содержит указатель на объект. Промежуточная вершина содержит указатели на правое и левое поддерево и число вершин в поддереве

8. Таблица данных произвольных типов в памяти (начальный балл - 5)

Необходимо разработать интерфейс для объединения в структуру денных множества объектов различных классов - абстрактный базовый класс объектов object, для которого предусмотреть виртуальные методы: загрузки объекта из текстовой строки, выгрузки объекта в текстовую строку в динамической памяти, добавления объекта в последовательный двоичный файл, чтения объекта из последовательного двоичного файла, возврата уникального идентификатора класса, возврата указателя на строку с именем класса, сравнения двух объектов, "сложения "(объединения) двух объектов, создание динамической копии объекта. Сделать классы хранимых объектов производными от абстрактного базового класса object. Предусмотреть создание заголовка таблицы со столбцами объектов выбранных типов, добавление, удаление, редактирование строк, сортировку по любому столбцу, сохранение и загрузку таблицы (структуры и содержимого) в текстовом файле.

9. База данных произвольных типов в двоичном файле (начальный балл - 6)

Необходимо разработать интерфейс для объединения в структуру денных множества объектов различных классов - абстрактный базовый класс объектов object, для которого предусмотреть виртуальные методы: загрузки объекта из текстовой строки, выгрузки объекта в текстовую строку в динамической памяти, добавления объекта в последовательный двоичный файл, чтения объекта из последовательного двоичного файла, возврата уникального идентификатора класса, возврата указателя на строку с именем класса, сравнения двух объектов, "сложения "(объединения) двух объектов, создание динамической копии объекта. Сделать классы хранимых объектов производными от абстрактного базового класса object. Предусмотреть создание заголовка таблицы со столбцами объектов выбранных типов, добавление, удаление, редактирование строк, сортировку по любому столбцу. Структура данных в файле: описание заголовка таблицы (массив дескрипторов столбцов), размерность и смещение массива указателей на записи.