Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

EvSpecial ();





//---------------

}

};

//-------------------------------------

 

class Avtos2 // Класс потоковых объектов

{

 

Public: void HandlerEvSpecial () // Обработчик события ev

{

System::Console::WriteLine (" HandlerEv");

}

 

Avtos () // Конструктор

{

Avto ^a = gcnew Avto(1, 50, 50)

a->evSpecial+= gcnew delEv(this, &Avtos::HandlerEvSpecial);// Добавить

}

};

...

static void main()

{

Avto ^a = gcnew Avto(1, 50, 50);

}

}

 

Пример 5.3.2.3. Реализация второго этапа разработки Avtos–приложения на языке Java.

//C# File Avtos2

import java.util.*;

public class Avto extends Observable implements Runnable // Класс объектов

{

 

 

public Ball (int N, int X. int Y)

{

 

public void report()

{

SetChanged();

NotifyObservers();

}

 

report();

...

}

 

public class Autos implements Observer

{

Avto a = new Avto(1, 50, 50);

A.addObserver(this);

 

 

public void update (Observable r, Object ob) // Обработчик события ev

{

Repaint();

}

...

 

}

 

Этап 3. Разработка прикладного и дочернего окон,

Кнопки добавления шаров.

Наступил этап разработки, когда появится прикладное окно приложения с перемещающимися шарами. А также прикладное окно с кнопкой добавления машин.

Наследовав класс Form или Frame, класс Avtos существенно расширит свою функциональность. Теперь можно создать прикладное окно (основную форму) и дочернее окно (дочернюю форму). Реализация этого этапа представлены в примерах 5.3.3.1 и 5.3.3.2 и 5.3.3.3.

 

Пример 5.3.3.1. Реализация третьего этапа разработки Avtos–приложения на языке С#.

using System;

Using System.Drawing;

Using System.Windows.Forms;

using System.Threading;

using System.Collections;

 

public delegate void delEv();

 

 

public class Avto

{

public int num; //номер объекта

public event delEv evSpecial;

public int x, y;//координаты машины

public double fi = 0.1;

public int dx1, dy1, dx2, dy2;//приращения машин

public int speed;//скорость машины

Thread thread;

public bool dvig = true;

public bool life;//признак жизни потока

public bool run = true;

 

 

public int N { get { return num; } }//номер машины

public int X { get { return x; } set { x = value; } }//координата X

public int Y { get { return y; } set { y = value; } }//координата Y

 

 

public Avto(int N, int X, int Y, int Speed)

{

num = N;

x = X; y = Y;

speed = Speed;

life = true;

//создать и запустить поток

thread = new Thread(new ThreadStart(AvtoFunc));

thread.Start();

 

 

}

 

public void Finish()//завершить поток

{

//Resume();

life = false;

}

 

void AvtoFunc()

{

 

 

while (life)

{

 

if (run)

{

Thread.Sleep(speed);

If (dvig)

{

//уравнение движения по окр-ти

dx1 = (int)(19 * Math.Sin(fi));

dy1 = (int)(19 * Math.Cos(fi));

x += dx1;

y += dy1;

 

 

}

Else

{

dx2 = (int)(28 * Math.Sin(fi));

dy2 = (int)(28 * Math.Cos(fi));

y -= dx2;

x -= dy2;

 

 

}

 

fi += 0.1;

 

}

 

evSpecial();

 

}

}

 

public void Suspend()//приостановить поток

{

if (run)

{

run = false;

 

}

}

 

public void Resume()//возобновить поток

{

if (!run)

{

run = true;

 

}

}

 

}

class Avtos: Form

{

ArrayList al; //ссылка на список машин

private int num = 0;//номер объекта машины

private Form f;// ссылка на дочернее окно управления

private Button add;// ссылки на кнопки

public bool run = true;//признак движения машин

public Avtos()//конструктор

{

al = new ArrayList();

run = true;//машины двигаются

Size = new Size(770, 770);//установить размер прикладного окна

Text = "Шоссе";//установить заголовок прикладного окна

f = new Form();//создать объект дочернего окна

f.Text = "Control";//установить заголовок дочернего окна

f.Size = new Size(300, 150);//установить размеры дочернего окна

f.Show();//показать дочернее окно

add = new Button();//создать кнопку добавления машин

add.Text = "Add";//именовать кнопку

add.Size = new Size(45, 30);//размеры кнопки

add.Location = new Point(5, 50);//поместить кнопку в окне

add.Click += new EventHandler(ADD);//подписать обработчик

f.Controls.Add(add);//поместить объект add в контейнер окна

}

//создать автомобиль







Дата добавления: 2015-06-15; просмотров: 538. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


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


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Условия, необходимые для появления жизни История жизни и история Земли неотделимы друг от друга, так как именно в процессах развития нашей планеты как космического тела закладывались определенные физические и химические условия, необходимые для появления и развития жизни...

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Studopedia.info - Студопедия - 2014-2026 год . (0.01 сек.) русская версия | украинская версия