SlideShare a Scribd company logo
1 of 10
Курсовая работа по объектно-ориентированному
Этап
программированию
Разработка класса обычного объекта шара

class Ball
{

// Класс обычного объектa
int num;
// Номер обычного объекта
Thread thread; // Ссылка на объект потока
bool run;
// Признак выполнения потока
bool life;
// Признак жизни потока
public Ball (int Num) { . . .} // Конструктор
~Ball ( ) {life= false;}
// Деструктор
public void Start ( ) { . . .}
// Стартовать
public void Suspend ( ) { . . .} // Приостановить
public void Resume ( ) { . . .} // Возобновить
void BallFunc ( ) { . . .}
// Выполнить поток

}

1а
Курсовая работа по объектно-ориентированному
программированию
Этап 1
Разработка класса обычного объекта шара

public void Start ( )
// Стартовать поток
{
if (!run)
// Если поток не выполняется, то
{
run= true;
// пусть выполняется и
life= true;
// живѐт
// Создать объект рабочего потока
thread= new Thread (new ThreadStart (BallFunc));
thread.Start ( ); // Стартовать поток
}
}

б
Курсовая работа по объектно-ориентированному
программированию

Этап 1в

Разработка класса обычного объекта шара
void BallFunc ( ) // Выполнить поток
{
int n= 0;
// Номер цикла потоковой функции
while (life) // Выполнить, пока поток жив
{
// Выдать на консоль номер объекта и цикла
Console.Write ("Объект {0}", num.ToString ( ));
Console.WriteLine (" n= {0}", n.ToString ( ));
n++;
// Увеличить номер цикла
Thread.Sleep (10); // Поспим
}
// Выдать на консоль номер объекта и о завершении потока
Console.Write ("Объект {0}", num.ToString ( ));
Console.WriteLine (" завершился");
}
Курсовая работа по объектно-ориентированному
Этап 1
программированию

г

Разработка класса обычного объекта шара
class BallsCs1
{
static void Main (string[] args)
{
Ball ball1= new Ball (1); // Создать первый обычный объект
Ball ball2= new Ball (2); // Создать второй обычный объект
Console.WriteLine ("Объекты функционируют");
Thread.Sleep (20);
// Объекты функционируют 20 мс
ball1.Suspend ( );
// Приостановить первый обычный объект
ball2.Suspend ( );
// Приостановить второй обычный й объект
Console.WriteLine ("Объекты приостановлены и возобновлены");
ball1.Resume ( );
// Возобновить выполнение первого объекта
ball2.Resume ( );
// Возобновить выполнение второго объекта
Thread.Sleep (20);
// Объекты функционируют 20 мс
ball1.Suspend ( );
// Приостановить первый обычный объект
ball2.Suspend ( );
// Приостановить второй обычный объект
}
}
Курсовая работа по объектно-ориентированному
Этап 1
программированию
Разработка класса обычного объекта шара
/*

Результат:
Объекты функционируют
Объект 1 n= 0
Объект 2 n= 0
Объект 1 n= 1
Объект 2 n= 1
Объекты приостановлены и возобновлены
Объект 1 n= 2
Объект 2 n= 2
Объект 1 n= 3
Объект 2 n= 3
*/

д
Курсовая работа по объектно-ориентированному
Этап 2
программированию
Разработка класса Balls
class Balls

// Класс объектов

{
Ball [] pBall;
public Balls ( )
{
pBall= new Ball [2];
for (int i= 0 ; i < 2; i++) pBall[i]= new Ball (i);
Start ( );
}
public void Start ( )
// Стартовать
{
for (int i=0 ; i < 2; i++) pBall[i]. Start ( );
}
public void Suspend ( ) {…} // Возобновить
public void Resume ( ) {…}

}

// Приостановить

а
Курсовая работа по объектно-ориентированному
Этап 2
программированию

б

Разработка класса Balls
class BallsCs2

{

}

static void Main (string[] args)
{
Balls pBalls= new Balls ( ); // Создать объект класса Balls
Thread.Sleep (20);
// Объект функционирует 20 мс
pBalls.Suspend ( );
// Приостановить функционирование
Console.WriteLine("Объекты приостановлены и возобновлены");
pBalls.Resume ( );
// Возобновить функционирование
Thread.Sleep (20);
// Объект функционирует 20 мс
pBalls.Suspend ( );
// Приостановить функционирование
}
/* Результат:
Объект 1 n= 0
Объект 2 n= 0
. . .
Объекты приостановлены и возобновлены
. . .
Объект 2 n= 3
Курсовая работа по объектно-ориентированному
Этап 3
программированию

а

Разработка события ev
delegate void delEv ( );
// Объявление делегата
class Ball
{
public event delEv ev; // Объявление
...
// события ev
void BallFunc ( ) // Выполнить поток
{
int n= 0;
while (life)
{
n++;
if (ev != null)
// Если событие активизировано, то
{
ev ( );
// свершить событие
}
Thread.Sleep (10);
}
}
}
Курсовая работа по объектно-ориентированному
Этап 3
программированию
Разработка события ev
class Balls // Класс потоковых объектов
{
Ball [] pBall;
public void HandlerEv ( ) // Обработчик события ev
{
Console.WriteLine (" HandlerEv");
}
public Balls ( )
// Конструктор
{
pBall= new Ball [2];
for (int i= 0; i < 2; i++)
{
pBall[i]=new Ball (i);
pBall[i].ev+= new delEv(HandlerEv ); // Добавить
}
Start ( );
}
...
};

в
Курсовая работа по объектно-ориентированному
Этап 4
программированию

а

Разработка прикладного окна
class Balls : Form
// Класс прикладного окна
{
Ball [] pBall; // Ссылка на массив
public Balls ( )
{
pBall= new Ball [2];
// Создать массив обычных объектов
for (int i= 0; i < 2; i++)
{
pBall[i]= new Ball (…);
pBall[i].ev+= new delEv(HandlerEv ); // Подписаться
}
Start ( );
}
...
protected override void OnPaint (PaintEventArgs arg)
{
base.OnBase (arg);
for (int i= 0; i < 2; i++)
arg .Graphics.DrawEllipse (…);}
void HandlerEv ( ) { Invalidate ( );} // Обработать события ev от объектов
}

More Related Content

What's hot

RDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на SwiftRDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на SwiftRAMBLER&Co
 
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
#2 "Распространённые ошибки в JavaScript" Денис Речкунов#2 "Распространённые ошибки в JavaScript" Денис Речкунов
#2 "Распространённые ошибки в JavaScript" Денис РечкуновJSib
 
функции в Java script
функции в Java scriptфункции в Java script
функции в Java scriptViktor Andreev
 
Увеличиваем мощь фреймворка Kdt & code`s generator
Увеличиваем мощь фреймворка   Kdt & code`s generatorУвеличиваем мощь фреймворка   Kdt & code`s generator
Увеличиваем мощь фреймворка Kdt & code`s generatorSQALab
 
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...Alexey Paznikov
 

What's hot (6)

RDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на SwiftRDSDataSource: Чистые тесты на Swift
RDSDataSource: Чистые тесты на Swift
 
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
#2 "Распространённые ошибки в JavaScript" Денис Речкунов#2 "Распространённые ошибки в JavaScript" Денис Речкунов
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
 
функции в Java script
функции в Java scriptфункции в Java script
функции в Java script
 
Увеличиваем мощь фреймворка Kdt & code`s generator
Увеличиваем мощь фреймворка   Kdt & code`s generatorУвеличиваем мощь фреймворка   Kdt & code`s generator
Увеличиваем мощь фреймворка Kdt & code`s generator
 
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
 
Decorators' recipes
Decorators' recipesDecorators' recipes
Decorators' recipes
 

Viewers also liked

презентация лабораторных работ. часть 2
презентация лабораторных работ. часть 2презентация лабораторных работ. часть 2
презентация лабораторных работ. часть 2student_kai
 
лабораторная работа №7
лабораторная работа №7лабораторная работа №7
лабораторная работа №7student_kai
 
сборка фюзеляжа (прототип ил 62)
сборка фюзеляжа (прототип ил 62)сборка фюзеляжа (прототип ил 62)
сборка фюзеляжа (прототип ил 62)student_kai
 
презентация 9
презентация 9презентация 9
презентация 9student_kai
 
слайды к лекции 9
слайды к лекции 9слайды к лекции 9
слайды к лекции 9student_kai
 
презентация лаб2
презентация лаб2презентация лаб2
презентация лаб2student_kai
 
презентация лаб4
презентация лаб4презентация лаб4
презентация лаб4student_kai
 
3 zanyatie -_proekt
3 zanyatie -_proekt3 zanyatie -_proekt
3 zanyatie -_proektstudent_kai
 
презентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работампрезентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работамstudent_kai
 
лекция № 5
лекция № 5лекция № 5
лекция № 5student_kai
 
презентация к лекц 1
презентация к лекц 1презентация к лекц 1
презентация к лекц 1student_kai
 

Viewers also liked (20)

презентация лабораторных работ. часть 2
презентация лабораторных работ. часть 2презентация лабораторных работ. часть 2
презентация лабораторных работ. часть 2
 
аудит2
аудит2аудит2
аудит2
 
лабораторная работа №7
лабораторная работа №7лабораторная работа №7
лабораторная работа №7
 
сборка фюзеляжа (прототип ил 62)
сборка фюзеляжа (прототип ил 62)сборка фюзеляжа (прототип ил 62)
сборка фюзеляжа (прототип ил 62)
 
презентация 9
презентация 9презентация 9
презентация 9
 
лаб3
лаб3лаб3
лаб3
 
слайды к лекции 9
слайды к лекции 9слайды к лекции 9
слайды к лекции 9
 
лекция 15
лекция 15лекция 15
лекция 15
 
п2 14
п2 14п2 14
п2 14
 
лекция 26
лекция 26лекция 26
лекция 26
 
презентация лаб2
презентация лаб2презентация лаб2
презентация лаб2
 
презентация лаб4
презентация лаб4презентация лаб4
презентация лаб4
 
3 zanyatie -_proekt
3 zanyatie -_proekt3 zanyatie -_proekt
3 zanyatie -_proekt
 
п7
п7п7
п7
 
п5
п5п5
п5
 
лекция 14
лекция 14лекция 14
лекция 14
 
лекция 27
лекция 27лекция 27
лекция 27
 
презентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работампрезентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работам
 
лекция № 5
лекция № 5лекция № 5
лекция № 5
 
презентация к лекц 1
презентация к лекц 1презентация к лекц 1
презентация к лекц 1
 

More from student_kai

презентация
презентацияпрезентация
презентацияstudent_kai
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке Cstudent_kai
 
презентация курсовой работы
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работыstudent_kai
 
лекция№34
лекция№34лекция№34
лекция№34student_kai
 
лекция№32
лекция№32лекция№32
лекция№32student_kai
 
лекция№33
лекция№33лекция№33
лекция№33student_kai
 
лекция№31
лекция№31лекция№31
лекция№31student_kai
 
лекция№30
лекция№30лекция№30
лекция№30student_kai
 
лекция№29
лекция№29лекция№29
лекция№29student_kai
 
лекция№28
лекция№28лекция№28
лекция№28student_kai
 
лекция№27
лекция№27лекция№27
лекция№27student_kai
 
лекция№26
лекция№26лекция№26
лекция№26student_kai
 
лекция№25
лекция№25лекция№25
лекция№25student_kai
 
лекция№25
лекция№25лекция№25
лекция№25student_kai
 
лекция№24
лекция№24лекция№24
лекция№24student_kai
 
лекция№23
лекция№23лекция№23
лекция№23student_kai
 
лекция№22
лекция№22лекция№22
лекция№22student_kai
 
лекция№21
лекция№21лекция№21
лекция№21student_kai
 
лекция№20
лекция№20лекция№20
лекция№20student_kai
 

More from student_kai (20)

презентация
презентацияпрезентация
презентация
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке C
 
презентация курсовой работы
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работы
 
лекция№34
лекция№34лекция№34
лекция№34
 
лекция№32
лекция№32лекция№32
лекция№32
 
лекция№33
лекция№33лекция№33
лекция№33
 
лекция№31
лекция№31лекция№31
лекция№31
 
лекция№30
лекция№30лекция№30
лекция№30
 
лекция№29
лекция№29лекция№29
лекция№29
 
лекция№28
лекция№28лекция№28
лекция№28
 
лекция№27
лекция№27лекция№27
лекция№27
 
лекция№26
лекция№26лекция№26
лекция№26
 
лекция№25
лекция№25лекция№25
лекция№25
 
лекция№25
лекция№25лекция№25
лекция№25
 
лекция№24
лекция№24лекция№24
лекция№24
 
лекция№23
лекция№23лекция№23
лекция№23
 
лекция№22
лекция№22лекция№22
лекция№22
 
лекция№21
лекция№21лекция№21
лекция№21
 
лекция№20
лекция№20лекция№20
лекция№20
 

Presentation kp-1

  • 1. Курсовая работа по объектно-ориентированному Этап программированию Разработка класса обычного объекта шара class Ball { // Класс обычного объектa int num; // Номер обычного объекта Thread thread; // Ссылка на объект потока bool run; // Признак выполнения потока bool life; // Признак жизни потока public Ball (int Num) { . . .} // Конструктор ~Ball ( ) {life= false;} // Деструктор public void Start ( ) { . . .} // Стартовать public void Suspend ( ) { . . .} // Приостановить public void Resume ( ) { . . .} // Возобновить void BallFunc ( ) { . . .} // Выполнить поток } 1а
  • 2. Курсовая работа по объектно-ориентированному программированию Этап 1 Разработка класса обычного объекта шара public void Start ( ) // Стартовать поток { if (!run) // Если поток не выполняется, то { run= true; // пусть выполняется и life= true; // живѐт // Создать объект рабочего потока thread= new Thread (new ThreadStart (BallFunc)); thread.Start ( ); // Стартовать поток } } б
  • 3. Курсовая работа по объектно-ориентированному программированию Этап 1в Разработка класса обычного объекта шара void BallFunc ( ) // Выполнить поток { int n= 0; // Номер цикла потоковой функции while (life) // Выполнить, пока поток жив { // Выдать на консоль номер объекта и цикла Console.Write ("Объект {0}", num.ToString ( )); Console.WriteLine (" n= {0}", n.ToString ( )); n++; // Увеличить номер цикла Thread.Sleep (10); // Поспим } // Выдать на консоль номер объекта и о завершении потока Console.Write ("Объект {0}", num.ToString ( )); Console.WriteLine (" завершился"); }
  • 4. Курсовая работа по объектно-ориентированному Этап 1 программированию г Разработка класса обычного объекта шара class BallsCs1 { static void Main (string[] args) { Ball ball1= new Ball (1); // Создать первый обычный объект Ball ball2= new Ball (2); // Создать второй обычный объект Console.WriteLine ("Объекты функционируют"); Thread.Sleep (20); // Объекты функционируют 20 мс ball1.Suspend ( ); // Приостановить первый обычный объект ball2.Suspend ( ); // Приостановить второй обычный й объект Console.WriteLine ("Объекты приостановлены и возобновлены"); ball1.Resume ( ); // Возобновить выполнение первого объекта ball2.Resume ( ); // Возобновить выполнение второго объекта Thread.Sleep (20); // Объекты функционируют 20 мс ball1.Suspend ( ); // Приостановить первый обычный объект ball2.Suspend ( ); // Приостановить второй обычный объект } }
  • 5. Курсовая работа по объектно-ориентированному Этап 1 программированию Разработка класса обычного объекта шара /* Результат: Объекты функционируют Объект 1 n= 0 Объект 2 n= 0 Объект 1 n= 1 Объект 2 n= 1 Объекты приостановлены и возобновлены Объект 1 n= 2 Объект 2 n= 2 Объект 1 n= 3 Объект 2 n= 3 */ д
  • 6. Курсовая работа по объектно-ориентированному Этап 2 программированию Разработка класса Balls class Balls // Класс объектов { Ball [] pBall; public Balls ( ) { pBall= new Ball [2]; for (int i= 0 ; i < 2; i++) pBall[i]= new Ball (i); Start ( ); } public void Start ( ) // Стартовать { for (int i=0 ; i < 2; i++) pBall[i]. Start ( ); } public void Suspend ( ) {…} // Возобновить public void Resume ( ) {…} } // Приостановить а
  • 7. Курсовая работа по объектно-ориентированному Этап 2 программированию б Разработка класса Balls class BallsCs2 { } static void Main (string[] args) { Balls pBalls= new Balls ( ); // Создать объект класса Balls Thread.Sleep (20); // Объект функционирует 20 мс pBalls.Suspend ( ); // Приостановить функционирование Console.WriteLine("Объекты приостановлены и возобновлены"); pBalls.Resume ( ); // Возобновить функционирование Thread.Sleep (20); // Объект функционирует 20 мс pBalls.Suspend ( ); // Приостановить функционирование } /* Результат: Объект 1 n= 0 Объект 2 n= 0 . . . Объекты приостановлены и возобновлены . . . Объект 2 n= 3
  • 8. Курсовая работа по объектно-ориентированному Этап 3 программированию а Разработка события ev delegate void delEv ( ); // Объявление делегата class Ball { public event delEv ev; // Объявление ... // события ev void BallFunc ( ) // Выполнить поток { int n= 0; while (life) { n++; if (ev != null) // Если событие активизировано, то { ev ( ); // свершить событие } Thread.Sleep (10); } } }
  • 9. Курсовая работа по объектно-ориентированному Этап 3 программированию Разработка события ev class Balls // Класс потоковых объектов { Ball [] pBall; public void HandlerEv ( ) // Обработчик события ev { Console.WriteLine (" HandlerEv"); } public Balls ( ) // Конструктор { pBall= new Ball [2]; for (int i= 0; i < 2; i++) { pBall[i]=new Ball (i); pBall[i].ev+= new delEv(HandlerEv ); // Добавить } Start ( ); } ... }; в
  • 10. Курсовая работа по объектно-ориентированному Этап 4 программированию а Разработка прикладного окна class Balls : Form // Класс прикладного окна { Ball [] pBall; // Ссылка на массив public Balls ( ) { pBall= new Ball [2]; // Создать массив обычных объектов for (int i= 0; i < 2; i++) { pBall[i]= new Ball (…); pBall[i].ev+= new delEv(HandlerEv ); // Подписаться } Start ( ); } ... protected override void OnPaint (PaintEventArgs arg) { base.OnBase (arg); for (int i= 0; i < 2; i++) arg .Graphics.DrawEllipse (…);} void HandlerEv ( ) { Invalidate ( );} // Обработать события ev от объектов }