Реферат: Моделирование системы автоматизации проектирования - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Моделирование системы автоматизации проектирования

Банк рефератов / Информатика, информационные технологии

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 240 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

63 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ ХЕРСОНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ МОДЕЛИРОВАНИЕ СИСТЕМЫ АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ Курсовая работа по дисциплине «Основы системного анализа объектов и процессов компьютеризации» Пояснительная записка РЕФЕРАТ Пояснительная записка по курсовой работе "Моделирование системы автоматизации проектирования" состоит из 63 листов, количество использованной литературы – 7, количество приложений - 4. Данная пояснительная записка содержит п остановку задачи, предметную область, математическое описание задачи, метод решения, назначение программы, входные и выходные данные, инструкцию пользователя, алгоритм работы программы, описание логической структуры, используемые технические средства, вызов и загрузку. Для успешной работы с представленной программой необходим компьютер IBM 8 x 586 или любой совместимый с ним. Для реализации данного алгоритма использовался язык программирования Delphi версии 4.0. Также необходимо наличие файла с программой project 1 . pas и необходимых модулей. При написании программы использовался PC/AT совместимый компьютер класса Intel Pentium . СОДЕРЖАНИЕ Введение . . . . . . . . . . . . . . . . . . . . . . 6 1 Описание задачи . . . . . . . . . . . . . . . . . 8 1.1 Постановка задачи . . . . . . . . . . . . . . . . 8 1.2 Предметная область . . . . . . . . . . . . . . . 9 1.3 Математическое описание задачи . . . . . . . . . 10 1.4 Метод решения . . . . . . . . . . . . . . . . . .13 2 Описание применения . . . . . . . . . . . . . . .15 2.1 Назначение программы . . . . . . . . . . . . . . 15 2.2 Входные и выходные данные . . . . . . . . . . . .16 2.3 Инструкция пользователя . . . . . . . . . . . . .16 3 Описание программы . . . . . . . . . . . . . . . .20 3.1 Общие сведения и функциональное назначение . . . 20 3.2 Алгоритм работы программы . . . . . . . . . . . 22 3.3 Описание логической структуры . . . . . . . . . 23 3.4 Используемые технические средства,вызов,загрузка 27 3.5 Контрольный пример . . . . . . . . . . . . . . . 28 Заключение . . . . . . . . . . . . . . . . . . . . . Список использованной литературы . . . . . . . . . .30 Приложение А Текст программы . . . . . . . . . . . . 31 Приложение Б Экранные формы . . . . . . . . . . . . .57 Приложение В Блок-схема алгоритма . . . . . . . . . .61 Приложение Г Q - схема. . . . . . . . . . . . . . . . .63 ВВЕДЕНИЕ Задача данной курсовой работы реализует процесс обслуживания, который может быть рассмотрен на примере системы массового обслуживания, которая в свою очередь рассматривается в теории массового обслуживания. Теория массового обслуживания представляет собой прикладную математическую дисциплину, занимающуюся исследованием показателей производительности технических устройств или систем массового обслуживания, предназначенных для обработки поступающих в них заявок на обслуживания заявок. Для того чтобы понять необходимость теории массового обслуживания, рассмотрим простейший пример. Пусть на некоторое обслуживающее устройство или обслуживающий прибор поступает поток заявок. Допустим, путем длительных наблюдений мы установили, что среднее число поступающих на прибор заявок постоянно и равно 6 в час. Спрашивается, какую производительность должен иметь прибор, чтобы успешно справляться с поступающим на него потоком заявок? Сам собой напрашивается ответ: прибор должен обслуживать в среднем 6 заявок в час или каждую заявку за 10 мин. Конечно, осторожный проектировщик всегда сделает небольшой запас, скажем, в 10 % на всякие непредвиденные обстоятельства и предложит производительность прибора, соответствующую обслуживания одной заявки за 9 мин. Дальнейшее увеличение производительности прибора вряд ли целесообразно, поскольку тогда он будет большую долю времени простаивать. Итак, ответ готов: прибор должен обслуживать заявку в среднем за 9 мин. При этом заявки перед прибором не должны накапливаться, а сам прибор в среднем 6 мин каждый час будет простаивать. Однако на практике весьма быстро было подмечено следующее обстоятельство. Да, прибор действительно был свободен 10% времени. Но в очень многих случаях перед прибором возникала весьма значительные очереди. В среднем перед обслуживающим прибором скапливается очередь из 8 заявок. Поиски причин этого явления выявили и виновника: им оказался именно элемент случайности в поступлении и обслуживании заявок. Дальнейший ход событий предсказать не трудно. Раз виноваты случайные явления, а случайными явлениями занимается теория вероятности, то необходимо для анализа системы массового обслуживания применять методы этой дисциплины. Пик своего развития теория массового обслуживания достигла в 50-70-е годы. Затем интерес к теории массового облуживания несколько ослабел. Однако в последнее время снова возродился интерес к задачам теории массового обслуживания, обусловленный не только новыми проблемами, возникшими в практической жизни и особенно в областях, связанных с разработкой и применением вычислительной техники, но и новыми математическими подходами к их решению. Одним из таких подходов является алгоритмический подход, возникший в связи с широким применением вычислительной техники, в частности, персональных компьютеров в научных исследованиях, и предлагающий получение решений задач теории массового обслуживания в виде тех или иных вычислительных алгоритмов. 1 ОПИСАНИЕ ЗАДАЧИ 1.1 Постановка задачи Задание данной курсовой работы звучит следующим образом. Система автоматизации проектирования состоит из ЭВМ и трех терминалов. Каждый проетировщик формирует задание в интерективном режиме. Набор строки задания занимает 10±5 с. Получение ответа на строку требует 3 с работы ЭВМ и 5 с работы терминала. Посля набора 10 строк задание считается сфомированным и поступает на решение, при этом в течение 10±3 с ЭВМ приостанавливает производство ответов на строки, которые вводятся. Анализ результата занимает у проектировщика 30 с, после чего цикл повторяется. Смоделировать работу системы в течении 6 часов. Определить вероятность простоя проектировщика через занятость ЭВМ и коэффициент нагрузки ЭВМ. Требования к программе следующие: все параметры системы должны динамически меняться во время выполнения программы и пользователь имеет возможность просмотра статистических данных выполнения программы. Данная программа отвечает требованиям, указанным при постановке задачи, имеет «дружественный» интерфейс, представляет данные в удобном визуальном представлении и выводит в графическом виде время выполнения процессов. В программе были использованы все принципы построения модели по Q -схеме, которые описаны в математической модели. 1.2 Предметная область Схема данной курсовой работы может быть применена в различных отраслях народного хозяйства, в частности в химической отрасли, где ЭВМ может являться прибором – спектометром “ Palmer – F 402” , а терминалы – это производственные цехи. Химическая промышленность – одна из важнейших отраслей народного хозяйства. Химизация народного хозяйства – одно из основных направлений научно-технического прогресса, характеризующееся внедрением химических методов, процессов и материалов в различные отрасли народного хозяйства. Очень важным в химической промышленности ввиду ее вредности стало применение автоматизации и дистанционного управления процессами, а именно использование приборов, позволяющих осуществлять производственный процесс без непосредственного участия человека, лишь под его контролем. Автоматизация – это высшая степень механизации. Особенное значение имеет комплексная автоматизация с применением электронных вычислительных машин, которые получают информацию о ходе химического процесса от различных приборов-измерителей. Так, в химическую промышленность вошла наука кибернетика. Одна из насущных задач развития химической техники – широкое применение автоматизированных систем управления технологией производства – АСУ ТП. С точки зрения химической отрасли данная задача может быть рассмотрена следующим образом. Строки задания – это вещества, являющиеся составными частями какого-либо продукта. Вещество анализируется, в течении какого времени на состав и примеси на приборе спектометре “ Palmer – F 402” и возвращаются в цех. Из определенного количества обработанных веществ формируется готовый продукт, который также анализируется на приборе “ Palmer – F 402”. Результат обрабатывается в течение какого-то времени непосредственно проектировщиком, то есть работником цеха. Примером такой схемы функционирования может является производство кальцинированной соды Na 2 CO 3 . Строками-веществами являются вода ( H 2 O ), соль ( NaCl ), мазут, мел ( CaCO 3 ), погашенная известь ( CaO ), аммиак ( NH 3 ), хлорид амония ( NH 4 Cl ), бикарбонат натрия ( NaHCO 3 ), хлористый натрий ( CaCl 2 ), которые анализируются на приборе “ Palmer – F 402”. Данные из “ Palmer – F 402” возвращаются в цех для контроля и дозировки. В результате смешивания этих веществ и проведения различных химических реакций получается кальцинированная сода Na 2 CO 3 , которая также анализируется на приборе “ Palmer – F 402”, а затем в самом цехе. Другие терминалы-цехи могут использоваться для производства других веществ. 1.3 Математическое описание задачи К математической модели данной задачи можно отнести модель реализации каждого из компонентов системы. Терминалы представлены в программе как массивы целых чисел k i i =1:3 , где количество элементов в массиве является количеством обработанных строк. При поступлении новой строки из ЭВМ на терминал увеличивается индек соответствующего массива на единицу и увеличивается количесво элементов в массиве: i = i +1 (1.3.1) ki = i (1.3.2) ЭВМ представлено ввиде элемента, который в программе реализуется с помощью типа-записи, содержащего сведенья о строке задания (время обработки строки и номер терминала, сформировавшего ее). Заполнение ЭВМ реализуется по следующей формуле: EVM = nakopitel (1) (1.3.3) где nakopitel [1] – первый элемент в массиве-накопителе. Накопитель является массивом необработанных строк. При поступленнии новой строки в накопитель увеличивается индек массива и накопителю присваевается новая строка : index_nakop=index_nakop+1 (1.3.4) nakopitel(index_nakop)=x (1.3.5) где х – содержит параметры строки; index _ nakop – текущее количесво элементов в массиве-накопителе. При выдаче строки задания из накопителя в ЭВМ индекс массива уменьшается и количесво элементов в массиве уменьшается на единицу: nakopitel(i)=nakopitel(i+1) i=1;index_nakop-1 index _ nakop = index _ nakop -1 (1.3.6) Вероятность простоя проектировщика из-за занятости ЭВМ определяется по формуле: ver = time 1/ time 2 ( 1.3.7 ) где ver – вероятность простоя проектировщика; time 1 – время простоя проектировщика; time 2 – время, в течении которого ЭВМ занято обработкой задания от другого проектировщика. Коэфициент загрузки ЭВМ определяется следующим образом: koef = time 3/ time (1.3.8) где koef – коэфициент загрузки ЭВМ; time 3 – время, в течении которого ЭВМ работает; time – время работы системы. Работа данной системы реализуется с помощью Q -схемы, которая определяется следующим набором: Q = < W , U , H , Z , R , A > (1.3.9) где W – подмножество входящих потоков заявок на обслуживание: U – подмножество потоков обслуживания; H – подмножество собственных параметров; Z – подмножество состояний элементов структуры ( Z i H , Z i K ); R – оператор сопряжения элементов структуры (каналов и накопителей); A – оператор алгоритмов обслуживания заявок (оператор поведения заявок). Подмножество собственных параметров H для данной схемы определяется как H i = L ф , L ki , L ik , L i (1.3.10) где L ф – количество фаз. L ф = 2; L ki – количество каналов. L k1 = 3, L k2 =1; L ik – количество накопителей. L ik = 1; L i – ёмкость накопителя. Теоретически не ограниченна. Подмножество состояний системы определяется выражением: Z i = ( Z i H , Z i K ) (1.3. 11 ) где – Z i H состояние накопителя (Z i = 0– накопитель пуст, Z i = 1 – в накопителе имеется 1 заявка,..., Z i = L i – накопитель полностью заполнен); L i – ёмкость накопителя, измеряемая числом помещаемых в нём заявок; Z i K – состояние канала К i ( Z i = 0– канал свободен, Z i = 1– занал занят). 1.4 Метод решения Метод решения поставленной задачи реализуется на основе объектно-ориентированного и структурного программирования. Объекты, используемые в программе являются стандартными для языка Delphi и определяют компоненты программы, реализующие визуальный контакт пользователя с программой. Суть структурного программирования заключается в оформлении часто используемых последовательностей команд как отдельных функций и процедур и в объединении данных, связанных по смыслу, в сложные структуры данных. Благодаря этому повышается наглядность текста и упрощается его отладка. Для удобства написанная программа была разбита на модули (отдельные процедуры и функции). Применение методов структурного программирования улучшает ясность и читабельность программ. Структурное программирование – это программирование, которое основано на основных вычислительных структурах. При использовании этого метода придерживаются строгих правил построения алгоритма. Всякая структурированная блок-схема может быть выражена как композиция из четырёх основных элементарных блок-схем: - композиции, то есть последовательным решением двух задач. Если первая задача вырабатывает какую-то информацию необходимую для второй задачи, то они образуют составной блок. В такой подстановке задача разделяется на отдельные части. Объекты первой задачи могут являться глобальными для второй задачи. - альтернативы. В такой блок-схеме вычисляется значение предиката и выполняется задача 1 или 2. Задача 2 может при этом отсутствовать. Эта блок-схема легко реализуется оператором IF. . . THEN. . . ELSE. - итерации повторения, то есть производится повторения вычисления поставленной задачи. Структурированное программирование состоит из этих элементарных блок-схем, образуя блоки задач, которые, в свою очередь, могут содержать в себе блок-схемы, описанные выше. 2 ОПИСАНИЕ ПРИМЕНЕНИЯ 2.1 Назначение и условия применения программы Курсовая работа предназначена для моделирования системы автоматизации проектирования. Это и является основным назначением программы, которая может представлять интерес как для студентов-системщиков при изучении материала, так и для программистов в роли обучающей программы, демонстрирующей большие возможности языка программирования Delphi . Эта курсовая работа является подведением итогов, полученных знаний по дисциплине "Основы системного анализа объектов и процессов компьютеризации". Схема этой работы должна иметь возможность практической реализации. Применение данной программы возможно лишь в случае наличия на компьютере всех необходимых технических средств. Выполнение данной программы производилось при помощи средств диалекта языка программирования Delphi версии 4.0. Требования программы: персональный компьютер на базе микроп роцессора Intel 8 x 586 и выше, VGA совместимая видеокарта, накопи тель на твёрдом магнитном диске. Требования к операционной системе ограничены требованиями компилятора языка Delphi 4.0, то есть Windows 3.11 или выше. Применение данной программы возможно лишь в случае наличия неповрежденных исходных файлов программы или скомпилированный программный файл. Исходный текст программы находится в файлах под именами unit 1.pas, unit 2. pas , unit 3. pas , unit 4. pas , unit 5. pas , unit 6. pas , unit 7 . pas , unit 8 . pas , unit 9 . pas , unit 10 . pas , unit 11 . pas , unit 12 . pas и занимают 43,2 килобайт, а исполняемый модуль под име нем project 1 .exe - 839 килобайт. 2 .2 Входные и выходные данные В качестве входных данных выступают параметры моделирования: время набора строки задания, время ответа на строку терминалом и ЭВМ, количество строк, формирующих задание, время ответа ЭВМ на задание, время анализа результата проектировщиком, время моделирования. К выходным данным следует отнести следующие результаты моделирования (статистические данные), которые пользо ватель сможет увидеть на экране дисплея в удобочитаемом виде: количество набранных строк от 1-го, 2-го и 3-го проектировщика, количество обработанных строк от 1-го, 2-го и 3-го проектировщика; количество полученных заданий от 1-го, 2-го и 3-го проектировщика, количество обработанных заданий от 1-го, 2-го и 3-го проектировщика; вероятность простоя 1-го, 2-го и 3-го проектировщика из-за занятости ЭВМ; коэффициент нагрузки ЭВМ. 2.3 Инструкции пользователю Интерфейс программы очень прост для понимания, причем трактовка каждого пункта меню на предмет дальнейшего действия однозначна, при этом специально для удобочитаемости пользователя предусмотрены всплывающие контекстные подсказки, которые просто не дадут пользователю возможности ошибиться в момент моделирования. Все действия программы для удобства пользователя дублируются несколько раз: с помощью главного меню программы, с помощью панели инструментов или при помощи кнопок, находящихся на главном окне программы. При запуске программы появляется меню, состоящее из трех пунктов, панель инструментов, разделенная на четыре части, а также панели, накоторой находятся кнопки, реализующии такие действия как: старт, пауза, стоп, помощь и выход. Меню содержит следующие пункты: система, задание и справка. При выборе пункта Система пользователь может реализовать следующии действия: - моделирование, запускает программу на выполнение (может реализоваться при нажатии клавиш Ctrl + A ); - параметры, выводит окно, где можно поменять все параметры системы (может реализоваться при нажатии клавиш Ctrl +В ); - статистика, выводит окно статистических данных программы (может реализоваться при нажатии клавиш Ctrl +С ); - выход, реализует закрытие программы и выход в среду Window . При выборе пункта Задание появляется меню из двух пунктов: - задание, содержит текст задания (может реализоваться при нажатии клавиш Ctrl + F 1 ); - Q -схема, выводит окно, содержащее Q -схему курсовой работы (может реализоваться при нажатии клавиш Ctrl + F 2 ). При выборе пункта Справка появляется меню из трех пунктов: - помощь, содержит сведенья о работе программы (может реализоваться при нажатии клавиши F 1 ); - об авторе, содержит сведенья об авторе проекта (может реализоваться при нажатии клавиши F 2 ); - о программе, содержит общие сведенья о программе (может реализоваться при нажатии клавиши F 3 ). Панель инструментов полностью дублирует пункты главного меню и предназначена для быстрого выбора наиболее часто используемых пунктов меню. Для удобства использования программы внизу главного окна программы находится панель с тремя закладками, предназначенная для изменения параметров системы, просмотра общей статистики и визуального наблюдения за временем выполнения различных процессов. При запуске процесса моделирования система работает с начальными параметрами. При изменение параметров система продолжает работу с новыми параметрами. При нажатии на кнопку Стоп система переходит в начальное состояние и готова для нового запуска. При нажатии на кнопку Пауза пользователь может зафиксировать статистические данные программы в определенный момент времени. Работая с дискеты, пользователь не должен заботиться о наличии каких-либо модулей, драйверов на рабочем компьютере, все необходимые модули, файлы и картинки скомпилированы в один выполнимый файл. Это существенно облегчает работу для пользователей данной программы. Для ускорения работы программы моделирования ее можно переписать на винчестер. 3 ОПИСАНИЕ ПРОГРАММЫ 3.1 Общие сведения и функциональное назначение Предоставленный программный продукт носит название "Моделирование системы автоматизации проектирования" и служит для моделирования процесса обработки и передачи данных из трех терминалов и ЭВМ. Исходный текст программы находится в файлах под именами unit 1.pas, unit 2. pas , unit 3. pas , unit 4. pas , unit 5. pas , unit 6. pas , unit 7 . pas , unit 8 . pas , unit 9 . pas , unit 10 . pas , unit 11 . pas , unit 12 . pas и занимают 43,2 килобайт, исполняемый модуль под име нем project 1 .exe - 839 килобайт. В исполняемый файл компилируются все необходимые модули, библиотеки, без которых программа просто не может работать. Для реализации данной программы использовался язык визуального программирования Delphi версии 4.0. Язык Delphi - это один из самых распространенных языков визуального программирования для ЭВМ типа IBM PC, работающих в операционных системах Windows 9.х. Программирование в Delphi строится на тесном взаимодействии двух процессов: процесса конструирования визуального проявления программы (то есть ее Windows -окна) и процесса напиисания кода, придающего элементам этого окна и программе в целом необходимую функциональгость. Для написания кода используется окно кода, для конструирования программы – остальные окна Delphi , и прежде всего – окно формы. Между содержимым окон формы и кода существует неразрывная связь, которая строго отслеживается Delphi . Это означает, что размещение на форму компонента приводит к автоматическому изменению кода программы и наоборот о- удаление тех или иных автоматически вставленных фракментов кода может привести к удалению соответсвующих компонентов. Помня об этом, необходимо в начале сконструировать форму, размещая на ней очередной компонент, а уже только после этого переходить, если это необходимо, к написанию фрагмента кода, обеспечивающего требуемое поведение компонента в работающей программе. В языке Delphi имеется возможность использовать процедуры и функции, обеспечивающие возможности практической реализации принципов структурного программирования. Ориентируясь на эти принципы, можно разделить большую программу на ряд меньших, оформив их как процедуры или функции. Эти процедуры отлаживаются отдельно и независимо, а затем уже могут использоваться в главной программе (и/или других процедурах и функциях) как готовые и неизменные. По своей сути данная задача является процессом обслуживания строк задания и самого задания, а такие задачи решаются с помощью систем массового обслуживания. Системы массового обслуживания представляют собой класс ма тематических схем, разработанных в теории массового обслуживания и различных приложениях для формализации процессов функционирова ния систем, которая по своей сути являются процессами обслужива ния. Задачи массового обслуживания возникают в тех случаях, ког да условия на выполнение роботы поступают в случайные моменты времени, а выполнение этих работ, называемые обслуживанием, осу ществляется одним или несколькими обслуживающими устройствами. Длительность выполнения отдельных требований предполагается слу чайной (в моей задаче некоторые промежутки заданы однозначно, а именно, обслуживание в канале обработки и обслуживание в канале сборки; а некоторые заданы экспоненциальной зависимостью: обслу живание в канале регулировки). Устройство, способное в любой момент времени обслуживать лишь одно требование, называется каналом обслуживания (в данном курсовом проекте этими устройствами являются ЭВМ и три терминала). Характерной особенностью задач массового обслуживания яв ляется возникновение несоответствия между скоростью поступления требований и скоростью обслуживания, в результате чего или оказы ваются простаивающими обслуживаемые приборы или образуется оче редь на обслуживание. В данной работе в накопителе возникают очере дь на обслуживание. 3.2 Алгоритм работы программы Алгоритм работы программы реализован на принципах построения и функционирования Q -схемы. Он имеет следующий вид: 1) проверка времени моделирования системы; 2) если время моделирования больше чем 6 часов, то процесс моделирования окончен; 3) моделивание строки задания от проектировщика в течение 10 5 секунд; 4) обработка строки терминалом в течение 5 секунд; 5) поступление строки в накопитель; 6) проверка условия, если сформировалось задание, то есть обработано 10 строк от одного терминала, то ЭВМ выполняет это задание в течение 10 3 секунд; 7) если задание обработано ЭВМ, то оно обрабатывается проектировщиком в течение 30 секунд; 8) если не сформировано задание ни от одного терминала, то ЭВМ обрабатывает строки задания ЭВМ в течение 3 секунд; 9) обработаная строка возвращается на соответствующий терминал; 10) если в терминале накоплено 10 строк, то переходим к шагу 5; 11) цикл повторяется с начала, то есть переходим к шагу 1. 3.3 Описание логической структуры Задание на курсовую работу "Моделирование системы автоматизации проектирования" звучит следующим образом. Система автоматизации проектирования состоит из ЭВМ и трех терминалов. Каждый проетировщик формирует задание в интерективном режиме. Набор строки задания занимает 10±5 с. Получение ответа на строку требует 3 с работы ЭВМ и 5 с работы терминала. Посля набора 10 строк задание считается сфомированным и поступает на решение, при этом в течение 10±3 с ЭВМ приостанавливает производство ответов на строки, которые вводятся. Анализ результата занимает у проектировщика 30 с, после чего цикл повторяется. Смоделировать работу системы в течении 6 часов. Определить вероятность простоя проектировщика через занятость ЭВМ и коэффициент нагрузки ЭВМ. Код программы основан на методах объектно-ориентированного и струкрурного программирования. Первым этапом построения программы является определение типов используемых переменных и подключение необходимых модулей. Основными модулями, подключаемыми в программе, являются модули, хранящие процедуры и функции для обработки графической, текстовой информации, для создания форм, меню, классов, диалогов и другие. В программе определен пользовательский тип stroka , который определяет моделируемую заявку. Основным классом, используемым в программе является класс TForm , который является “контейнером” всех компонент программы и обработчиков их событий. Под компонентом понимается некий функциональный элемент, содержащий определенный свойства и размещаемый программистом в окне формы. Обработчик событий – это текст кода программы, который представляет собой последовательность текстовых строк, указывающих, что именно должна делать программа на то или иное действие пользователя. Вторым этапом является определение обработчиков событий. В программе реализованы обработчики нажатий клавиш и пунктов меню. При запуске программы активизуруется процедура создания формы, которая определят, что происходит в начале работы программы. В данном случае в этой процедуре всем переменным, используемым в программе присваиваются начальные данные и запускается генератор случайных чисел Randomize . При выборе пункта меню Система-Моделирование включается таймер, который определяет интервалы времени между последовательностями определенных событий. При выборе пункта меню Система-Параметры на экран выводится форма Form 8 , на которой находятся компоненты, дающие пользователю возможность смены параметров системы. В случае изменения каких-либо параметров в окне Параметры, то автоматически изменяются параметры в окне главной формы программы в помощью процедур SpinEdit1Change, которые реагируют на изменение значений в компоненте SpinEdit, с помощью которых можно легко управлять значением параметров системы. При выборе пункта меню Система-Статистика на экране появляется окно Form 5 , в которое выводятся результаты работы программы. При выборе пункта меню Система-Выход происходит закрытие программы и выход в среду Windows . При выборе пункта меню Задание-Задание на экран выводится форма Form 2 , в которой находится текст задания курсовой работы. При выборе пункта меню Задание- Q - схема на экране появляется окно Form 6 , в котором нарисована Q -схема задания. При выборе пункта меню Справка-Помощь на экран выводится форма Form 7, где указываются сведенью о работе программы. При выборе пункта меню Справка-Об авторе выводится окно Form 4 , где указываются сведенью об авторе программы. При выборе пункта меню Справка-О программе выводится окно AboutBox , в котором указываются сведенья о программной облочке, в которой создана программа. При нажатии кнопок панели инструментов происходят аналогичные действия как при выборе соответствующего пункта главного меню программы. Для удобства пользователю при наведении мышкой на кнопку появляется подсказка о назначении этой кнопки. При запуске процесса моделирования происходит запуск таймера и активизируется процедура OnTimer , в которой находится основной текст программы, моделирующий процесс функционирования системы. Раз включенный таймер все время будет возбуждать события OnTimer до тех пор, пока его свойство Enabled не примет значения False . Для моделирования времени появления заявок и времени анализа задания ЭВМ используются функции получения времени get _ st _ time , которые реализуются с помощью генератора случайных чисел Randomize , где с помощью функции Random указывается интервал моделирования времени. При нажатии на кнопку Пауза происходит выключение таймера, то есть его свойство Enabled примает значения False . Активизировать процесс можно нажатием на кнопку Старт, или при выборе пункта Моделирование, или нажатием на соответствующую кнопку панели инструментов. При нажатии на кнопку Стоп происходит остановка работы системы и возврат ее в исходное состояние, то есть присвоение всем параметрам системы и используемым переменным начальных значений. При окончании процесса моделирования на экран выводится окно Form 11 , содержащее сообщение об этом и система готова к новому запуску. 3.4 Используемые технические средства, вызов, загрузка Программа представленная в данной курсовой работе “ Моделирование системы автоматизации проектирования ” имеет следующие требования к аппаратному и программному обеспечению: - персональный компьютер на базе микропроцессора Intel 80386 и выше; - SVGA совместимая видеокарта; - требования к операционной системе ограничены требованиями компилятора языка Delphi 4.0 , т.е. Windows версии 3.11 или выше. В силу того, что существуют определенные различия между предыдущими и последующими поколениями компьютеров и написание данной программы проводилось на персональный компьютер с микропроцессором фирмы Intel PentiumPro с частотой 166 MHz, то для корректной работы программы рекомендуется использовать следующее аппаратное и программное обеспечение: - персональный компьютер на базе микропроцессора фирмы Intel PentiumPro с частотой 166 MHz ; - видеокарта SVGA; - операционная система Windows 95 или выше. Исходный текст программы находится в файлах под именами unit 1.pas, unit 2. pas , unit 3. pas , unit 4. pas , unit 5. pas , unit 6. pas , unit 7 . pas , unit 8 . pas , unit 9 . pas , unit 10 . pas , unit 11 . pas , unit 12 . pas и занимают 43,2 килобайт, исполняемый модуль под име нем project 1 .exe - 839 килобайт. Возможны два варианта запуска программы “ Моделирование системы автоматизации проектирования ”. В первом варианте запуск производится из интегрированной среды Delphi 4.0. Для этого нужно войти в эту среду из каталога C :\ Program Files \ Borland \ Delphi 4\ Bin и запустить файл delphi32.exe. После запуска интегрированной среды нужно найти файл unit 1 .pas и запустить его на выполнение путем нажатия клавиши F9. Вторым вариантом запуска является запуск выполняемого модуля project 1 .exe. Для этого нужно в оболочке Norton (Volcov) Commander, либо Dos Navigator, либо Windows Commander , либо в проводнике Windows навести светящийся прямоугольник на запись project 1 .exe и нажать клавишу . 3.5 Конторольный пример Результат выполнения процесса моделирования при начальных параметрах системы, использующих данные из постановки задачи следующие. Количество набранных строк от: - 1-го проектировщика:171; - 2-го проектировщика:173; - 3-го проектировщика:175. Количество обработанных строк от: - 1-го проектировщика:145; - 2-го проектировщика:146; - 3-го проектировщика:151. Количество полученных заданий от: - 1-го проектировщика:14; - 2-го проектировщика:14; - 3-го проектировщика:15. Количество обработанных заданий от: - 1-го проектировщика:14; - 2-го проектировщика:14; - 3-го проектировщика:15. Вероятность простоя: - 1-го проектировщика:0,1520; - 2-го проектировщика:0,1560; - 3-го проектировщика:0,1371; Коэффициент нагрузки ЭВМ: 0,8087. ЗАКЛЮЧЕНИЕ Данная курсовая работа предназначалась для написания программы, которая моделировала бы процесс функционирования системы автоматизации проектирования . Данная система была реализована на основе математической модели, называемой Q -схемой. Данная задача была успешна решена и в итоге поставленная цель была перевыполнена, так программа реализует процесс функционирования системы не только с начальными параметрами системы, но и имеет возможность их изменения. Также данная программа, при небольших изменениях, может реализовать работу системы, включающей не только три терминала и ЭВМ, но и любое другое количество обслуживающих приборов. В программе также реализован механизм выдаче статистических данных. Таким образом пользователь может фиксировать результаты работы системы в любой момент времени. Программа имеет удобный интерфейс, который позволяет ориентироваться в процессе функционирования системы. Программа была написана на языке визуального программирования Delphi 4.0., так что любой человек, разбирающийся в коде программы может легко дополнить ее для реализации более сложных процессов, происходящих по условиям функционирования Q -схемы. Итак, можно сделать вывод, что поставленная цель была достигнута и что материал, изложенный на лекциях практических занятиях, применен в полной мере. СПИСОК ИСПОЛЬЗОВАНОЙ ЛИТЕРАТУРЫ 1. Епанешников А.М., Епанешников В.А. Delphi 4 Среда разработки. – М.: Диалог-Мифи, 1999. 2. Методические указания по выполнению курсового проекта по дисциплине “ Основы системного анализа объектов и процессов компьютеризации ” / В.О.Костин - Херсон.2000. 3. Советов В.Я., Яковлев С.А. Моделирование систем. Куpсовое пpоектиpование, М.Высшая школа,1988. - 135c. 4. Советов Б.Я., Яковлев С.А. Лабораторный практикум.-M.: Высш. шк. 1983. - 260 с. 5. С оветов Б.Я., Яковлев С.А. Моделирование систем.- М.: Высш. шк., 1985. – 275 с. 6. Фаронов В. В. Delphi 5 Учебный курс. - М.: Нолидж, 2001. 7. Энциклопедический словарь юного химика. – М. Педагогика, 1982. Приложение А Текст программы Модуль 1: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ComCtrls, ToolWin, ImgList, jpeg, ExtCtrls, StdCtrls, Gauges, Spin; type stroka=record time:integer; number:integer; end; TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; Q1: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; ToolBar1: TToolBar; Bevel1: TBevel; Shape1: TShape; Shape2: TShape; Shape3: TShape; Shape4: TShape; Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Shape5: TShape; Shape6: TShape; Shape7: TShape; Shape8: TShape; Shape9: TShape; Shape10: TShape; Shape11: TShape; Shape12: TShape; Shape13: TShape; Shape14: TShape; Shape15: TShape; Shape16: TShape; Shape17: TShape; Shape18: TShape; Shape19: TShape; Shape20: TShape; Shape21: TShape; ImageList1: TImageList; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; ToolButton8: TToolButton; ToolButton9: TToolButton; ToolButton10: TToolButton; ToolButton11: TToolButton; ToolButton12: TToolButton; ToolButton13: TToolButton; Shape22: TShape; Shape23: TShape; Shape24: TShape; Shape25: TShape; Shape26: TShape; Shape27: TShape; Shape28: TShape; Shape29: TShape; Shape30: TShape; Shape31: TShape; Shape32: TShape; Shape33: TShape; Shape34: TShape; Shape35: TShape; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Panel1: TPanel; Image6: TImage; Image7: TImage; Image8: TImage; Image9: TImage; Image10: TImage; Panel2: TPanel; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Bevel2: TBevel; Edit1: TEdit; Bevel3: TBevel; Bevel4: TBevel; Bevel5: TBevel; Bevel6: TBevel; Bevel7: TBevel; Bevel8: TBevel; Bevel10: TBevel; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; Edit8: TEdit; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; SpinEdit3: TSpinEdit; SpinEdit4: TSpinEdit; SpinEdit5: TSpinEdit; SpinEdit6: TSpinEdit; SpinEdit7: TSpinEdit; Label24: TLabel; Label25: TLabel; SpinEdit8: TSpinEdit; SpinEdit9: TSpinEdit; SpinEdit10: TSpinEdit; Label26: TLabel; Label27: TLabel; Gauge1: TGauge; Gauge2: TGauge; Gauge3: TGauge; Gauge4: TGauge; Gauge5: TGauge; Gauge6: TGauge; Gauge7: TGauge; Gauge8: TGauge; Gauge9: TGauge; Label28: TLabel; Label29: TLabel; Label30: TLabel; Label31: TLabel; Label32: TLabel; Label33: TLabel; Label34: TLabel; Label35: TLabel; Label36: TLabel; Label37: TLabel; Label38: TLabel; Label39: TLabel; Label40: TLabel; Label41: TLabel; Label42: TLabel; Timer1: TTimer; Label43: TLabel; Label44: TLabel; Label45: TLabel; Shape36: TShape; Shape37: TShape; procedure N9Click(Sender: TObject); procedure Q1Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure Image10Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure ToolButton12Click(Sender: TObject); procedure ToolButton13Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure Image6Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure Image7Click(Sender: TObject); procedure SpinEdit1Change(Sender: TObject); procedure SpinEdit3Change(Sender: TObject); procedure SpinEdit4Change(Sender: TObject); procedure SpinEdit2Change(Sender: TObject); procedure SpinEdit6Change(Sender: TObject); procedure SpinEdit5Change(Sender: TObject); procedure SpinEdit7Change(Sender: TObject); procedure SpinEdit10Change(Sender: TObject); procedure SpinEdit8Change(Sender: TObject); procedure SpinEdit9Change(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Image8Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure ToolButton11Click(Sender: TObject); procedure Image9Click(Sender: TObject); private Private declarations public Public declarations end; var Form1: TForm1; takt1,takt2,takt3:integer; time_st_term,time_st_EVM:integer; obr_st1,obr_st2,obr_st3:integer; time_zadan_EVM:integer; time_zadan_term:integer; work_system:integer; nakopitel:array [1..1000] of stroka; EVM:stroka; a,b,c:stroka; time_st1,time_st2,time_st3:integer; index_nakop:integer; time_stEVM:integer; k1:array [1..10] of integer; k2:array [1..10] of integer; k3:array [1..10] of integer; i1,i2,i3:integer; time_EVM_zadan:integer; flag1,flag2,flag3,flag4:boolean; time_analiz:integer; time1_analiz,time2_analiz,time3_analiz:integer; time_zanytat1,time_zanytat2,time_zanytat3,time_obch,time_zagruz:integer; implementation uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit9, Unit7, Unit8, Unit10, Unit11; $R *.DFM function get_st_time:integer; var temp1,temp2,flag:integer; begin temp2:=Random(Form1.SpinEdit3.Value); flag:=Random(2); if flag=1 then temp1:=Form1.SpinEdit1.Value+temp2 else temp1:=Form1.SpinEdit1.Value-temp2; get_st_time:=temp1; end; function get_zadan_time:integer; var temp1,temp2,flag:integer; begin temp2:=Random(Form1.SpinEdit10.Value); flag:=Random(2); if flag=1 then temp1:=Form1.SpinEdit7.Value+temp2 else temp1:=Form1.SpinEdit7.Value-temp2; get_zadan_time:=temp1; end; procedure get_stroka1; begin a.time:=get_st_time; a.number:=1; end; procedure get_stroka2; begin b.time:=get_st_time; b.number:=2; end; procedure get_stroka3; begin c.time:=get_st_time; c.number:=3; end; procedure stop; begin Form1.Gauge1.Progress:=0; Form1.Gauge2.Progress:=0; Form1.Gauge3.Progress:=0; Form1.Gauge4.Progress:=0; Form1.Gauge5.Progress:=0; Form1.Gauge6.Progress:=0; Form1.Gauge7.Progress:=0; Form1.Gauge8.Progress:=0; Form1.Gauge9.Progress:=0; Form1.Timer1.Enabled:=false; takt1:=0;takt2:=0;takt3:=0; get_stroka1; get_stroka2; get_stroka3; time_st1:=0; time_st2:=0; time_st3:=0; index_nakop:=0; Form1.Timer1.Enabled:=false; work_system:=0; time_stEVM:=0; i1:=0;i2:=0;i3:=0; time_EVM_zadan:=0; flag1:=false;flag2:=false;flag3:=false;flag4:=false; time1_analiz:=0;time2_analiz:=0;time3_analiz:=0; time_zanytat1:=0;time_zanytat2:=0;time_zanytat3:=0; time_obch:=0;time_zagruz:=0; Form1.Shape1.Brush.Color:=clwhite; Form1.Shape2.Brush.Color:=clwhite; Form1.Shape3.Brush.Color:=clwhite; Form1.Shape4.Brush.Color:=clwhite; Form1.Label43.Caption:='( )'; Form1.Label44.Caption:='( )'; Form1.Label45.Caption:='( )'; Form1.Label5.Caption:='( )'; Form1.Label7.Caption:=' -го терминала'; Form1.Shape18.Pen.Color:=clblack; Form1.Shape19.Pen.Color:=clblack; Form1.Shape20.Pen.Color:=clblack; Form1.Shape21.Pen.Color:=clblack; Form1.Shape22.Pen.Color:=clblack; Form1.Shape15.Pen.Color:=clblack; Form1.Shape16.Pen.Color:=clblack; Form1.Shape17.Pen.Color:=clblack; Form1.Shape12.Pen.Color:=clblack; Form1.Shape13.Pen.Color:=clblack; Form1.Shape14.Pen.Color:=clblack; Form1.Shape26.Pen.Color:=clblack; Form1.Shape27.Pen.Color:=clblack; Form1.Shape37.Pen.Color:=clblack; Form1.Shape30.Pen.Color:=clblack; Form1.Shape31.Pen.Color:=clblack; Form1.Shape32.Pen.Color:=clblack; Form1.Shape28.Pen.Color:=clblack; Form1.Shape29.Pen.Color:=clblack; Form1.Shape32.Pen.Color:=clblack; Form1.Shape8.Pen.Color:=clblack; Form1.Shape36.Pen.Color:=clblack; Form1.Shape6.Pen.Color:=clblack; Form1.Shape9.Pen.Color:=clblack; Form1.Shape7.Pen.Color:=clblack; Form1.Shape25.Pen.Color:=clblack; Form1.Shape24.Pen.Color:=clblack; Form1.Shape23.Pen.Color:=clblack; Form1.Shape10.Pen.Color:=clblack; Form1.Shape33.Pen.Color:=clblack; Form1.Shape34.Pen.Color:=clblack; Form1.Edit1.Text:='0'; Form1.Edit2.Text:='0'; Form1.Edit3.Text:='0'; Form1.Edit4.Text:='0'; Form1.Edit5.Text:='0'; Form1.Edit6.Text:='0'; Form1.Edit7.Text:='0'; Form1.Edit8.Text:='0'; Form5.Edit1.Text:='0'; Form5.Edit2.Text:='0'; Form5.Edit3.Text:='0'; Form5.Edit4.Text:='0'; Form5.Edit5.Text:='0'; Form5.Edit6.Text:='0'; Form5.Edit7.Text:='0'; Form5.Edit8.Text:='0'; Form5.Edit9.Text:='0'; Form5.Edit10.Text:='0'; Form5.Edit11.Text:='0'; Form5.Edit12.Text:='0'; Form5.Edit13.Text:='0'; Form5.Edit14.Text:='0'; Form5.Edit15.Text:='0'; Form5.Edit16.Text:='0'; Form1.SpinEdit1.Value:=10; Form1.SpinEdit3.Value:=5; Form1.SpinEdit4.Value:=3; Form1.SpinEdit2.Value:=5; Form1.SpinEdit6.Value:=500; Form1.SpinEdit5.Value:=10; Form1.SpinEdit7.Value:=10; Form1.SpinEdit10.Value:=3; Form1.SpinEdit8.Value:=30; Form1.SpinEdit9.Value:=6; Form8.SpinEdit1.Value:=10; Form8.SpinEdit3.Value:=5; Form8.SpinEdit4.Value:=3; Form8.SpinEdit2.Value:=5; Form8.SpinEdit6.Value:=500; Form8.SpinEdit5.Value:=10; Form8.SpinEdit7.Value:=10; Form8.SpinEdit10.Value:=3; Form8.SpinEdit8.Value:=30; Form8.SpinEdit9.Value:=6; end; procedure TForm1.N9Click(Sender: TObject); begin Form2.Show; end; procedure TForm1.Q1Click(Sender: TObject); begin Form6.Show; end; procedure TForm1.N11Click(Sender: TObject); begin Form4.Show; end; procedure TForm1.N12Click(Sender: TObject); begin AboutBox2.Show; end; procedure TForm1.N8Click(Sender: TObject); begin close; end; procedure TForm1.Image10Click(Sender: TObject); begin close; end; procedure TForm1.ToolButton8Click(Sender: TObject); begin Form2.Show; end; procedure TForm1.ToolButton9Click(Sender: TObject); begin Form6.Show; end; procedure TForm1.ToolButton12Click(Sender: TObject); begin Form4.Show; end; procedure TForm1.ToolButton13Click(Sender: TObject); begin AboutBox2.Show; end; procedure TForm1.N6Click(Sender: TObject); begin Form5.Show; end; procedure TForm1.N5Click(Sender: TObject); begin Form8.Show; end; procedure TForm1.ToolButton5Click(Sender: TObject); begin Form8.Show; end; procedure TForm1.ToolButton6Click(Sender: TObject); begin Form5.Show; end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; takt1:=0;takt2:=0;takt3:=0; get_stroka1; get_stroka2; get_stroka3; time_st1:=0; time_st2:=0; time_st3:=0; index_nakop:=0; Timer1.Enabled:=false; work_system:=0; time_stEVM:=0; i1:=0;i2:=0;i3:=0; time_EVM_zadan:=0; flag1:=false;flag2:=false;flag3:=false;flag4:=false; time1_analiz:=0;time2_analiz:=0;time3_analiz:=0; time_zanytat1:=0;time_zanytat2:=0;time_zanytat3:=0; time_obch:=0;time_zagruz:=0; end; procedure TForm1.Timer1Timer(Sender: TObject); var i:integer; begin Timer1.Interval:=SpinEdit6.Value; Timer1.Interval:=Form8.SpinEdit6.Value; inc(work_system); Gauge1.Progress:=round((work_system*100)/(SpinEdit9.Value*360)); Gauge1.Progress:=round((work_system*100)/(Form8.SpinEdit9.Value*360)); time_st_term:=SpinEdit2.Value; time_st_EVM:=SpinEdit4.Value; Shape10.Pen.Color:=clblack; Shape33.Pen.Color:=clblack; Shape34.Pen.Color:=clblack; time_analiz:=SpinEdit8.Value; if work_system>SpinEdit9.Value*360 then begin stop; Timer1.Enabled:=false; Form11.Show; end; begin if time1_analiz=0 then inc(takt1); if time2_analiz=0 then inc(takt2); if time3_analiz=0 then inc(takt3); если сформировалась строка от первого терминала if takt1=a.time then begin Shape23.Pen.Color:=clred; takt1:=0; get_stroka1; inc(time_st1); Gauge9.Progress:=Gauge9.Progress+Round(100/time_st_term); Shape1.Brush.Color:=clyellow; Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1); Form5.Edit1.Text:=IntToStr(StrToInt(Form5.Edit1.Text)+1); end else begin Shape23.Pen.Color:=clblack; end; если сформировалась строка от второго терминала if takt2=b.time then begin Shape24.Pen.Color:=clred; takt2:=0; get_stroka2; inc(time_st2); Gauge3.Progress:=Gauge3.Progress+Round(100/time_st_term); Shape2.Brush.Color:=clyellow; Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1); Form5.Edit2.Text:=IntToStr(StrToInt(Form5.Edit2.Text)+1); end else Shape24.Pen.Color:=clblack; если сформировалась строка от третьего терминала if takt3=c.time then begin Shape25.Pen.Color:=clred; takt3:=0; get_stroka3; inc(time_st3); Gauge5.Progress:=Gauge5.Progress+Round(100/time_st_term); Shape3.Brush.Color:=clyellow; Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1); Form5.Edit3.Text:=IntToStr(StrToInt(Form5.Edit3.Text)+1); end else Shape25.Pen.Color:=clblack; время обработки строки первым терминалом if (time_st1<>0)and(time_st1<=time_st_term) then begin inc(time_st1); if time_st1>2 then begin Shape1.Brush.Color:=clyellow; Gauge9.Progress:=Gauge9.Progress+Round(100/time_st_term); end; end else begin time_st1:=0; Shape1.Brush.Color:=clwhite; Gauge9.Progress:=0; end; Shape6.Pen.Color:=clblack; Shape9.Pen.Color:=clblack; if time_st1-1=time_st_term then begin inc(index_nakop); nakopitel[index_nakop]:=a; Label5.Caption:='('+IntToStr(index_nakop)+')'; Shape6.Pen.Color:=clred; Shape9.Pen.Color:=clred; Shape10.Pen.Color:=clred; end; время обработки строки вторым терминалом if (time_st2<>0)and(time_st2<=time_st_term) then begin inc(time_st2); if time_st2>2 then begin Shape2.Brush.Color:=clyellow; Gauge3.Progress:=Gauge3.Progress+Round(100/time_st_term); end; end else begin time_st2:=0; Shape2.Brush.Color:=clwhite; Gauge3.Progress:=0; end; Shape7.Pen.Color:=clblack; if time_st2-1=time_st_term then begin inc(index_nakop); nakopitel[index_nakop]:=b; Label5.Caption:='('+IntToStr(index_nakop)+')'; Shape7.Pen.Color:=clred; Shape10.Pen.Color:=clred; end; время обработки строки третьим терминалом if (time_st3<>0)and(time_st3<=time_st_term) then begin inc(time_st3); if time_st3>2 then begin Shape3.Brush.Color:=clyellow; Gauge5.Progress:=Gauge5.Progress+Round(100/time_st_term); end; end else begin time_st3:=0; Shape3.Brush.Color:=clwhite; Gauge5.Progress:=0; end; Shape8.Pen.Color:=clblack; Shape36.Pen.Color:=clblack; if time_st3-1=time_st_term then begin inc(index_nakop); nakopitel[index_nakop]:=c; Label5.Caption:='('+IntToStr(index_nakop)+')'; Shape8.Pen.Color:=clred; Shape36.Pen.Color:=clred; Shape10.Pen.Color:=clred; end; Shape28.Pen.Color:=clblack; Shape29.Pen.Color:=clblack; Shape32.Pen.Color:=clblack; обработка задания от первого терминала if (k1[i1]=SpinEdit5.Value)and(time_EVM_zadan=0) then begin flag1:=true; time_zadan_EVM:=get_zadan_time; inc(time_EVM_zadan); Shape4.Brush.Color:=clred; Label7.Caption:='1-го терминала'; Edit3.Text:=IntToStr(StrToInt(Edit3.Text)+1); Form5.Edit7.Text:=IntToStr(StrToInt(Form5.Edit7.Text)+1); i1:=0; for i:=1 to SpinEdit5.Value do k1[i]:=0; Label43.Caption:='( )'; Shape28.Pen.Color:=clred; Shape29.Pen.Color:=clred; Shape32.Pen.Color:=clred; Shape33.Pen.Color:=clred; Shape34.Pen.Color:=clred; Gauge8.Progress:=Gauge8.Progress+round(100/time_zadan_EVM); end; время выполнения задания от первого терминала if (time_EVM_zadan<>0)and(time_EVM_zadan<=time_zadan_EVM)and(flag1=true) then begin inc(time_EVM_zadan); if time_EVM_zadan>2 then begin Gauge8.Progress:=Gauge8.Progress+round(100/time_zadan_EVM); Shape4.Brush.Color:=clred; end; end else begin if (Shape4.Brush.Color<>clgreen)and(flag2=false)and(flag3=false) then begin Shape4.Brush.Color:=clwhite; Label7.Caption:=' -го терминала'; if (time_EVM_zadan-1=time_zadan_EVM)and(time_EVM_zadan<>0)then begin Edit4.Text:=IntToStr(StrToInt(Edit4.Text)+1); Form5.Edit10.Text:=IntToStr(StrToInt(Form5.Edit10.Text)+1); time1_analiz:=1; Shape1.Brush.Color:=clblue; Gauge4.Progress:=Gauge4.Progress+round(100/time_analiz); end; time_EVM_zadan:=0; Gauge8.Progress:=0; end; flag1:=false; end; обработка задания от второго терминала Shape30.Pen.Color:=clblack; Shape31.Pen.Color:=clblack; Shape32.Pen.Color:=clblack; if (k2[i2]=SpinEdit5.Value)and(time_EVM_zadan=0) then begin flag2:=true; time_zadan_EVM:=get_zadan_time; inc(time_EVM_zadan); Shape4.Brush.Color:=clred; Label7.Caption:='2-го терминала'; Edit3.Text:=IntToStr(StrToInt(Edit3.Text)+1); Form5.Edit8.Text:=IntToStr(StrToInt(Form5.Edit8.Text)+1); i2:=0; for i:=1 to SpinEdit5.Value do k2[i]:=0; Label44.Caption:='( )'; Shape30.Pen.Color:=clred; Shape31.Pen.Color:=clred; Shape32.Pen.Color:=clred; Shape33.Pen.Color:=clred; Shape34.Pen.Color:=clred; Gauge8.Progress:=Gauge8.Progress+round(100/time_zadan_EVM); end; время выполнения задания от второго терминала if (time_EVM_zadan<>0)and(time_EVM_zadan<=time_zadan_EVM)and(flag2=true) then begin inc(time_EVM_zadan); if time_EVM_zadan>2 then begin Gauge8.Progress:=Gauge8.Progress+round(100/time_zadan_EVM); Shape4.Brush.Color:=clred; end; end else begin if (Shape4.Brush.Color<>clgreen)and(flag1=false)and(flag3=false) then begin Shape4.Brush.Color:=clwhite; Label7.Caption:=' -го терминала'; if (time_EVM_zadan-1=time_zadan_EVM)and(time_EVM_zadan<>0)then begin Edit4.Text:=IntToStr(StrToInt(Edit4.Text)+1); Form5.Edit11.Text:=IntToStr(StrToInt(Form5.Edit11.Text)+1); time2_analiz:=1; Shape2.Brush.Color:=clblue; Gauge6.Progress:=Gauge6.Progress+round(100/time_analiz); end; time_EVM_zadan:=0; Gauge8.Progress:=0; end; flag2:=false; end; обработка задания от третьего терминала Shape26.Pen.Color:=clblack; Shape27.Pen.Color:=clblack; Shape37.Pen.Color:=clblack; if (k3[i3]=SpinEdit5.Value)and(time_EVM_zadan=0) then begin flag3:=true; time_zadan_EVM:=get_zadan_time; inc(time_EVM_zadan); Shape4.Brush.Color:=clred; Label7.Caption:='3-го терминала'; Edit3.Text:=IntToStr(StrToInt(Edit3.Text)+1); Form5.Edit9.Text:=IntToStr(StrToInt(Form5.Edit9.Text)+1); i3:=0; for i:=1 to SpinEdit5.Value do k3[i]:=0; Label45.Caption:='( )'; Shape26.Pen.Color:=clred; Shape27.Pen.Color:=clred; Shape37.Pen.Color:=clred; Shape33.Pen.Color:=clred; Shape34.Pen.Color:=clred; Gauge8.Progress:=Gauge8.Progress+round(100/time_zadan_EVM); end; время выполнения задания от третьего терминала if (time_EVM_zadan<>0)and(time_EVM_zadan<=time_zadan_EVM)and(flag3=true) then begin inc(time_EVM_zadan); if time_EVM_zadan>2 then begin Gauge8.Progress:=Gauge8.Progress+round(100/time_zadan_EVM); Shape4.Brush.Color:=clred; end; end else begin if (Shape4.Brush.Color<>clgreen)and(flag1=false)and(flag2=false) then begin Shape4.Brush.Color:=clwhite; Label7.Caption:=' -го терминала'; if (time_EVM_zadan-1=time_zadan_EVM)and(time_EVM_zadan<>0)then begin Edit4.Text:=IntToStr(StrToInt(Edit4.Text)+1); Form5.Edit12.Text:=IntToStr(StrToInt(Form5.Edit12.Text)+1); Shape3.Brush.Color:=clblue; Gauge7.Progress:=Gauge7.Progress+round(100/time_analiz); time3_analiz:=1; end; time_EVM_zadan:=0; Gauge8.Progress:=0; end; flag3:=false; end; анализ задания первым терминалом if (time1_analiz<>0)and(time1_analiz<=time_analiz) then begin inc(time1_analiz); if time1_analiz>2 then begin Shape1.Brush.Color:=clblue; Gauge4.Progress:=Gauge4.Progress+round(100/time_analiz); end; end else begin if Shape1.Brush.Color<>clyellow then Shape1.Brush.Color:=clwhite; Gauge4.Progress:=0; time1_analiz:=0; end; анализ задания вторым терминалом if (time2_analiz<>0)and(time2_analiz<=time_analiz) then begin inc(time2_analiz); if time2_analiz>2 then begin Shape2.Brush.Color:=clblue; Gauge6.Progress:=Gauge6.Progress+round(100/time_analiz); end; end else begin if Shape2.Brush.Color<>clyellow then Shape2.Brush.Color:=clwhite; Gauge6.Progress:=0; time2_analiz:=0; end; анализ задания третьим терминалом if (time3_analiz<>0)and(time3_analiz<=time_analiz) then begin inc(time3_analiz); if time3_analiz>2 then begin Shape3.Brush.Color:=clblue; Gauge7.Progress:=Gauge7.Progress+round(100/time_analiz); end; end else begin if Shape3.Brush.Color<>clyellow then Shape3.Brush.Color:=clwhite; Gauge7.Progress:=0; time3_analiz:=0; end; заполняем ЭВМ строкой if (index_nakop<>0)and(flag4=false)and(flag1=false)and(flag2=false)and(flag3=false) then begin flag4:=true; Shape11.Pen.Color:=clred; EVM:=nakopitel[1]; for i:=1 to index_nakop-1 do nakopitel[i]:=nakopitel[i+1]; nakopitel[index_nakop].time:=0; nakopitel[index_nakop].number:=0; dec(index_nakop); inc(time_stEVM); Shape4.Brush.Color:=clgreen; Gauge2.Progress:=Gauge2.Progress+round(100/time_st_EVM); Label5.Caption:='('+IntToStr(index_nakop)+')'; end else Shape11.Pen.Color:=clblack; if (time_stEVM<>0)and(time_stEVM<=time_st_EVM)and(flag4=true)then begin inc(time_stEVM); if time_stEVM>2 then begin Shape4.Brush.Color:=clgreen; Gauge2.Progress:=Gauge2.Progress+round(100/time_st_EVM)+1; end; end else begin if (flag1=false)and(flag2=false)and(flag3=false) then begin Shape4.Brush.Color:=clwhite; end; Gauge2.Progress:=0; time_stEVM:=0; flag4:=false; end; if time_stEVM-1=time_st_EVM then begin if EVM.number=1 then begin Shape18.Pen.Color:=clred; Shape19.Pen.Color:=clred; Shape20.Pen.Color:=clred; Shape21.Pen.Color:=clred; Shape22.Pen.Color:=clred; inc(i1); k1[i1]:=i1; Label43.Caption:='('+IntToStr(i1)+')'; Edit2.Text:=IntToStr(StrToInt(Edit2.Text)+1); Form5.Edit6.Text:=IntToStr(StrToInt(Form5.Edit6.Text)+1); end; if EVM.number=2 then begin Shape15.Pen.Color:=clred; Shape16.Pen.Color:=clred; Shape17.Pen.Color:=clred; inc(i2); k2[i2]:=i2; Label44.Caption:='('+IntToStr(i2)+')'; Edit2.Text:=IntToStr(StrToInt(Edit2.Text)+1); Form5.Edit5.Text:=IntToStr(StrToInt(Form5.Edit5.Text)+1); end; if EVM.number=3 then begin Shape12.Pen.Color:=clred; Shape13.Pen.Color:=clred; Shape14.Pen.Color:=clred; inc(i3); k3[i3]:=i3; Label45.Caption:='('+IntToStr(i3)+')'; Edit2.Text:=IntToStr(StrToInt(Edit2.Text)+1); Form5.Edit4.Text:=IntToStr(StrToInt(Form5.Edit4.Text)+1); end; end else begin Shape18.Pen.Color:=clblack; Shape19.Pen.Color:=clblack; Shape20.Pen.Color:=clblack; Shape21.Pen.Color:=clblack; Shape22.Pen.Color:=clblack; Shape15.Pen.Color:=clblack; Shape16.Pen.Color:=clblack; Shape17.Pen.Color:=clblack; Shape12.Pen.Color:=clblack; Shape13.Pen.Color:=clblack; Shape14.Pen.Color:=clblack; end; if Shape1.Brush.Color=clblue then time_zanytat1:=time_zanytat1+1; if Shape2.Brush.Color=clblue then time_zanytat2:=time_zanytat2+1; if Shape3.Brush.Color=clblue then time_zanytat3:=time_zanytat3+1; if (Shape4.Brush.Color=clgreen)or(Shape4.Brush.Color=clred) then inc(time_zagruz); if work_system<>0 then begin Edit8.Text:=FloatToStr(time_zagruz/work_system); Form5.Edit16.Text:=FloatToStr(time_zagruz/work_system); end; if time_zagruz<>0 then Edit5.Text:=FloatToStr((work_system-time_zanytat1)/time_zagruz); if StrToInt(Form5.Edit1.Text)<>0 then begin Edit5.Text:=FloatToStr((StrToInt(Form5.Edit1.Text)-StrToInt(Form5.Edit6.Text))/StrToInt(Form5.Edit1.Text)); Form5.Edit13.Text:=FloatToStr((StrToInt(Form5.Edit1.Text)-StrToInt(Form5.Edit6.Text))/StrToInt(Form5.Edit1.Text)); end; if StrToInt(Form5.Edit2.Text)<>0 then begin Edit6.Text:=FloatToStr((StrToInt(Form5.Edit2.Text)-StrToInt(Form5.Edit5.Text))/StrToInt(Form5.Edit2.Text)); Form5.Edit14.Text:=FloatToStr((StrToInt(Form5.Edit2.Text)-StrToInt(Form5.Edit5.Text))/StrToInt(Form5.Edit2.Text)); end; if StrToInt(Form5.Edit3.Text)<>0 then begin Edit7.Text:=FloatToStr((StrToInt(Form5.Edit3.Text)-StrToInt(Form5.Edit4.Text))/StrToInt(Form5.Edit3.Text)); Form5.Edit15.Text:=FloatToStr((StrToInt(Form5.Edit3.Text)-StrToInt(Form5.Edit4.Text))/StrToInt(Form5.Edit3.Text)); end; end; end; procedure TForm1.ToolButton1Click(Sender: TObject); begin Timer1.Enabled:=true; end; procedure TForm1.N4Click(Sender: TObject); begin Timer1.Enabled:=true; end; procedure TForm1.Image6Click(Sender: TObject); begin Timer1.Enabled:=true; end; procedure TForm1.ToolButton2Click(Sender: TObject); begin Timer1.Enabled:=false; end; procedure TForm1.Image7Click(Sender: TObject); begin Timer1.Enabled:=false; end; procedure TForm1.SpinEdit1Change(Sender: TObject); begin Form8.SpinEdit1.Value:=SpinEdit1.Value; end; procedure TForm1.SpinEdit3Change(Sender: TObject); begin Form8.SpinEdit3.Value:=SpinEdit3.Value; end; procedure TForm1.SpinEdit4Change(Sender: TObject); begin Form8.SpinEdit4.Value:=SpinEdit4.Value; end; procedure TForm1.SpinEdit2Change(Sender: TObject); begin Form8.SpinEdit2.Value:=SpinEdit2.Value; end; procedure TForm1.SpinEdit6Change(Sender: TObject); begin Form8.SpinEdit6.Value:=SpinEdit6.Value; end; procedure TForm1.SpinEdit5Change(Sender: TObject); begin Form8.SpinEdit5.Value:=SpinEdit5.Value; end; procedure TForm1.SpinEdit7Change(Sender: TObject); begin Form8.SpinEdit7.Value:=SpinEdit7.Value; end; procedure TForm1.SpinEdit10Change(Sender: TObject); begin Form8.SpinEdit10.Value:=SpinEdit10.Value; end; procedure TForm1.SpinEdit8Change(Sender: TObject); begin Form8.SpinEdit8.Value:=SpinEdit8.Value; end; procedure TForm1.SpinEdit9Change(Sender: TObject); begin Form8.SpinEdit9.Value:=SpinEdit9.Value; end; procedure TForm1.ToolButton3Click(Sender: TObject); begin stop; end; procedure TForm1.Image8Click(Sender: TObject); begin stop; end; procedure TForm1.N10Click(Sender: TObject); begin Form7.Show; end; procedure TForm1.ToolButton11Click(Sender: TObject); begin Form7.Show; end; procedure TForm1.Image9Click(Sender: TObject); begin Form7.Show; end; end. Модуль 2: unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm2 = class(TForm) Memo1: TMemo; Label1: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private Private declarations public Public declarations end; var Form2: TForm2; implementation uses Unit3; $R *.DFM procedure TForm2.BitBtn1Click(Sender: TObject); begin close; end; procedure TForm2.BitBtn2Click(Sender: TObject); begin Form3.Show; end; end. Модуль 3: unit Unit3; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm3 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; BitBtn1: TBitBtn; private Private declarations public Public declarations end; var Form3: TForm3; implementation $R *.DFM end. Модуль 4: unit Unit4; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm4 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label5: TLabel; Label14: TLabel; BitBtn1: TBitBtn; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; procedure BitBtn1Click(Sender: TObject); private Private declarations public Public declarations end; var Form4: TForm4; implementation $R *.DFM procedure TForm4.BitBtn1Click(Sender: TObject); begin close; end; end. Модуль 5: unit Unit5; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TForm5 = class(TForm) Label8: TLabel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Bevel2: TBevel; Bevel1: TBevel; Bevel3: TBevel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label9: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Bevel4: TBevel; Bevel5: TBevel; Bevel6: TBevel; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Label10: TLabel; Label7: TLabel; Label11: TLabel; Label12: TLabel; Bevel7: TBevel; Bevel8: TBevel; Bevel9: TBevel; Edit7: TEdit; Edit8: TEdit; Edit9: TEdit; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Bevel10: TBevel; Edit10: TEdit; Bevel11: TBevel; Edit11: TEdit; Bevel12: TBevel; Edit12: TEdit; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Edit13: TEdit; Bevel13: TBevel; Bevel14: TBevel; Edit14: TEdit; Edit15: TEdit; Bevel15: TBevel; Label21: TLabel; Edit16: TEdit; Bevel16: TBevel; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private Private declarations public Public declarations end; var Form5: TForm5; implementation $R *.DFM procedure TForm5.BitBtn1Click(Sender: TObject); begin close; end; end. Модуль 6: unit Unit6; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm6 = class(TForm) Image1: TImage; BitBtn1: TBitBtn; private Private declarations public Public declarations end; var Form6: TForm6; implementation $R *.DFM end. Модуль 7: unit Unit7; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm7 = class(TForm) Bevel1: TBevel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Image1: TImage; Label4: TLabel; Label5: TLabel; Image2: TImage; Label6: TLabel; Label7: TLabel; Image3: TImage; Label8: TLabel; Image4: TImage; Label9: TLabel; Label10: TLabel; Label11: TLabel; Image5: TImage; Image6: TImage; Splitter1: TSplitter; Splitter2: TSplitter; Bevel2: TBevel; Label12: TLabel; Label13: TLabel; Shape1: TShape; Label14: TLabel; Label15: TLabel; Label16: TLabel; Shape5: TShape; Label17: TLabel; Shape10: TShape; Shape2: TShape; Label18: TLabel; Shape3: TShape; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Shape4: TShape; Label23: TLabel; Label24: TLabel; Shape6: TShape; Label25: TLabel; Label26: TLabel; Label27: TLabel; Label28: TLabel; Label29: TLabel; Label30: TLabel; Label31: TLabel; Bevel3: TBevel; Label32: TLabel; Label33: TLabel; Label34: TLabel; Label35: TLabel; Label36: TLabel; Label37: TLabel; Label38: TLabel; Label39: TLabel; Label40: TLabel; Label41: TLabel; Image7: TImage; Image8: TImage; Label42: TLabel; Bevel5: TBevel; Label43: TLabel; Label44: TLabel; Label45: TLabel; Image9: TImage; Bevel4: TBevel; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private Private declarations public Public declarations end; var Form7: TForm7; implementation $R *.DFM procedure TForm7.BitBtn1Click(Sender: TObject); begin close; end; end. Модуль 8: unit Unit8; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls; type TAboutBox1 = class(TForm) Panel1: TPanel; ProgramIcon: TImage; Version: TLabel; Copyright: TLabel; Comments: TLabel; OKButton: TButton; private Private declarations public Public declarations end; var AboutBox1: TAboutBox1; implementation $R *.DFM end. Модуль 9: unit Unit9; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls; type TAboutBox2 = class(TForm) Panel1: TPanel; ProgramIcon: TImage; ProductName: TLabel; Version: TLabel; Copyright: TLabel; Comments: TLabel; OKButton: TButton; Label1: TLabel; Label2: TLabel; procedure OKButtonClick(Sender: TObject); private Private declarations public Public declarations end; var AboutBox2: TAboutBox2; implementation $R *.DFM procedure TAboutBox2.OKButtonClick(Sender: TObject); begin close; end; end. Модуль 10: unit Unit10; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Spin; type TForm8 = class(TForm) SpinEdit1: TSpinEdit; Label24: TLabel; SpinEdit3: TSpinEdit; Label16: TLabel; Label17: TLabel; SpinEdit4: TSpinEdit; SpinEdit2: TSpinEdit; Label18: TLabel; Label26: TLabel; SpinEdit6: TSpinEdit; Label27: TLabel; Label23: TLabel; Label19: TLabel; Label20: TLabel; SpinEdit5: TSpinEdit; SpinEdit10: TSpinEdit; Label25: TLabel; SpinEdit7: TSpinEdit; Label21: TLabel; SpinEdit8: TSpinEdit; SpinEdit9: TSpinEdit; Label22: TLabel; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); procedure SpinEdit1Change(Sender: TObject); procedure SpinEdit3Change(Sender: TObject); procedure SpinEdit4Change(Sender: TObject); procedure SpinEdit2Change(Sender: TObject); procedure SpinEdit6Change(Sender: TObject); procedure SpinEdit5Change(Sender: TObject); procedure SpinEdit7Change(Sender: TObject); procedure SpinEdit10Change(Sender: TObject); procedure SpinEdit8Change(Sender: TObject); procedure SpinEdit9Change(Sender: TObject); private Private declarations public Public declarations end; var Form8: TForm8; implementation uses Unit1; $R *.DFM procedure TForm8.BitBtn1Click(Sender: TObject); begin close; end; procedure TForm8.SpinEdit1Change(Sender: TObject); begin Form1.SpinEdit1.Value:=SpinEdit1.Value; end; procedure TForm8.SpinEdit3Change(Sender: TObject); begin Form1.SpinEdit3.Value:=SpinEdit3.Value; end; procedure TForm8.SpinEdit4Change(Sender: TObject); begin Form1.SpinEdit4.Value:=SpinEdit4.Value; end; procedure TForm8.SpinEdit2Change(Sender: TObject); begin Form1.SpinEdit2.Value:=SpinEdit2.Value; end; procedure TForm8.SpinEdit6Change(Sender: TObject); begin Form1.SpinEdit6.Value:=SpinEdit6.Value; end; procedure TForm8.SpinEdit5Change(Sender: TObject); begin Form1.SpinEdit5.Value:=SpinEdit5.Value; end; procedure TForm8.SpinEdit7Change(Sender: TObject); begin Form1.SpinEdit7.Value:=SpinEdit7.Value; end; procedure TForm8.SpinEdit10Change(Sender: TObject); begin Form1.SpinEdit10.Value:=SpinEdit10.Value; end; procedure TForm8.SpinEdit8Change(Sender: TObject); begin Form1.SpinEdit8.Value:=SpinEdit8.Value; end; procedure TForm8.SpinEdit9Change(Sender: TObject); begin Form1.SpinEdit9.Value:=SpinEdit9.Value; end; end. Модуль 11: unit Unit11; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm11 = class(TForm) Label1: TLabel; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private Private declarations public Public declarations end; var Form11: TForm11; implementation uses Unit1; $R *.DFM procedure TForm11.BitBtn1Click(Sender: TObject); begin close; Form1.Timer1.Enabled:=false; end; end. Модуль 12: unit Unit12; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm12 = class(TForm) private Private declarations public Public declarations end; var Form12: TForm12; implementation $R *.DFM end. Приложение Б Экранные формы Окно начала моделирования: Рис. Б . 1 Окно статистических данных: Рис. Б . 2 Окно вывода параметров: Рис. Б.3 Окно окончания моделирования: Рис. Б.4 Приложение В Блок-схема алгоритма Рис. В . 1 Рис. В.1 Приложение Г Q -схема Рис. Г.1
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Восемь человек пропали в тайге при испытании новой модели GPS-навигатора.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

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

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru