При нажатии на кнопку Стоп происходит остановка работы системы и возврат ее в исходное состояние, то есть присвоение всем параметрам системы и используемым переменным начальных значений.
При окончании процесса моделирования на экран выводится окно Form11, содержащее сообщение об этом и система готова к новому запуску.
3.4 Используемые технические средства, вызов, загрузка
Программа представленная в данной курсовой работе “Моделирование системы автоматизации проектирования” имеет следующие требования к аппаратному и программному обеспечению:
- персональный компьютер на базе микропроцессора Intel 80386 и выше;
- SVGA совместимая видеокарта;
- требования к операционной системе ограничены требованиями компилятора языка Delphi 4.0, т.е. Windows версии 3.11 или выше.
В силу того, что существуют определенные различия между предыдущими и последующими поколениями компьютеров и написание данной программы проводилось на персональный компьютер с микропроцессором фирмы Intel PentiumPro с частотой 166 MHz, то для корректной работы программы рекомендуется использовать следующее аппаратное и программное обеспечение:
- персональный компьютер на базе микропроцессора фирмы Intel PentiumPro с частотой 166 MHz ;
- видеокарта SVGA;
- операционная система Windows 95 или выше.
Исходный текст программы находится в файлах под именами unit1.pas, unit2.pas, unit3.pas, unit4.pas, unit5.pas, unit6.pas, unit7.pas, unit8.pas, unit9.pas, unit10.pas, unit11.pas, unit12.pas и занимают 43,2 килобайт, исполняемый модуль под именем project1.exe - 839 килобайт.
Возможны два варианта запуска программы “Моделирование системы автоматизации проектирования”. В первом варианте запуск производится из интегрированной среды Delphi 4.0. Для этого нужно войти в эту среду из каталога C:\Program Files\Borland\Delphi4\Bin и запустить файл delphi32.exe. После запуска интегрированной среды нужно найти файл unit1.pas и запустить его на выполнение путем нажатия клавиши F9.
Вторым вариантом запуска является запуск выполняемого модуля project1.exe. Для этого нужно в оболочке Norton (Volcov) Commander, либо Dos Navigator, либо Windows Commander, либо в проводнике Windows навести светящийся прямоугольник на запись project1.exe и нажать клавишу <Enter>.
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;