Автор: Пользователь скрыл имя, 03 Января 2012 в 19:31, курсовая работа
При изучении объектно-ориентированного программирования (ООП) наибольшей проблемой является использование новой терминологии и понимание нового подхода к решению старых задач - новой технологии программирования.
В технологии ООП взаимоотношения данных и алгоритма имеют более регулярный характер: во-первых, класс (базовое понятие этой технологии) объединяет в себе данные (структурированная переменная) и методы (функции). Во-вторых, схема взаимодействия функций и данных принципиально иная. Метод (функция), вызываемый для одного объекта, как правило, не вызывает другую функцию непосредственно. Для начала он должен иметь доступ к другому объекту (создать, получить указатель, использовать внутренний объект в текущем и т.д.), после чего он уже может вызвать для него один из известных методов. Таким образом, структура программы определяется взаимодействием объектов различных классов между собой. Как правило, имеет место иерархия классов, а технология ООП иначе может быть названа как программирование "от класса к классу".
Введение…………………………………………………………………………..4
Объектно-ориентированное программирование.………………………...…..…6
1.1 Предыстория…………………………………………………………..………6
1.2 Основные понятия ООП.………………………………………….…….……8
1.3 Обобщение…………………………………………………………..……….10
Описание среды программирования Borland C++ Builder………..…..………11
2. 1 Описание главного окна Borland C++ Builder…………………….………12
Код программы. Описание интерфейса ……………………….….…...………16
3.1 Описание кода программы……………………………………………….…16
3.2 Описание компонентов……………………………………………...………23
Тестирование программы…………………………………………………….…24
5. Выводы…..……………………………………………………………………….26
6. Использованная литература…………………………………………….………27
Приложение А……………………………………………………………………28
Объектно-ориентированный
подход к программированию подразумевает
выделение общих свойств у различных объектов
и широчайшее применение абстракций всех
уровней.
C++Builder первоначально создавалась только для платформы Microsoft Windows. Поздние версии, содержащие кроссплатформенную компонентную библиотеку Borland, поддерживают и Windows, и Linux.
В 2003 году Borland выпустила C++BuilderX (CBX), написанный при помощи той же инфраструктуры, что и JBuilder, который при этом был мало похож на C++ Builder или Delphi. Этот продукт предназначался для разработки больших программ для крупных предприятий, но коммерческого успеха не достиг. В конце 2004 года Borland объявила, что продолжит развитие классического C++ Builder и объединит его со средой разработки Delphi, прекратив, таким образом, разработку C++ BuilderX.
Спустя примерно год после этого объявления, Borland выпустила Borland Developer Studio 2006, который включал в себя Borland C++Builder 2006, предлагавший улучшенное управление конфигурацией и отладкой. Borland Developer Studio 2006 — единственный полноценный комплект, содержащий Delphi, C++ Builder и C# Builder.
В 2007 CodeGear выпустила C++Builder 2007, в котором реализовала полную поддержку API Microsoft Windows Vista, увеличила полноту соответствия стандарту ANSI C++, увеличила скорость компиляции и сборки до 500 %, включила поддержку MSBuild, архитектур баз данных DBX4 и «VCL для Web», поддерживающий AJAX. Поддержка API Microsoft Windows Vista включила в себя приложения, изначально оформленные в стиле Vista, и естественную поддержку VCL для Aero и Vista Desktop. CodeGear RAD Studio 2007 содержит C++Builder 2007 и Delphi. Также в 2007 CodeGear «воскресила» марку «Turbo» и выпустила две «Turbo» версии C++Builder: Turbo C++ Professional и Turbo C++ Explorer (бесплатный), основанных на Borland C++ Builder 2006.
В конце 2008 года компания CodeGear выпустила новую версию RAD Studio, в которую вошли Delphi 2009 и С++Builder 2009. В 2009 году в составе RAD Studio вышел C++Builder 2010.
Ранее сообщалось, что следующая версия, CodeGear C++ Builder (кодовое имя «Commodore»), будет обладать поддержкой x86-64 и возможностью создавать машинный x86-64 код. Однако в 2010 году в состав RAD Studio XE включена версия C++ Builder XE без этой функциональности.
Главное окно программы (рис 2.1) содержит:
1. Панель меню.
2. Дерево объектов.
3. Окно редактирования исходного кода.
4. Конструктор формы.
5. Панель инструментов.
6. Редактор свойств и событий объектов.
Рисунок
2.1 -
Главное окно программы
Панель меню - содержит такие важные кнопки как: Файл, Редактирование, Поиск, Проект, Запуск, Компонент, База данных, Инструменты, Окно, Справка (рис. 2.2)
Рисунок 2.2 - Панель меню
Дерево объектов предоставляет информацию обо всех используемых объектах в программе и к какому объекту они принадлежат. Возможно добавлять, изменять и удалять объекты (рис. 2.3)
Рисунок 2.3 - Дерево объектов.
Редактор кода Borland C++ Builder представляет собой текстовый редактор, приспособленный к службам языков, таких как Visual Basic, Visual C++, и Visual C#. Текст записывается в буфер и выводится на экран в виде текстового документа. Используя объекты модели автоматизации редактора C++ Builder, можно незаметно управлять текстом, как в буфере, так и в представлении (рис. 2.4)
Рисунок
2.4 -
Редактор кода
Конструктор формы позволяет добавлять в программу другие компоненты, изменять название форм, устанавливать ее размер и многое другое (рис. 2.5)
Рисунок
2.5 -
Конструктор формы
Обычно
панель инструментов располагается в
верхней части любого стандартного приложения
Windows. Панель инструментов предоставляет
прямой доступ к функциям в приложении
по нажатию кнопки. Можно добавлять отдельные
элементы управления MediaPlayer или выбрать
другой элемент управления, например TrackBar,
ListBox и так далее (рис. 2.6)
Рисунок
2.6 -
Панель инструментов
Редактор свойств и событий объектов - с его помощью можно редактировать любой объект или компонент, используемый в программе, обеспечивает настройку шрифта, настройку размера используемого объекта, создание событий при соответственном действии над объектом/компонентом программы (рис. 2.7)
Рисунок
2.7 -
Редактор свойств и событий объекта
Интерфейс программы состоит:
#include <vcl.h>
#include <stdlib.h>
#include <string.h>
#pragma hdrstop
#include "mediapl.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool flag; //воспроизведение/пауза
char path[256], pathtemp[256]; //переменные для хранения пути
bool a; // для вывода о программе
int x; //смена картинок
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
SpeedButton2->Enabled=False;
SpeedButton3->Enabled=False;
SpeedButton4->Enabled=False;
TrackBar1->Enabled=False;
TrackBar2->Max=65350; //звук
TrackBar2->Position=65350; //позиция на предельном значении
GetCurrentDirectory(256,path); //получение текущего каталога
strcat(path,"\\"); // добавление \\
strcpy(pathtemp,path); //копирование во временный путь
ListBox1->Items->Add(strcat(
//для воспроизведения примеров мелодий
strcpy(path,pathtemp); //добавление элементов “примеры мелодий”
ListBox1->Items->Add(strcat(
strcpy(path,pathtemp);
ListBox1->Items->Add(strcat(
}
void __fastcall
TForm1::SpeedButton1Click(
{
OpenDialog1->InitialDir="";
OpenDialog1->Filter=
"Все поддерживаемые файлы|*.avi;*.mp3;"
"mp3|*.mp3|avi|*.avi";
OpenDialog1->Title="Выбор Файла";
if(!OpenDialog1->Execute())
return;
if(MediaPlayer1->FileName == OpenDialog1->FileName){
ShowMessage("Файл уже воспроизводится"); return;}
MediaPlayer1->FileName=
MediaPlayer1->Open();
Panel1->Refresh(); //очистка панели
if(!(MediaPlayer1->FileName=="
randomize(); //перемена картинок
x=random(4)+1;
switch(x)
{
case 1: {Image1->Visible=True; Image2->Visible=False; Image3->Visible=False; Image4->Visible=False; break;}
case 2: {Image1->Visible=False; Image2->Visible=True; Image3->Visible=False; Image4->Visible=False; break;}
case 3: {Image1->Visible=False; Image2->Visible=False; Image3->Visible=True; Image4->Visible=False; break;}
case 4: {Image1->Visible=False; Image2->Visible=False; Image3->Visible=False; Image4->Visible=True; break;}
}
}
TrackBar1->Max=MediaPlayer1->
TrackBar1->Enabled=True;
TrackBar1->Position=0;
Form1->Caption=OpenDialog1->
SpeedButton2->Enabled=False;
SpeedButton3->Enabled=True;
SpeedButton4->Enabled=True;
MediaPlayer1->Display=Panel1;
MediaPlayer1->Play(); //воспроизведение
flag=false;
Timer1->Enabled=True; //таймер
a=true;
}
void __fastcall
TForm1::SpeedButton2Click(
{
//нажатие
на разные кнопки(
MediaPlayer1->Play();
SpeedButton2->Enabled=False;
SpeedButton3->Enabled=True;
SpeedButton4->Enabled=True;
Timer1->Enabled=True;
a=true;
}
void __fastcall
TForm1::SpeedButton3Click(
{
MediaPlayer1->Rewind();
SpeedButton4->Enabled=False;
SpeedButton3->Enabled=False;
SpeedButton2->Enabled=True;
a=false;
}
void __fastcall
TForm1::SpeedButton4Click(
{
MediaPlayer1->Pause();
SpeedButton4->Enabled=False;
SpeedButton2->Enabled=True;
SpeedButton3->Enabled=True;
a=false;
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
MediaPlayer1->Close();
}
void __fastcall
TForm1::TrackBar1Change(
{
//перемотка
if (TrackBar1->Focused() && MediaPlayer1->Mode == mpPlaying)
{
MediaPlayer1->Position = TrackBar1->Position;
MediaPlayer1->Play();
flag = true;
}
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//для непрерывистого воспроизведения
Информация о работе Объектно-ориентированное программирование