Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев_С++_CLI_C#_Java_J#.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.17 Mб
Скачать

Int y; // Координата y пути грузовика

Random rand; // Ссылка на случайное число

ArrayList aL;

bool leftRight; // Признак направления перемещения грузовиков

// Конструктор

LorryAndWarhouses ( )

{

thls.Text= "Test";

this,CllentSize= new Size (350, 130);

aL= new ArrayList ();

rand= new Random ();

leftRight= true;//true;

// Создать кнопки

butRun= new Button ( ); // Создать кнопку пуска

butRun.Location= new Polnt (240, 5);

butRun.Slze= new Size (45, 20);

butRun.Text= "Run";

butRun.BackColor= Color.LightGray;

butRun.Click += new EventHandler (But_Run);

this.Controls.Add (butRun);

//

butStop= new Button ( ); || Создать кнопку останова

butStop.Locatlon= new Polnt (290,5);

butStop.Slze= new Size (45, 20);

butStop.Text= "Stop";

butStop.BackColor= Color.LightGray;

butStop,Click += new EventHandler (But_Stop);

this.Controls.Add (butStop);

//

butAdd= new Button (); // Создать кнопку добавления

butAdd.Location= new Point (240,30);

butAdd.Slze= new Size (65, 20);

butAdd.Text= "Добавить";

butAdd.BackCoior= Color.LightGray;

butAdd.Click += new EventHandler (But_Add);

this.Controls.Add (butAdd);

butDel= new Button ( ); // Создать кнопку удаления

butDel.Location= new Point (240,60);

butDel.Size= new Size (65, 20);

butDel.Text= "Удалить";

butD e I. BackColo r= Со lo r. Lig htG ray;

butDel.Click += new EventHandler (But_Del);

this.Controls.Add (butDel);

listBox= new ListBox ( ); // Создать элемент списка

listBox.Location= new Point (240, 90);

listBox.Size= new System.Drawing.Size (60, 20);

this.Controls.Add (listBox);

// Создать склады

// Создать объект левого склада

leftWH= new Warehouse (true, true);

leftWH.Locatlon= new Polnt (10, 10);

leftWH.SIze= new Size (30, 100);

leftWH.BackColor= Color.White;

leftWH.evFromWarehouse+= new DelEvFromWarehouse

(EvFromWarehouseHandler);

this.Controls.Add (leftWH);

leftWH.Show ( );

// Создать объект правого склада

rightWH= new Warehouse (false, false);

r|ghtWH.Locat!on= new Po!nt (200, 10);

rightWH,Size= new Slze (30, 100);

rightWH, BackColor= Color.White;

this.Controls.Add (rlghtWH);

rightWH.evFromWarehouse+= new DelEvFromWarehouse

(EvFromWarehouseHandler);

rightWH.Show ( );

// Создать область контроля

reglon= new ContrlRegion ();

reglon.Location= new Polnt (100, 0);

region.Slze= new Slze (40, CllentSlze.Height);

reglon.BackColor= Color.LlghtSkyB!ue;

this.Controls.Add (region);

reglon.Show ( );

// Создать поток перерисовки и запустить его

llfe= true;

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

thread.Start();

>

// Обработать нажатие кнопки пуска

private void But_Run (object о, EventArgs e)

{

IEnumerator inum= aL.GetEnumerator ();

while (lnum.MoveNext ( ))

{

Lorry lorry= (Lorry) inum.Current;

lorry.Run ();

>

>

// Обработать нажатие кнопки останова

private void But_Stop (object о, EventArgs e )

<

IEnumerator inum= aL.GetEnumerator ();

while (inum.MoveNext ( ))

{

Lorry lorry= (Lorry) inum.Current;

Iorry.Stop ();

// Обработать нажатие кнопки добавления грузовика

private void But_Add (object о, EventArgs e)

{

numLorry++;

Y += 20;

int dX = rand.Next (5, 10);

if (leftRight) dX= dX;

else dX= -dX;

lorry= new Lorry (numLorry, Y, dX, leftWH, riqhtWH,

region);

aL.Add (lorry);

listBox.Items.Add (lorry.Number);

>

// Обработать нажатие кнопки удаления грузовика

private vold But_Del (object о, EventArgs e )

{

if(llstBox.SelectedIndex == -1)

{

MessageBox.Show

("Выберете номер удаляемого грузовика в"

+ "\пэлементе списка перед нажатием кнопки");

>

else

{

int numSel= (lnt) listBox.SelectedItem;

listBox.Items.Remove (numSel);

IEnumerator inum= aL.GetEnumerator ( );

while (inum.MoveNext ( ))

{

Lorry lorry= (Lorry) inum.Current;

if (lorry.Number == numSel)

{