Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1_s2.doc
Скачиваний:
6
Добавлен:
01.09.2019
Размер:
854.53 Кб
Скачать

Лабораторная работа № 1

Разработка приложений с использованием графического интерфейса пользователя в среде С++ Builder

Цель работы: Изучить основные приемы работы с визуальными компонентами среды C++ Builder.

Содержание: разработка приложений с графическим интерфейсом пользователя в среде C++ Builder с помощью визуальных компонентов панели "Стандартная".

Основные понятия объектно-ориентированного программирования

В основе объектно-ориентированного подхода к программированию лежит положение о том, что весь окружающий нас мир состоит из объектов. Дом на улице, дерево, машина, пробегающая собака – всё это может быть определено одним обобщающим понятием – объект. Если проводить дальнейшую аналогию, то можно сказать, что все что нас окружает – это объекты, а реальная жизнь состоит из взаимодействия этих объектов.

Про любой из физических объектов можно сказать, что он:

  • имеет какое-то состояние (или находится в каком-то состоянии). Например, про собаку можно сказать, что она имеет имя, окраску, возраст, голодна она или нет и т.д.

  • совершает или над ним совершаются определенные действия. Та же собака может вилять хвостом, есть, лаять, прыгать и т.д.

Таким образом, любой объект определяется его именем, его состоянием и связанными с ним действиями.

Другим основополагающим понятием объектного подхода является понятие класса. Класс представляет собой описание, схему, модель реально существующего объекта.

Класс – это сложный тип данных, в котором объединены элементы данных (свойства) и методы (действия), обрабатывающие эти данные и выполняющие операции по взаимодействию с окружающей средой.

Поле (или атрибут) класса – это элемент класса, описывающий данные (свойства объекта).

Метод класса – это функция, включенная в описание класса. Метод класса вызывается конкретным экземпляром класса и привязан к описанию и структуре класса.

Во многих средах программирования, в том числе и C++Builder, понятие класса также дополнено понятием события.

Событие класса – это формально определенное внешнее событие, на которое данный класс может реагировать, выполняя определенные действия.

Класс обеспечивает целостность вводимого в программу формализуемого прикладного понятия и не допускает разрыва между статическими и динамическими характеристиками некоторой сущности. На этапе проектирования программы с помощью классов удается формировать достаточно точные модели реальных объектов и строить их с помощью систем визуального моделирования.

Объект программы (или экземпляр класса) – это представитель класса, построенный по хранящемуся в классе описанию.

Объекты (экземпляры классов) хранятся в программе в переменных соответствующих объектных типов. Описание класса в C++ выглядит следующим образом:

class имя-класса {

список-членов-класса

};

Определение класса в программе начинается с ключевого слова class. За ним следует имя класса – допустимый идентификатор языка C++.

Список членов класса – это всё что определяет содержимое класса: поля, методы, события и т.д.

Важнейшей характеристикой класса является возможность создания на его основе новых классов с наследованием всех его свойств и методов и добавлением собственных. Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание.

Наследование – это отношение, связывающее классы, один из которых является базовым и называется родительским, а другой создается на его основе и называется наследником. Наследование заключается в том, что класс-наследник приобретает все свойства и методы родительского класса и добавляет к ним собственные.

В ходе наследования новые классы наследуют поля и методы всех родительских классов, вышестоящих по иерархии наследования. Одни из этих полей и методов могут быть заменены на собственные, другие могут представлять собой точные копии родительских. Например, класс "Кошка" может быть наследником класса "Млекопитающее" и будет содержать как все типичные характеристики млекопитающего, так и собственные характеристики, специфичные для кошек.

Данные и методы объектов должны быть защищены от внешнего вмешательства или неправильного использования. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним.

Инкапсуляция – это механизм разграничения доступа к полям и методам класса.

Некоторые поля и методы внутри класса можно сделать свободно видимыми и доступными для использования в программе. Другие можно скрыть и предоставить возможность обращения к ним только, например, внутри текущего модуля или только в классах-наследниках. Инкапсуляция позволяет скрыть особенности реализации классов и предостеречь пользователей от обращения к внутренним возможностям объектов, напрямую не связанным с их предназначением. Инкапсуляция также обеспечивает защиту определенных элементов классов от изменения.

В классе "Кошка", например, может быть свойство "Сердце", моделирующее внутреннюю работу организма животного. Однако модифицировать его характеристики прямым обращением к этому свойству из внешней программы, очевидно, недопустимо.

Видимость полей и методов класса задается одним из ключевых слов public, private или protected. Следом за ним размещается двоеточие. Когда внутри описания класса встречается одно из этих слов, соответствующие правила видимости распространяются на все последующие поля и методы. Зона влияния заканчивается либо при появлении следующего подобного ключевого слова, либо при окончании описания класса. Если описатель видимости в начале класса отсутствует, считается, что ближайшие элементы класса по умолчанию имеют видимость уровня private.

Члены класса, описанные как private, недоступны для других модулей программы. Это наиболее строгая форма сокрытия элементов класса.

Члены класса, описанные как protected, могут быть доступны как в текущем классе, так и в классах-наследниках.

Члены класса, описанные как public, видимы везде, где доступно описание их класса.

Пример:

class Animal {

int FootNum;

. . .

protected:

char Name[80];

. . .

public:

double Mass;

int GetFootNum() { return FootNum; }

. . .

}

Обращение к полям и методам класса осуществляется по имени имеющегося объекта данного класса, после которого через точку указывается название необходимого поля или метода. Доступ к членам класса можно получить также через указатель на объект. В этом случае после имени указателя ставится последовательность символов "->", после которой указывается требуемое имя поля или метода.

Например:

Animal Cat; /* Создание объекта Cat типа Animal */

. . .

Cat.Mass = 2.5; /* Присваиваем значение свойству Mass

объекта Cat */

int foots = Cat.GetFootNum(); /* Вызываем метод GetFootNum()

объекта Cat */

. . .

Animal *ptr; /* Описание указателя на объект типа Animal */

ptr = &Cat; /* Присваиваем указателю ptr адрес объекта Cat */

int m = ptr->Mass; /* Получаем доступ к полю Mass объекта Cat

через указатель ptr */

foots = ptr->GetFootNum(); /* Вызываем к метод GetFootNum()

объекта Cat через указатель ptr */

. . .

Визуальные компоненты среды С++ Builder

Среда Borland C++ Builder содержит большой набор графических элементов, использование которых сильно упрощает процедуру создания графического интерфейса пользователя. Эти графические элементы представлены в виде классов и называются визуальными компонентами. Они входят в состав специальной библиотеки классов, которая получила название VCL (Visual Component Library – библиотека визуальных компонентов).

Все визуальные компоненты доступны из интегрированной среды C++ Builder. Они собраны в Палитре компонентов, которая располагается справа под главным меню. Компоненты сгруппированы в Палитре компонентов в нескольких закладках:

  • Standard – стандартная;

  • Additional – дополнительная;

  • Win32 – 32-разрядного интерфейса Windows;

  • System – доступа к системным функциям;

  • BDE – доступа к данным с помощью BDE;

  • Dialogs – создания стандартных диалоговых окон и др.

Разработка приложений с графическим интерфейсом пользователя в среде C++ Builder состоит из двух этапов:

  1. Конструирование формы. Форма – это важнейший компонент C++ Builder, на котором основано проектирование и разработка приложений с графическим интерфейсом пользователя.

  2. Разработка текста программы. В среде С++ Builder для разработки приложений используется язык программирования С++.

Формы

Формы являются основой приложений C++ Builder. Главное окно приложения также является формой. Создание пользовательского интерфейса приложения заключается в добавлении визуальных компонентов в окно формы C++ Builder. Окно формы, связанной с главным окном программы, находится в центре экрана и изначально имеет заголовок Form1. В нем выполняется проектирование формы.

Для добавления компонента в форму можно выбрать мышью нужный компонент в палитре и щелкнуть левой клавишей мыши в нужном месте проектируемой формы. Компонент появится на форме, и далее его можно перемещать, менять размеры и другие характеристики.

Каждый компонент C++ Builder имеет три разновидности характеристик: свойства, события и методы.

Если выбрать компонент из палитры и добавить его к форме, инспектор объектов автоматически покажет свойства и события, которые могут быть использованы с этим компонентом. Инспектор объектов представляет собой окно с названием Object Inspector, расположенное в левой части экрана. В верхней части инспектора объектов имеется выпадающий список, позволяющий выбирать нужный объект из имеющихся на форме.

Рис.1. Инспектор объектов

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