- •Содержание
- •1 Списковые структуры и динамическая память 10
- •2 Списковые структуры и файлы 79
- •3 Мультисписковые структуры 121
- •4 Указатели на функции 134
- •5 Совместное использование указателей на данные и указателей на функции 141
- •6 Оформление курсового проекта 157
- •Введение
- •1Списковые структуры и динамическая память
- •1.1Представления однонаправленных списков массивами указателей на элементы списка
- •1.1.1Представление однонаправленных списков массивами указателей
- •1.1.2Статические массивы указателей
- •1.1.3Операции со списками в статических массивах указателей
- •1.1.4Статические массивы указателей в динамической памяти
- •1.1.5Операции со списками в статических массивах указателей в динамической памяти
- •1.1.6Динамические массивы указателей
- •1.1.7Динамические массивы типизированных указателей
- •1.1.8Операции со списками в динамических массивах типизированных указателей
- •1.1.9Динамические массивы нетипизированных указателей
- •1.1.10Операции со списками в динамических массивах нетипизированных указателей
- •1.1.11Продолжение. Динамические массивы нетипизированных указателей
- •1.1.12Замечания по оператору &
- •1.1.13Нетипизированые указатели и массивы
- •1.1.14Нетипизированые указатели и память
- •1.1.15Продолжение. Динамические массивы нетипизированных указателей
- •2Списковые структуры и файлы
- •2.1Бестиповые файлы и однонаправленные списки на базе массивов указателей на элементы списка
- •2.1.1Представление однонаправленных списков массивами указателей
- •2.1.2Организация файла с однонаправленным списком на базе массивов указателей на элементы списка
- •2.1.3Статические и динамические массивы указателей
- •2.1.4Организация списка дыр
- •2.1.5Функция инициализации файла со списком
- •2.1.6Функция открытия файла со списком
- •2.1.7Функции корректировки указателя на начало списка, заголовка списка дыр, количества элементов списка и текщего размера массива указателей
- •2.1.8Функция выделения записи для нового элемента списка
- •2.1.9Функция освобождения записи удаляемого элемента списка
- •2.1.10 Функция увеличения размера массива указателей на элементы списка
- •2.1.11 Функция вывода содержимого списка
- •2.1.12 Функция поиска элемента списка
- •2.1.13Функция добавления элемента в неотсортированный список
- •2.1.14Функция добавления элемента в отсортированный список
- •2.1.15Функция удаления элемента из отсортированного списка
- •2.1.16Функция удаления списка
- •2.1.17 Функция удаления списка с усечением файла
- •2.1.18 Пример программы обработки отсортированного списка на базе массивов указателей
- •2.1.19Продолжение. Представление однонаправленных списков массивами указателей
- •2.1.20Функция инициализации файла со списком
- •2.1.21Процедура открытия файла со списком
- •2.1.22Процедура корректировки заголовка списка
- •2.1.23 Процедура увеличения размера массива указателей на элементы списка
- •2.1.24Функция поиска элемента списка или позиции вставки нового элемента методом половинного деления
- •2.1.25Функция вывода списка на экран
- •2.1.26Функция добавления нового элемента в отсортированный список
- •2.1.27Функция удаления элемента из отсортированного списка
- •2.1.28Функция удаления списка с усечением файла
- •3Мультисписковые структуры
- •3.1Назначение мультисписков
- •3.2Мультисписки в динамической памяти
- •3.3Мультисписки в бинарных файлах
- •3.4Сохранение и восстановление мультисписка в динамической памяти
- •4Указатели на функции
- •4.1Понятие указателя на функцию и его объявление
- •4.2Переменная-указатель на функцию как параметр другой функции
- •4.3Условия использования указателей на функции
- •4.4Использование указателей на функцию для вызова функций
- •4.4.1Формат переменных-указателей на функцию и бестиповых указателей
- •4.4.2Преобразование переменной-указателя на функцию к бестиповому указателю на функцию
- •4.4.3Вызов функции через бестиповый указатель на функцию
- •4.4.4Преобразование бестипового указателя к переменной типа указатель на функцию
- •4.5Способы вызова функции через указатель на функцию
- •4.5.1Массивы указателей на функции
- •5Совместное использование указателей на данные и указателей на функции
- •5.1Инвариантные функци
- •5.2Функции сравнения
- •5.3Пример 1
- •5.4Пример 2
- •6Оформление курсового проекта
- •6.1Интерфейс программной системы
- •6.2Взаимодействие с мультисписком
- •6.3Отображение содержимого мультисписка
- •6.4Файл справки
- •6.5Документация по курсовому проекту
- •6.5.1Общие положения
- •6.5.2Курсовой проект/работа
- •6.5.3Пояснительная записка
- •6.5.4Техническое задание
- •6.5.5Реферат
- •6.5.6Содержание
- •6.5.7Введение
- •6.5.8 Постановка задачи
- •6.5.9 Анализ решаемой задачи
- •6.5.10Анализ существующих методов организации динамических структур данных
- •6.5.11 Определение путей и методов решения задачи
- •6.5.12Проектирование программы
- •6.5.13Заключение
- •6.5.14Список использованных источников
- •6.6Приложения
6.5.10Анализ существующих методов организации динамических структур данных
Внимание! Заголовки этого и других разделов надо конкретизировать в зависимости от решаемой задачи. Данный заголовок приведен только в качестве примера.
Приводятся известные сведения по решаемой задаче. Эти сведения автор работы вправе брать из любого доступного ему источника, например:
из учебников и другой учебной и методической литературы;
из книг, журналов, газет, выставочных и рекламных материалов, передач по радио и телевидению;
из мнений экспертов, т.е. людей, имеющих опыт и знания в рассматриваемой задаче. Это могут быть и люди из внешних организаций, и преподаватели института, и товарищи автора по совместной учебе в институте и т.п.;
из личного опыта самого автора работы.
Анализ существующей информации не сводится только к изложению известных решений, но обязательно предполагает выводы о том, чем-то или иное решение полезно для решаемой задачи.
Если требуется, то подобный анализ производится для каждой подзадачи в отдельности, при этом он группируется в подпункты.
6.5.11 Определение путей и методов решения задачи
На основании выводов из анализа существующей информации и собственного понимания задачи автором перечисляются несколько вариантов (направлений) работы по решению поставленной задачи.
Проводится критическое сопоставление вариантов – указываются достоинства и недостатки конкретного варианта решения, и обосновывается выбор конкретного варианта решения задачи.
Если работа представляет собой решение нескольких самостоятельных задач, то анализ и выбор вариантов производится для каждой из них в отдельности.
6.5.12Проектирование программы
Этот раздел фактически являет описанием творческого процесса решения задачи и его содержание требует самого пристального внимания. Именно здесь проявляется истинная ценность выполненной работы. Содержание этого раздела, ясность и логичность его изложения являются ключевыми для понимания и оценки проделанной разработчиком работы.
Данное описание может составлять и один пункт работы, и несколько, в том числе и со своими подпунктами.
Как минимум, в этом разделе приводится следующее:
Описывается методика и последовательность решения задачи. Приводится содержательное описание реализуемых алгоритмов и других технических решений.
Описывается процесс и итоги окончательной декомпозиции задачи по одному - двум и т.д. уровням ( условно уровень 0 - сама задача, уровень 1 - ее подзадачи, уровень 2 - подзадачи подзадач ). Какие попутные противоречия и трудности пришлось преодолевать при решении и каким образом.
В конце описания процесса решения задачи делается ссылка на соответствующие приложения к курсовому проекту/работе, в которых фиксируется достигнутый результат.
Содержание подразделов:
Разработка структуры данных
В начале приводится обоснование выбора и описание абстрактной (логической) структуры данных (без особенностей ее физической реализации), отражающей внешний (пользовательский) взгляд на обрабатываемые данные.
Министерство:
Затем приводится обоснование выбора и описание физической структуры данных - реализация мультисписка в куче (динамической памяти) или в файле.
Физическое представление структуры данных отражает особенности реализации структуры данных в конкретной среде хранения и обработки данных, внутренний (программистский) взгляд на обрабатываемые данные.
Разработка типов данных
Раздел содержит описание типов данных, используемых при реализации физической структуры данных на конкретном языке программирования.
Разработка интерфейсов пользователя
Раздел содержит обоснование и описание структуры интерфейса пользователя. Включает описание состава и содержимого форм ввода/вывода, а также обоснование используемых или самостоятельно разработанных графических компонент.
Алгоритм функционирования системы
Раздел содержит описание алгоритма выполнения всех основных действий программы: добавление, замена, удаление и поиск данных; сохранение-восстановление данных из внешней памяти. В этом разделе приводится Блок-схема программы.
Блок-схема программы оформляется согласно ГОСТ 19.701 – 90 "Схемы алгоритмов, программ, данных и систем".
Состав модулей, библиотек – DLL, и процедур программы
Раздел содержит перечень всех модулей и библиотек, а также описание заголовков всех основных процедур программы, включая библиотеки. Описание заголовка процедуры предполагает описание – назначение, всех формальных параметров процедуры.
