Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Разработка многопоточных Windows-приложений в среде Borland C Builder

Название: Разработка многопоточных Windows-приложений в среде Borland C Builder
Раздел: Рефераты по информатике
Тип: реферат Добавлен 23:53:35 22 мая 2011 Похожие работы
Просмотров: 25 Комментариев: 22 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно     Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра АСУ

Отчёт

к индивидуальному домашнему заданию

по ТП

на тему:

«Разработка многопоточных W indows-приложений

в среде Borland C ++ Builder »

Вариант №7

Выполнил студент группы ИУС-04б

Ващилко Валентин

Проверили Землянская С.Ю.

Петров А.В.

Донецк 2007

Цель работы: Изучение способов создания и управления потоками в программах, разрабатываемых в среде BorlandC++ Builder. Изучение и использование методов взаимодействия потоков и визуальных компонентов библиотеки VCL.

Методические указания:

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

а) создать 3 вторичных объекта-потока, производных от класса TThread (1-й поток должен быть в запущенном состоянии, 2-й и 3-й – в приостановленном состоянии). В каждом из потоков описать функции вывода информации на соответствующие формы. Вызов этих функций будет производиться из метода Execute() соответствующего потока в бесконечном цикле, с помощью функции Synchronize() с периодичностью (задержкой) 0,1 сек;

б) разработать 3 формы (главную форму приложения и 2 формы) для взаимодействия с указанными потоками;

в) главная форма приложения должна быть размещена в центре экрана и состоять из 4-х частей: в верхней части должна быть надпись с информацией о данной работе (дисциплина, № работы, группа, ФИО студента), ниже постоянно выводится динамически изменяющаяся текстовая (числовая) информация или графическая фигура, выполняемые в 1-м вторичном потоке. В нижней половине формы должны располагаться 2 панели для управления 2-м и 3-м созданными потоками. Внизу формы помещается кнопка "Выход".

г) на каждой панели вверху помещается название потока, а ниже размещаются компоненты для отображения состояния и управления соответствующим потоком. Информация о потоке (запущен, приостановлен, завершен) выводится с помощью компонентов Label. Управление потоком производится с помощью кнопок с названиями "Запустить", "Приостановить", "Завершить". Изменение приоритета потока может производиться с помощью компонентов типа ComboBox, ListBox, RadioGroup по выбору студента.

д) при запуске приложения должна появиться главная форма, в верхней половине которой должны отображаться действия, выполняемые 1-м вторичным потоком согласно варианту задания. Два других потока должны находиться в приостановленном состоянии, о чем должны говорить надписи на панелях. При нажатии на любой панели кнопки "Запустить" должна появиться форма, на которой будет выводится динамически изменяющаяся текстовая (числовая) информация или графическая фигура, выполняемые в соответствующем потоке. При нажатии кнопки "Приостановить" работа соответствующего потока временно прекращается. При нажатии кнопки "Завершить" соответствующая форма закрывается, действие потока останавливается (без уничтожения объекта, для возможности повторного запуска потока).

Вар-та

Действия, выполняемые в потоках и отображаемые на формах
Поток 1 Поток 2 Поток 3
7 Компонент ScrollBar на форме циклически показывает плавное движение ползунка. Последовательность цифр, выведенная с помощью компонента Label циклически сдвигается справо-налево, образуя "бегущие числа". Графическая фигура одного вида (компонент Shape) на форме изменяет свои размеры от min до max, а потом наоборот.

Unit1.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "T2.h"

#include "T1.h"

#include "T3.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

T1 *Thread1=newT1(false); // Поток 1 создан и запущен

T2 *Thread2=newT2(true); // Поток 2 создан и не запущен

T3 *Thread3=newT3(true); // Поток 3 создан и не запущен

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Label9->Caption="Запущен";

Form2->Show();

Thread2->Resume();

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Label9->Caption="Приостановлен";

Thread2->Suspend();

}

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

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Label9->Caption="Завершён";

Thread2->Terminate();

Form2->Close();

}

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

void __fastcall TForm1::RadioGroup1Click(TObject *Sender)

{

switch (RadioGroup1->ItemIndex)

{

case 0: Thread2->Priority=tpLowest;

break;

case 1: Thread2->Priority=tpNormal;

break;

case 2: Thread2->Priority=tpHighest;

break;

}

}

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

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

switch (ComboBox1->ItemIndex)

{

case 0: Thread3->Priority=tpLowest;

break;

case 1: Thread3->Priority=tpNormal;

break;

case 2: Thread3->Priority=tpHighest;

break;

}

}

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

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Label10->Caption="Запущен";

Form3->Show();

Thread3->Resume();

}

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

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Label10->Caption="Приостановлен";

Thread3->Suspend();

}

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

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Label10->Caption="Завершён";

Thread3->Terminate();

Form3->Close();

}

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

void __fastcall TForm1::Button7Click(TObject *Sender)

{

exit(1);

}

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

Unit2.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "T2.h"

#include "Unit2.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

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

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

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

Unit3.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

#include "T3.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

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

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

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

T1.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "T1.h"

#pragma package(smart_init)

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

__fastcall T1::T1(bool CreateSuspended)

: TThread(CreateSuspended)

{

}

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

void __fastcall T1::OutOnForm1()

{ static int i=2;

Form1->ScrollBar1->Position+=i;

if (Form1->ScrollBar1->Position == 100)

{Form1->ScrollBar1->Position=0;}

}

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

void __fastcall T1::Execute()

{

for (;;)

{

Synchronize(OutOnForm1);

Sleep(100);

}

}

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

T2.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "T2.h"

#include "Unit2.h"

#pragma package(smart_init)

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

__fastcall T2::T2(bool CreateSuspended)

: TThread(CreateSuspended)

{

}

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

void __fastcall T2::OutOnForm2()

{ static int i=10;

Form2->Label1->Left-=i ;

if (Form2->Label1->Left < -160)

{Form2->Label1->Left=370;}

}

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

void __fastcall T2::Execute()

{

for (;;)

{

Synchronize(OutOnForm2);

Sleep(150);

}

}

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

T3.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "T3.h"

#include "Unit1.h"

#include "Unit3.h"

#pragma package(smart_init)

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

__fastcall T3::T3(bool CreateSuspended)

: TThread(CreateSuspended)

{

}

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

void __fastcall T3::OutOnForm3()

{ static int i=5;

static int k;

static int f=0;

if (f==0)

{

for (k=40;k<=100;k+=5);

{

Form3->Shape1->Width+=i;

Form3->Shape1->Height+=i;

if (Form3->Shape1->Width==100) {f=1;} ;

};

};

if(f==1)

{

for (k=100;k>=40;k-=5);

{

Form3->Shape1->Width-=i;

Form3->Shape1->Height-=i;

if (Form3->Shape1->Width==40) {f=0;} ;

};

};

}

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

void __fastcall T3::Execute()

{

for (;;)

{

Synchronize(OutOnForm3);

Sleep(150);

}

}

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

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита03:20:32 04 ноября 2021
.
.03:20:31 04 ноября 2021
.
.03:20:30 04 ноября 2021
.
.03:20:28 04 ноября 2021
.
.03:20:27 04 ноября 2021

Смотреть все комментарии (22)
Работы, похожие на Реферат: Разработка многопоточных Windows-приложений в среде Borland C Builder

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(290244)
Комментарии (4187)
Copyright © 2005-2021 HEKIMA.RU [email protected] реклама на сайте