Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ванеев О.Н. МУ к ЛР1 по ТИПИС.doc
Скачиваний:
1
Добавлен:
13.08.2019
Размер:
96.77 Кб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

"Кузбасский государственный технический университет"

Кафедра информационных и автоматизированных

производственных систем

МОДЕЛИРОВАНИЕ СИСТЕМ НА ОСНОВЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА СРЕДСТВАМИ УНИВЕРСАЛЬНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Методические указания по выполнению лабораторной работы по курсу "Теория информационных процессов и систем" для студентов специальности 230201 дневной формы обучения.

Составитель О. Н. Ванеев

Утверждено на заседании кафедры

Протокол № Х от ХХ.ХХ.2008

Рекомендовано к печати

учебно-методической комиссией

специальности 230201

Протокол № ХХХ от 05.10.2010

Электронная копия находится

в библиотеке главного корпуса

ГУ КузГТУ

Кемерово 2010

1 Цель работы

Цель работы – изучение основных принципов моделирования систем средствами языков программирования на основе объектно-ориентированного подхода.

В связи с этим, содержанием работы являются:

1) изучение особенностей описания типа данных – класс при реализации объекта модели;

2) изучение основных элементов классов, необходимых для реализации модели;

3) изучение принципов построения программной реализации модели в среде программирования.

2 Основные Теоретические свеДения

2.1 Классы и элементы класса

Среда Microsoft Visual Studio, как и другие аналогичные визуальные среды разработки приложений дает готовый набор базовых объектов-компонент, позволяющих легко создавать объекты интерфейса с пользователем. Их также можно использовать для создания объектов модели как готовые блоки.

При программyой реализации модели необходимо использовать тип данных класс Class. Класс позволяет отображать особенности объектов, то есть:

1) наличие атрибутов, с помощью полей (переменных класса);

2) действий выполняемых объектом в различных состояниях с помощью методов класса.

Общий формат описания класса выглядит следующим образом:

УровеньДоступаК_классу class ИмяKласса: БазовыйКласс

{ УровеньДоступа_к_элементу1 ЭлементКласса1

УровеньДоступа_к_элементу1 ЭлементКласса1

}

Где ИмяKласса – это имя определяемого класса

БазовыйКласс – имя класса, на основе которого создается новый класс.

Все элементы базового класса наследуются создаваемым классом. Для исходного объекта можно использовать базовый класс Object, при этом его можно не указывать вместе со скобками после слова class.

УровеньДоступа - это ключевые слова Private, Public, Protected, Published, отображающие один из возможных уровней доступа к элементам класса.

Private – элементы помещённые в раздел Private видит только сам объект.

Publiс – элемент этого раздела доступен для внешних объектов.

ЭлементыКласса – это элементы, включаемые в класс.

В качестве элементов класса могут использоваться поля, методы, свойства, события.

Поля – переменные различного типа, которые можно рассматривать как атрибуты объекта модели;

Методы – процедуры или функции, предназначенные для обработки данных принадлежащих классу;

Свойства – поля связанные с методами, обрабатывающими данные при обращению к ним;

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

2.2 Методы класса

Методы, это процедуры и функции, включаемые в класс. При разработке класса, соответствующего объекту модели в него обычно включаются следующие методы:

1) методы, соответствующие действиям, выполняемым в состояниях объекта (в разделе public);

2) методы, соответствующие событиям объекта, т.е. событиям которые действуют на объект (в разделе private);

3) методы-обработчики событий класса;

4) метод-конструктор объектов класса (имеет то же имя, что и класс);

5) метод-деструктор объектов класса.

Методы конструкторы и деструкторы должны быть объявлены с уровнем доступа public, чтобы обеспечить возможность их использования для внешних объектов.

Особое значение имеет метод конструктор, с помощью которого создаются экземпляры классов. Конструктор класса должен выполнять следующие действия:

1) создать объекты, включенные в создаваемый класс, например, MyLabel=new Label();

2) Определить начальные значения свойств объектов включённых в создаваемый экземпляр класса;

Для отображаемых объектов, прежде всего, необходимо определить свойство Parent. Это указатель на объект, в котором будет отображаться создаваемый объект.

Gorizontal.Parent = Sender;

Объекты могут отображаться или в форме (Form1) или в других объектах класса Control включённых в форму.

Для меток и других отображаемых объектов основными свойствами будут являться свойства положения, размеров, цвета и т.д. (например, Vertikal.Top=20)

3) Если объекты, включенные в создаваемый объект имеют предопределённые события, которые предполагается использовать, то с данными событиями необходимо связать методы-обработчики.

При создании методов-обработчиков для предопределенных событий объектов-компанент, включенных в класс, необходимо чтобы параметры данных методов совпадали с параметрами событий. Так для событий Click и DblClick объектов- наследников класса Control (Botton, Label и др.) методы обработчики должны иметь параметры object sender, EventArgs e. Аналогично для события таймера OnTimer.

Таким образом, для создания программной реализации модели объекта необходимо выполнить следующие этапы:

  1. Описать класс, соответствующий объекту

  2. Описать методы, объявленные в классе.

  3. Объявить переменную, соответствующую экземпляру объекта.

  4. Создать экземпляр объекта в одном из методов обработчиков событий объектов главной формы.

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

Например, пусть требуется отобразить объект в виде, показанном на рис. 2.1.

При щелчке кнопкой мыши по данному объекту он должен перемещаться на 5 пикселей вверх.

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

По заданию, объект должен перемещаться при щелчке кнопки мыши, для реализации данного действия можно использовать стандартное событие объектов класса label – Click (object sender, EventArgs e). Для данного события необходимо объявить метод-обработчик с параметрами object sender, EventArgs e, например Move (object sender, EventArgs e).

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

class MyLabel

{

private System.Windows.Forms.Label m;

//конструктор класса

public MyLabel(Control Sender)

{

m=new Label();

m.Parent = Sender;

m.Text = "Gorizontal";

m.Click += new System.EventHandler(this.move);

}

// метод перемещения объекта

public void move (object sender, EventArgs e)

{

m.Left +=2 ;

}

}

Mетод конструктор create, объявленной в классе, включает в данном случае следующие действия следующие действия:

1) создание метки m, включенной в класс MyLabel;

2) задание начальных значений свойств метки m;

3) связывание метода обработчика Move с событием OnClick метки m.

Создание экземпляра класса реализуем в обработчике события кнопки Button1 помещенной на главную форму проекта

MyLabels T = new MyLabels(this);