Пояснительная записка к проекту.

advertisement
-1-
Администрация Владимирской области
Департамент образования
Государственное автономное образовательное учреждение
среднего профессионального образования Владимирской области
«Гороховецкий государственный промышленно-гуманитарный колледж»
специальность 230105
«Программное обеспечение вычислительной техники
и автоматизированных систем»
КУРСОВОЙ ПРОЕКТ
ПО ДИСЦИПЛИНЕ «ПРОЕКТИРОВАНИЕ ПРОГРАММ»
ТЕМА: Научно-технический прогресс.
Методы его прогнозирования
Выполнил(а):
студент IVкурса
группы
Чистяков Александр Николаевия
Руководитель проекта:
Подгорнов Кирил Валерьевич
Дата проверки:
____ ____________2011г.
Оценка:
______________________
(цифрой и прописью, подпись)
г. Гороховец,
2010г.
-2-
ГОРОХОВЕЦКИЙ КОЛЛЕДЖ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОМУ ПРОЕКТУ
Мр3-плеер
_____________________________________
_______________________________________
(наименование темы курсового проекта)
Выполнил студент
группы _
Чистяков Александр Николаевич
(подпись)
(фамилия, имя, отчество)
Руководитель
проекта__________________________________/ -------- /________
(подпись)
(фамилия, имя, отчество)
Оценка __________________________________________________
г. Гороховец
2011 г.
-3-
Введение.
1 Разработка эскизного и технического проектов программы (ГОСТ 19.404–
79).
1.1 Здание……………………………………………………………...…….……….5
1.2 Назначение и область применения……………………………..…...…..……5
1.3 Технические характеристики………………………………….…….……….6
2 Разработка рабочего проекта……………………………………………….…7
2.1 Разработка программы……………………………………………………….7
2.2 Составление проекта и спецификация……………………………………..8
2.3 Алгоритмизация и блок схема……………………………………..………8,9
2.4 Ход программирования………………………………………………..……..11
2.5 Текст программы………………………………………………….…………13
2.6 Описание программы……………………………………………….…….….18
3 Внедрение………………………………………………………………………..19
Заключение…………………………………………………………………….….20
Список используемой литературы………………………………….………….21
-4-
Введение
Итак, данная программа (МрЗ - плеер) представляет собой программу, которая
обеспечивает выбор прослушиваемого файла, регулировку громкости звука,
перемотку файла.
Мр3 плеер
Программа позволяет с удобством воспроизводить аудио файлы.
Программа включает в себя такие пункты как:
-выбор прослушиваемого файла
-регулировки громкости звука
-перемотку файла
Выбор прослушиваемого файла
В этом пункте будет необходимо выбрать файл,
который буде воспроизводиться.
Регулировки громкости звука
В полосе громкости выбрать позицию указателя для увеличения или уменьшения громкости звука.
Перемотка файла
В этом под меню располагаются три кнопки, перемотки предыдущего файла
проигрывания трека и воспроизведение следующего трека.
Заключение
Программа представляет собой МрЗ - плеер, который обеспечивает выбор прослушиваемого файла, регулировку громкости звука, и перемотку файла.
-5-
1. Разработка эскизного и технического проектов
программы (ГОСТ 19.404–79).
1.1. Техническое задание:
1.Введение
Настоящие техническое задание распространено на разработку программы
база данных. Программа предназначена для пользователей, которые часто
используют иллюстрации для своих нужд.
2.Основание разработки
2.1. Курсовая работа предусмотрена тематическим планом изучения дисциплины “Программирование на языке высокого уровня”.
2.2.Наименование работы: «Мр3-плеер»
2.3.Исполнитель: студент 4 курса СГА Чистяков Александр Николаевич
Соисполнителей нет
1.2.Назначение:
Программа может без ограничений использоваться как на домашних компьютерах, так и на компьютерах, используемых в коммерческих организациях.
Только после выше перечисленных пунктов необходимо нажать кнопку воспроизведения { > } поле чего вы получите результат, то есть воспроизведение
аудио файла.
1.3 Технические характеристики.
Программа представляет собой программу,
-6-
проигрывания аудио файлов, с целью выбора прослушиваемого файла,
регулировки громкости звука, перемотку файла.
Для реализации автоматизированной системы будет использоваться среда программирования С++Builder. C++ Builder — это среда быстрой разработки, в которой в качестве языка
программирования используется язык C++ Builder (C++ Builder Language).
Не вдаваясь в подробности, можно сказать, что язык C++ Builder — это
расширенный C++. Например, в C++ Builder есть строковый (AnsiString) и
логический (bool) типы, которых нет в классическом C++.
Borland C++ Builder может работать в среде операционных систем от Windows
98 до Windows XP. Особых требований, по современным меркам,
к ресурсам компьютера пакет не предъявляет: процессор должен быть типа
Pentium или Celeron (рекомендуется Pentium II 400 МГц); объем оперативной
памяти должен составлять не менее 128 Мбайт (рекомендуется 256 Мбайт) и
свободное дисковое пространство должно быть достаточным (для полной
установки версии Enterprise необходимо приблизительно 750 Мбайт).
Для реализации программного продукта «Мр3-плеер» будет использоваться
среда программирования С++. Выбор среды программирования.
На сегодняшний день языки программирования можно выделить в следующие
группы:
 универсальные языки высокого уровня.
 специализированные языки разработчика ПО.
 специализированные языки пользователей.
 языки низкого уровня.
-7-
2. Разработка
рабочего проекта.
2.1 Разработка программы.
Задача, которую предстоит мне решить на ЭВМ, выдали мне в виде
специального задания на разработку программы. Задание содержит формулировку задачи, необходимые характеристики разрабатываемой программы,
требования к взаимодействию с ней. Такое задания для крупных задач может
предшествовать большая работа научно-исследовательского характера.
Задание на разработку программы по форме и характеру должно быть
аналогично техническому заданию (ТЗ) на разработку какого-либо технического продукта. Наличие четкой письменной формулировки будет препятствовать подмене или отходу в процессе разработки программы от сформулированных в ТЗ требований в угоду каким-то другим побочным целям.
Кроме того, письменно сформулированное задание делает возможным обсуждение, оценку или согласованную с заказчиками (пользователями) корректировку отдельных требований ТЗ в ходе разработки программы. ТЗ препятствует проникновению в программу таких ошибок и противоречий, которые могут быть обнаружены только после разработки большей части программы или уже на стадии анализа полученных результатов счета. Чем более
формализованным по характеру будет техническое задание, тем больше шансов, что разрабатываемая программа будет решать именно ту задачу, которую имел ввиду заказчик.
-8-
2.2 Составление проекта
На основании анализа технического задания программист выбирает
основной метод решения задачи, составляет общий проект программы. Выбранный подход к решению задачи должен обеспечивать правильные результаты для условий функционирования программы, которые определены ТЗ,
гарантировать требуемую скорость работы, предусматривать удобство использования программы и т. п.
В проекте, помимо формулировки выбранного общего метода решения
задачи, характеризуются основные части проектируемой программы, их
функции, взаимосвязь и последовательность выполнения, а также точно
определяются входные данные и выдаваемые результаты, как всей программы, так и основных ее частей. Поскольку каждая разрабатываемая программа, как правило, используется в дальнейшем не только ее автором, но и другими программистами. Составляется и проект инструкции для пользователей,
в которой фиксируется (и, таким образом, может быть заранее оценен и исправлен) предполагаемый режим общения пользователя (и оператора) с программой.
2.3 Алгоритмизация и блок схема.
На этот этап иногда смотрят как на вспомогательный, подготовительный к выполнению следующего этапа считающегося основным, на котором
производится написание программы на выбранном языке программирования.
Введение такого "промежуточного" этапа преследует цель облегчить выполнение этапа 3 и тем самым предотвратить возникновение многих ошибок при
его осуществлении для сложных задач. Формулировка алгоритма закрепляет
последовательность основных шагов выполнения программы, четко фиксирует функциональное содержание ее частей, позволяет уделить необходимое
-9-
внимание простоте логической структуры разрабатываемой программы. Этап
алгоритмизации является совершенно необходимым также, в случае, если
язык, на котором предстоит программировать, не вполне освоен программистом-разработчиком и предвидятся трудности при его использовании на следующем этапе .
При разработке алгоритма необходимо учитывать ресурсы используемой ЭВМ (ее скорость, память) и возможности применяемой для решения задачи операционной системы. Алгоритмы для несложных задач, требования
которых к ресурсам невелики, являются обычно машинно-независимыми.
В ходе разработки общего алгоритма используется некоторый специальный язык, который по своему характеру является промежуточным, переходным между неформальным, словесным способом изложения метода решения задачи на этапе 1 и формальным алгоритмическим языком для программирования на этапе 3. Промежуточный язык должен сочетать в себе, с
одной стороны, наглядность для отображения содержания и смысла, выполняемых в алгоритме действий (что делается) и, с другой стороны, формализм
для указания конкретных операций и последовательности их выполнения
(как делается).
В качестве такого промежуточного языка обычно используют блоксхемы, которые позволяют наиболее наглядно представить логическую
структуру разрабатываемой программы, взаимосвязь отдельных частей программы, условия или кратность выполнения таких частей. Для отображения
вычислительной (арифметической) стороны программы используются обычные математические средства или элементы алгоритмических языков, а в самых общих блок-схемах - просто словесная формулировка; иногда используются и все эти способы вместе.
После последнего шага детализации алгоритма (а иногда и после отдельных крупных шагов) проводится проверка полученного алгоритма для
- 10 -
выявления допущенных ошибок. Методы контроля алгоритма аналогичны
некоторым методам контроля программы. В ходе разработки алгоритма, возможно, придется уточнять или изменять решения, принятые на этапе 2, и в
этом случае такие изменения обязательно вносятся в проект, который всегда
должен соответствовать разрабатываемому алгоритму.
Блок-схема
Функция обработки событий.
начало
Нет
Загрузить проигрыватель
Загрузить проигрыватель
Да
Воспроизведение
Конец
Да
Найти и
выбрать
трек
Нет
Найти и
выбрать
трек
- 11 -
2.4 Программирование
В случае, когда на предыдущем этапе был получен детально разработанный алгоритм, составление программы на выбранном для программирования языке сводится к переводу этого алгоритма на язык программирования.
Основные трудности и, следовательно, причины ошибок на этом этапе
заключаются, во-первых, в необходимости знания всех требований и ограничений выбранного языка программирования и, во-вторых, в необходимости
постоянного внимания ко многим деталям языка, которые приходится учитывать в ходе написания программы. Если этап 3 был выполнен некачественно и алгоритм представлен недостаточно детально, то его доводку придется выполнять «на ходу», во время программирования. Это затруднит процесс программирования-перевода и поведет к возникновению дополнительных ошибок в программе. Чем более процесс программирования будет походить на перевод, чем более механическим будет такой перевод, тем более
легким будет составление программы и тем меньше возникнет ошибок на
этом этапе, самом щедром на ошибки.
После составления программы проводится ее проверка для обнаружения и исправления ошибок, внесенных на этом этапе. Если при проверке обнаруживаются ошибки, допущенные на предыдущем этапе (3), то соответствующие исправления вносятся и в алгоритм, поскольку к нему еще придется обращаться на следующих этапах, и тексты алгоритма и программы должны соответствовать друг другу.
- 12 -
Кнопка Закрывания программы
Звук
Треклист
Отсчет времени
Трек вперед
трек назад
Открыть песню
воспроизведение
- 13 -
2.5 Текст программы (Приложение).
Текст программы с комментариями.
/*
MP3 плееер с регулятором громкости.
(с) Культин Н.Б., 2003-2006.
*/
#include <vcl.h>
#pragma hdrstop
#include "MainForm.h"
//--------------------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------#include "FileCtrl.hpp" // для доступа к TSearchRec
AnsiString SoundPath; // путь к MP3 файлам
int min,sec; // время воспроизведения (минуты, секунды)
int mode = 0; // 0 - режим "Стоп"
// 1 - режим "Воспроизведение"
/* Процедуре vaweOutSetVolume в качестве параметра
передается двойное слово, старший байт которого
определяет громкость левого канала, младший - правого.
Определив таким образом тип TVolume, имеется возможноcть
независимой регулировки громкости каждого канала.
Максимальной громкости канала соответствует значение 0xFFFF.
*/
union TVolume{
unsigned long Volume;
struct
{
Word Left;
Word Right;
};
} volume;
// начало работы программы
void __fastcall TForm1::FormActivate(TObject *Sender)
{
PlayList("");
// установить регулятор громкости в соответствии
- 14 -
// с текущим уровнем, установленным в системе
waveOutGetVolume(0,&volume.Volume);
TrackBar1->Position = 0xFFFF -volume.Left;
}
// формирует список MP3 файлов, находящихся в указанном каталоге
void __fastcall TForm1::PlayList(AnsiString path)
{
TSearchRec SearchRec; // структура SearchRec содержит информацию
// о файле, удовлетворяющем условию поиска
// сформировать список mp3 файлов
if (FindFirst(path + "*.mp3", faAnyFile, SearchRec) == 0 )
{
// в каталоге есть файл с расширением mp3
// добавим имя этого файла в список
ListBox1->Items->Add(SearchRec.Name);
// есть еще mp3-файлы ?
while (FindNext(SearchRec) == 0)
ListBox1->Items->Add(SearchRec.Name);
}
ListBox1->ItemIndex = 0;
SpeedButton1->Enabled = false;
}
// активизировать воспроизведение MP3 файла, имя которого
// выделено в списке ListBox
void __fastcall TForm1::Play()
{
Timer1->Enabled = false;
Label1->Caption = ListBox1->Items->Strings[ListBox1->ItemIndex];
MediaPlayer1->FileName =
SoundPath + ListBox1->Items->Strings[ListBox1->ItemIndex];
MediaPlayer1->Open();
MediaPlayer1->Play();
min = 0;
sec = 0;
Timer1->Enabled = true;
SpeedButton2->Glyph = SpeedButton6->Glyph;
SpeedButton2->Hint = "Stop";
SpeedButton2->Tag = 1;
}
// остановить воспроизведение
void __fastcall TForm1::Stop()
{
MediaPlayer1->Stop();
Timer1->Enabled = false;
Label2->Caption = "0:00";
SpeedButton2->Tag = 0;
SpeedButton2->Glyph = SpeedButton5->Glyph;
SpeedButton2->Hint = "Play";
}
// Щелчок на названии произведения
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
if ( SpeedButton2-> Tag == 0 )
// вывести в поле метки Label1 имя выбранного файла
- 15 -
Label1->Caption = ListBox1->Items->Strings[ListBox1->ItemIndex];
else
Play(); // активизировать процесс воспроизведения
// управление доступностью кнопок
// "К следующей" и "К предыдущей"
if (ListBox1->ItemIndex == 0) // выбран первый э-т списка
SpeedButton1->Enabled = false;
else {
if (ListBox1->ItemIndex == ListBox1->Items->Count -1)
SpeedButton3->Enabled = false;
else {
if (! SpeedButton1->Enabled)
SpeedButton1->Enabled = true;
if (! SpeedButton3->Enabled)
SpeedButton3->Enabled = true;
}
}
}
// Щелчок на кнопке Play/Stop
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
// свойство Tag хранит информацию о состоянии
// плеера: 0 - стоп; 1 - воспроизведение
if ( SpeedButton2->Tag == 0 )
// начать воспроизведение
Play();
else
// если кнопка Воспроизведение нажата,
// то повторное нажатие останавливает
// воспроизведение
Stop();
}
// щелчок на кнопке Предыдущий трек
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
if ( ListBox1->ItemIndex > 0 )
ListBox1->ItemIndex = ListBox1->ItemIndex - 1;
if ( SpeedButton2->Tag == 1 )
Play();
// управление доступностью кнопок "<<" ">>"
if (ListBox1->ItemIndex == 0)
SpeedButton1->Enabled = false;
if ( (! SpeedButton3->Enabled) && (ListBox1->Items->Count > 1 ))
SpeedButton3->Enabled = true;
}
// щелчок на кнопке Следующий трек
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
if ( ListBox1->ItemIndex < ListBox1->Count )
ListBox1->ItemIndex = ListBox1->ItemIndex + 1;
if ( SpeedButton2->Tag == 1 )
Play();
// управление доступностью кнопок "<<" ">>"
if (ListBox1->ItemIndex == ListBox1->Items->Count-1)
- 16 -
SpeedButton3->Enabled = false;
if ( (! SpeedButton1->Enabled) && (ListBox1->Items->Count > 1 ))
SpeedButton1->Enabled = true;
}
// сигнал от таймера
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
AnsiString st;
// изменить счетчик времени
if ( sec < 59 )
sec++;
else
{
sec =0;
min++;
}
// вывести время воспроизведения
st = IntToStr(min)+":";
if ( sec < 10 )
st = st + "0" + IntToStr(sec);
else st = st + IntToStr(sec);
Label2->Caption = st;
// если воспроизведение текущей завершено
if ( MediaPlayer1->Position == MediaPlayer1->Length)
{
// воспроизведение текущей композиции закончено
Timer1->Enabled = false; // остановить таймер
MediaPlayer1->Stop();
// остановить плеер
if ( ListBox1->ItemIndex < ListBox1->Count -1 )
{
// список не исчерпан
ListBox1->ItemIndex = ListBox1->ItemIndex + 1;
Play();
}
else {
/*
ListBox1->ItemIndex = 0;
Play();
*/
Stop();
}
}
}
// Щелчок на кнопке Eject
// Выбрать папку, в которой находятся MP3 файлы
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{
AnsiString Dir;
if ( SelectDirectory("Выберите папку,"
" в которой находятся mp3-файлы", "", Dir) )
{
Dir = Dir + "\\";
// каталог, в котором находятся MP3 файлы выбран
- 17 -
SoundPath = Dir;
PlayList(SoundPath);
}
}
// нажатие кнопки мыши в поле компонента Image1
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
// У окна программы заголовка нет.
// Обманем Windows. Пусть OC думает, что кнопка
// нажата и удерживается в заголовке окна. В этом случае пользователь
// может перемещать окно обычным образом.
ReleaseCapture();
SendMessage(Form1->Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}
// Выбор в контекстном меню команды Закрыть
void __fastcall TForm1::N1Click(TObject *Sender)
{
MediaPlayer1->Close();
Form1->Close();
}
// изменилось положение регулятора громкости
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
volume.Left = 0xFFFF - TrackBar1->Position;
volume.Right = 0xFFFF - TrackBar1->Position;
waveOutSetVolume(0,volume.Volume);
}
// кнопка закрыть окно программы
void __fastcall TForm1::SpeedButton7Click(TObject *Sender)
{
MediaPlayer1->Close();
Form1->Close();
}
- 18 -
2.6 Описание программы
Пояснительная записка к проекту.
Итак, (Мр3 плеер) представляет собой программу,
проигрывания аудио файлов, с целью выбора прослушиваемого файла,
регулировки громкости звука, перемотку файла.
Мр3 плеер
Программа позволяет с удобством воспроизводить аудио файлы.
Программа включает в себя такие пункты как:
-выбор прослушиваемого файла
-регулировки громкости звука
-перемотку файла
Выбор прослушиваемого файла
В этом пункте будет необходимо выбрать файл,
который буде воспроизводиться.
Регулировки громкости звука
В полосе громкости выбрать позицию указателя для увеличения или уменьшения громкости звука.
Перемотка файла
В этом под меню располагаются три кнопки, перемотки предыдущего файла
проигрывания трека и воспроизведение следующего трека.
- 19 -
3.4.5 Тестирование программы
Перечисляются требования, подлежащие проверке при испытании программы, а также
поря-док и методика их контроля. Приводятся исходные данные для решения контрольного
примера и ожидаемые результаты.
Прилагаются распечатка решения контрольного примера и снимки экрана с
результатами тес-тирования.
3. Внедрение
Программа может без ограничений использоваться как на домашних компьютерах, так и на компьютерах, используемых в коммерческих организациях.
Только после выше перечисленных пунктов необходимо нажать кнопку воспроизведения { > } поле чего вы получите результат, то есть воспроизведение
аудио файла.
- 20 -
Заключение.
В этом курсовом проекте я описал:
1 Разработка эскизного и технического проектов
программы (ГОСТ 19.404–79).
1.1 Задание.
1.2 Назначение и область применения.
1.3 Технические характеристики.
2 Разработка рабочего проекта.
2.1 Разработка программы.
2.2 Составление проекта и спецификация.
2.3 Алгоритмизация и блок схема.
2.4 Ход программирования.
2.5 Текст программы.
2.6 Описание программы.
3 Внедрение.
Заключение.
- 21 -
Список Литературы.
1. Культин Н.Б. Самоучитель C++Builder – BHV-СПб, 2005г.
2. Одинцов И. Мастер. Профессиональное программирование. 2004г.
3. Шилдт Г. Мастер. Теория и практика С++. 2001г.
4. Шлее М. профессиональное программирование. 2005г.
5. Фаронов Система программирования. 2005г.
6. Пирогов В. Мастер программ. Программирование на С++. 2005г.
Download