Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание5.doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
516.1 Кб
Скачать

4.2. Создание приложения

4.2.1. Создайте новый проект и сохраните его в отдельной папке (например, Lz_3).

4.2.2. Разместите на форме список TMemo, движок TScrollBar, кнопку TButton для запуска задач и 7 индикаторов TGauge (панель элементов Samples) с соответствующими метками TLabel. Вариант интерфейса приложения приведен на рис. 2.

Рис. 2. Вариант интерфейса приложения

4.2.3. В модуле формы создать и описать процедуры:

1. Нажатия на кнопку “Запуск”, в которой:

  • деактивировать кнопку;

  • очистить список TMemo;

  • сбросить индикаторы TGauge (установить свойство Progress в 0);

  • вызвать процедуру запуска потоков.

2. Создания формы (пока оставить в виде заглушки).

3. Изменения позиции движка (пока оставить в виде заглушки).

4.2.4. Вставить в проект новый модуль для описания потоков (FileNewNewUnit). Подключить его к модулю формы.

4.2.5. В модуле потоков подключить модули Classes, Gauges, StdCtrls, SyncObjs и описать следующие элементы программы:

1. Запись в которой содержатся параметры для инициализации потоков:

  • имя потока;

  • имя запустившего потока;

  • “длина” потока.

2. Класс базового потока (от которого будут порождаться все потоки программы) состоящий из частных полей:

  • строка состояния (типа TGauge);

  • “длина” потока (Integer);

  • текущее состояние задачи (LongInt);

  • признак завершения задачи (Boolean);

  • имя задачи;

  • имя запустившей задачи;

  • строка для вывода сообщений;

защищенных методов:

  • выполнение задачи;

  • прорисовка строки состояния;

  • вывод сообщения (в поле TMemo);

  • завершение задачи (виртуальный, абстрактный);

и общедоступного конструктора с параметрами:

  • строка состояния;

  • параметры инициализации.

3. Классы потоков (A-G), в которых переопределяется метод завершения задачи.

4. Процедуру запуска потоков. Параметрами процедуры являются имена строк состояния, размещенных на форме (все 7 штук).

5. Глобальные переменные:

  • кнопка запуска потоков (TButton);

  • список сообщений (TMemo);

  • задержка (Integer);

  • параметры инициализации (тип, описанные в п. 1);

  • 7 потоков (типы, описанные в п. 3);

  • критическая секция (TCriticalSection).

4.2.6. В модуле формы вставить код в процедуры:

1. Создания формы:

  • кнопке запуска потоков модуля описания потоков поставить в соответствие кнопку “Запуск” формы;

  • переменной задержки присвоить значение свойства Position движка (положение движка будет определять величину задержки);

  • списку сообщений модуля описания потоков поставить в соответствие список TMemo формы.

2. Изменения позиции движка:

  • переменной задержки присвоить значение свойства Position движка.

4.2.7. В модуле описания потоков запрограммировать процедуры прорисовки строки состояния и вывода сообщения в список.

4.2.8. Составить программы реализации конструктора потоков и остальных методов в соответствии с алгоритмами работы (рис. 3-10).

4.3. Исследование работы приложения

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