Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PZ_Шкаф.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
380.42 Кб
Скачать

2.4 Проектирование модулей

Была разработана схема взаимодействия модулей, представленная на рисунке 2.4.[4]

Рисунок 2.4 – Схема взаимодействия модулей

2.5 Проектирование классов

На основе спроектированной схемы взаимодействия модулей, была получена диаграмма взаимодействия классов, представленная на рисунке 2.5.[4]

Рисунок 2.5 – Диаграмма взаимодействия классов

Form1 – базовый класс. Отвечает за пользовательский интерфейс

Note – класс ноты. Высчитывает частоту ноты, воспроизводит ноту.

Help – класс, предоставляющий информацию об управляющих кнопках.

About – класс, предоставляющий информацию о программе.

2.6 Диаграмма использования

На основе данной курсовой работы представлена диаграмма использования рисунок 2.6. На ней показаны действия, которые пользователь может проделать с данной программой.[4]

Рисунок 2.6 – Диаграмма использования

3. Реализация

В ходе выполнения курсовой работы было получено творческое задание – реализовать запись мелодии в файл.

Это было реализовано с помощью заполнения хранящегося в памяти потока байтами, соответствующими звуку данной ноты (или звуку тишины, если ни одна нота не проигрывается), и последующего сохранения его в WAV-файл.

3.1 Диаграмма классов

Диаграмма классов реализованной курсовой работы представлена на рисунке 3.1.[4]

Рисунок 3.1 – Диаграмма классов

3.2 Описание методов

3.2.1 Класс Form1

Form1_KeyDown – происходит при нажатии клавиши на клавиатуре. Отвечает за звучание соответствующей клавише ноты.

Form1_KeyUp – происходит при отпускании клавиши.

KeysMouseDown – происходит при нажатии мышью на клавишу пианино. Отвечает за звучание соответствующей клавише ноты.

KeysMouseUp – происходит при отпускании мыши.

OctDowning – понижение октавы.

OctUping – повышение октавы.

OctaveDowning – происходит при нажатии на кнопку понижения октавы.

OctaveUping – происходит при нажатии на кнопку повышения октавы.

Form1 – конструктор (инициализирует переменные).

Help_Click – вызов окна Help.

AboutClick – вызов окна About.

PlaybutClick – происходит при нажатии на кнопку «Проиграть». Вызывает метод, включающий буфер с записанной мелодией.

SaveClick – происходит при нажатии на кнопку «Сохранить». Вызывает метод, сохраняеющий записанную мелодию в WAV-файл.

Timer1_Tick – происходит каждые 100 миллисекунд. Проверяет, воспроизводится нота или нет, и вызывает методы, записывающий в файл звук ноты или звук тишины соответственно.

Writebut_Click – происходит при нажатии на кнопку «Новая запись». Обновляет буфер.

3.2.2 Класс Note

FreqInput – вычисление частоты ноты.

Sound – запуск буфера, проигрывающего ноту с заданной частотой.

Stop – останавливает буфер.

Wr – записывает в WAV-файл звук ноты с заданной частотой.

Wrnull – записывает в WAV-файл звук с частотой, равной нулю (звук тишины).

IsEmpty – проверяет, есть ли в буфере записанные данные (не пустой ли буфер).

Playwr – проигрывает записанную мелодию.

Repeat – проигрывает записанную мелодию (если она уже проигрывалась и после этого не изменялась).

Savefile – сохраняет записанную мелодию в WAV-файл.

Note – конструктор (инициализирует переменные).

GetBytesFromInt – конвертирует переменную типа Int в массив типа Byte.

GetSine – создает массив типа Byte, хранящий звук ноты с заданной частотой.

IncLen – увеличивает длину хранящегося в памяти потока (в который записывается мелодия).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]