В данном курсовом проекте содержатся следующие разделы:
Задача
Теоретический материал
Классы
Виртуальные функции
Абстрактные классы
Файловые потоки
Структурное описание разработки
Структура документа:
Иерархия классов
Структура классов
Структура файла
Функциональное описание
Приложение 1 (исходный код)
Задача
С использованием технологий ООП спроектировать набор классов и соответствующую программу для создания и редактирования нот с возможностью сохранения в двоичный файл.
Структурное описание разработки
Структура документа:
Документ хранится в объекте класса CScore и напрямую содержит только метаданные (свойства документа). В CScore находятся динамические массивы указателей для текстовых полей и для тактов. Каждый такт содержит статический массив (количество нот/пауз ограничено размером такта + 1нота/пауза, максимум - 21 нота/пауза) указателей на наследников АБК(CPrima), каждый из которых - или нота или пауза.
Первые четыре текстовых поля создаются автоматически и не удаляются, так как содержат информацию, общую для любого документа - название, автор, инструмент. Первый такт также не удаляется, т.е. нельзя создать пустой документ.
Сохранение/загрузка из файла проходит по-уровнево - при вызове метода для документа, сначала сохраняются все его свойства, потом метод вызывается для текстовых полей и тактов. Каждый такт в свою очередь сохраняет информацию о себе и вызывает метод сохранения для нот и пауз.
Иерархия классов
Структура классов
Пример результата:
Объем пояснительной записки курсового проекта составляет 13 страниц (это без исходных кодов).
Курсовой проект полностью оформлен. Вставлены все необходимые рисунки и схемы.
Формат файла MS Word (DOC), исходные коды (Выполнено в Borland Builder 6), скомпилированная программа (cantabile.exe).