Для студентов по предмету ИнформатикаМоделирование работы цехаМоделирование работы цеха
2016-07-302016-07-30СтудИзба
Курсовая работа: Моделирование работы цеха
Описание
Моделирование работы цеха
Содержание
- АННОТАЦИЯ.
- СОДЕРЖАНИЕ.
- ВВЕДЕНИЕ.
- 1. ОПИСАHИЕ ПРИМЕHЕHИЯ.
- H = {Lф=2, Lk1 = 2, Lk2 = 2, L1 = , L2 = ,}
- Q = , где
- 2. ОПИСАHИЕ ПРОГРАММЫ.
- 2.6. Инструкция пользователю.
- Данная программа представляет собой модель процесса обработки 500 деталей в цехе с использованием четырех станков, два из которых ведут первичную обработку деталей, остальные два – вторичную.
- 3. ТЕКСТ ПРОГРАММЫ.
- 3.1. Модуль 1.
- unit Progr1;
- interface
- uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, StdCtrls, Spin, Menus;
- type
- TForm1 = class(TForm)
- P1_4: TPanel;
- P2_4: TPanel;
- P2_3: TPanel;
- P1_3: TPanel;
- P1_1: TPanel;
- pb1: TProgressBar;
- pb2: TProgressBar;
- Panel8: TPanel;
- Panel9: TPanel;
- Panel10: TPanel;
- Panel11: TPanel;
- pb3: TProgressBar;
- Panel14: TPanel;
- pb4: TProgressBar;
- Panel15: TPanel;
- Panel16: TPanel;
- Panel17: TPanel;
- Panel18: TPanel;
- Memo2: TMemo;
- Memo3: TMemo;
- Memo4: TMemo;
- Memo5: TMemo;
- Timer1: TTimer;
- pb_start: TProgressBar;
- Timer2: TTimer;
- P1_2: TPanel;
- P2_1: TPanel;
- P2_2: TPanel;
- Panel5: TPanel;
- Panel21: TPanel;
- Panel24: TPanel;
- Panel25: TPanel;
- Panel26: TPanel;
- Panel27: TPanel;
- Panel28: TPanel;
- Panel31: TPanel;
- Label1: TLabel;
- Label3: TLabel;
- Label2: TLabel;
- Label4: TLabel;
- p1: TPanel;
- p2: TPanel;
- Panel34: TPanel;
- Panel35: TPanel;
- Panel36: TPanel;
- Panel38: TPanel;
- Panel40: TPanel;
- Panel41: TPanel;
- Panel42: TPanel;
- Panel44: TPanel;
- Panel45: TPanel;
- Panel12: TPanel;
- Label5: TLabel;
- Label6: TLabel;
- Label7: TLabel;
- Label8: TLabel;
- Label9: TLabel;
- Label10: TLabel;
- indicator1: TProgressBar;
- indicator2: TProgressBar;
- MainMenu1: TMainMenu;
- N1: TMenuItem;
- N2: TMenuItem;
- N3: TMenuItem;
- N4: TMenuItem;
- Q1: TMenuItem;
- N5: TMenuItem;
- N6: TMenuItem;
- N7: TMenuItem;
- N8: TMenuItem;
- N9: TMenuItem;
- N10: TMenuItem;
- N11: TMenuItem;
- Label11: TLabel;
- Label12: TLabel;
- Label13: TLabel;
- Label14: TLabel;
- Label15: TLabel;
- Label16: TLabel;
- Label17: TLabel;
- Bevel1: TBevel;
- Panel1: TPanel;
- procedure Timer2Timer(Sender: TObject);
- procedure add_new(ad:byte);
- procedure FormCreate(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
- procedure N2Click(Sender: TObject);
- procedure N3Click(Sender: TObject);
- procedure N11Click(Sender: TObject);
- procedure N9Click(Sender: TObject);
- procedure Q1Click(Sender: TObject);
- procedure N5Click(Sender: TObject);
- procedure N7Click(Sender: TObject);
- procedure N10Click(Sender: TObject);
- procedure N8Click(Sender: TObject);
- private { Private declarations }
- public { Public declarations }
- end;
- var
- Form1: TForm1;
- t1,t2:byte;
- ustanov,zapusk,ripit,
- zanyat1,zanyat2,zanyat3,zanyat4:boolean;
- have1,have2,have_povtor:boolean;
- TotalTime,TotalMessages,
- LostMessages,RepeatMessages:longint;
- brak1,brak2,time1,time2,time3,time4,zadergka:byte;
- implementation
- uses Progr2, progr3, Progr4;
- {$R *.DFM}
- function where_go(w:byte):boolean;
- var x:integer;
- begin if (w=1)then begin
- x:=trunc(random(100));
- if (x>brak1)and(RepeatMessages
- if (w=2)then begin
- x:=trunc(random(100));if (x>brak2)and(RepeatMessages
- end;
- procedure prov_nak; {процедура проверки пустоты накопителей}
- begin
- have1:=false;have2:=false;have_povtor:=FALSE;
- if strtoint(form1.label6.caption)>=1 then have1:=true;
- if strtoint(form1.label8.caption)>=1 then have2:=true;
- if strtoint(form1.label10.caption)>=1 then have_povtor:=true;
- end;
- procedure Tform1.add_new(ad:byte);
- begin
- if ad=1 then begin
- label6.caption:=inttostr(strtoint(label6.caption)+1);
- indicator1.Position:=strtoint(label6.caption)*10;
- end
- else begin
- label8.Caption:=inttostr(strtoint(label8.Caption)+1);
- indicator2.Position:=strtoint(label8.Caption)+2;
- end;
- end;
- procedure run;
- {переводит заявки из приборов в накопители и наоборот}
- begin
- if have1 then
- if not(zanyat1) then
- begin
- form1.pb1.Max:=time1+round(random(80));{время обработки задания}
- form1.pb1.Position:=2;
- form1.label6.Caption:=inttostr(strtoint(form1.label6.Caption)-1);
- form1.indicator1.Position:=strtoint(form1.label6.Caption)*10;
- zanyat1:=true;prov_nak;end;
- if have_povtor then if not(zanyat2) then
- begin form1.pb2.Max:=time2+round(random(80));
- form1.pb2.Position:=2; form1.label10.Caption:=inttostr(strtoint(form1.label10.Caption)-1);
- zanyat2:=true;ripit:=true;prov_nak;end;
- if have1 then
- if not(zanyat2) then
- begin
- form1.pb2.Max:=time2+round(random(80)); form1.pb2.Position:=2;
- form1.label6.Caption:=inttostr(strtoint(form1.label6.Caption)-1);
- form1.indicator1.Position:=strtoint(form1.label6.Caption)*10;
- zanyat2:=true;
- prov_nak; end;
- if (have2) and(not(zanyat3)) then
- begin
- form1.pb3.Max:=time3+round(random(80)); form1.pb3.Position:=2;
- form1.label8.Caption:=inttostr(strtoint(form1.label8.Caption)-1);
- form1.indicator2.Position:=form1.indicator2.Position-2;
- zanyat3:=true;prov_nak;end;
- if (strtoint(form1.label8.caption)>3) and( not(zanyat4)) then
- begin
- form1.pb4.Max:=time4+round(random(80)); form1.pb4.Position:=2;
- form1.label8.Caption:=inttostr(strtoint(form1.label8.Caption)-1);
- form1.indicator2.Position:=form1.indicator2.Position-2;
- zanyat4:=true;
- prov_nak;
- end;
- end;
- procedure TForm1.Timer2Timer(Sender: TObject);
- var t:real;
- i:integer;
- begin
- if (zapusk)and(TotalMessages
- begin
- if not(ustanov)then
- begin
- t1:=5+trunc(random(10));
- ustanov:=true;
- zapusk:=ustanov;
- t2:=0;
- end
- else
- if t2=t1 then
- begin
- t:=0;
- for i:=1 to 1000 do
- begin
- pb_start.Position:=(pb_start.Position+trunc(t));
- t:=t+0.01;
- end;
- add_new(1);
- inc(TotalMessages);{количество всех сообщений пришедших в систему}
- pb_start.Position:=0;
- t2:=0;
- ustanov:=false;
- end
- else inc(t2);
- prov_nak;
- end;
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- randomize;
- label1.Caption:='Ждёт';label2.Caption:='Ждёт';
- label3.Caption:='Ждёт';label4.Caption:='Ждёт';
- zanyat1:=false;zanyat2:=false;zanyat3:=false;
- zanyat4:=false;
- brak1:=4;brak2:=8;time1:=40;time2:=60;
- time3:=100;time4:=100;
- end;
- procedure TForm1.Timer1Timer(Sender: TObject);
- begin
- if zapusk then begin
- if pb1.Position=pb1.max then begin
- pb1.Position:=0;zanyat1:=false;
- label1.Caption:='Ждёт';
- if where_go(1)then add_new(2)
- else
- if RepeatMessages
- begin
- label10.Caption:=inttostr(strtoint(label10.Caption)+1);
- inc(RepeatMessages);
- end
- else add_new(2);
- end;
- if pb2.Position=pb2.max then
- begin
- pb2.Position:=0;zanyat2:=false;label2.Caption:='Ждёт';
- if where_go(2)then add_new(2)
- else
- if (ripit)and(LostMessages
- begin
- p1.Color:=clred;p2.Color:=clred;
- p1.Color:=$00400040;p2.Color:=$00400040;
- ripit:=false;
- inc(LostMessages);
- end
- else
- if RepeatMessages
- begin
- label10.Caption:=inttostr(strtoint(label10.Caption)+1);
- inc(RepeatMessages);
- end
- else add_new(2);
- end;
- if pb3.Position=pb3.max then
- begin pb3.Position:=0;zanyat3:=false;label3.Caption:='Ждёт';end;
- if pb4.Position=pb4.max then
- begin pb4.Position:=0;zanyat4:=false;label4.Caption:='Ждёт';end;
- if pb1.Position>0 then
- begin pb1.Position:=pb1.Position+7;label1.Caption:='Выполняет';end;
- if pb2.Position>0 then
- begin pb2.Position:=pb2.Position+7;label2.Caption:='Выполняет';end;
- if pb3.Position>0 then
- begin pb3.Position:=pb3.Position+7;label3.Caption:='Выполняет';end;
- if pb4.Position>0 then
- begin pb4.Position:=pb4.Position+7;label4.Caption:='Выполняет';end;
- run;
- label12.Caption:=inttostr(TotalMessages);
- label14.Caption:=inttostr(RepeatMessages);
- label16.Caption:=inttostr(LostMessages);
- end;
- label17.Caption:=timetostr(time);
- end;
- procedure TForm1.N2Click(Sender: TObject);
- begin
- zapusk:=true;
- n2.enabled:=false;
- n3.enabled:=true;
- end;
- procedure TForm1.N3Click(Sender: TObject);
- begin
- zapusk:=false;
- n2.enabled:=true;
- n3.enabled:=false;
- end;
- procedure TForm1.N11Click(Sender: TObject);
- begin
- n2.Enabled:=true;
- TotalMessages:=0;
- LostMessages:=0;
- RepeatMessages:=0;
- label6.Caption:='0';
- label8.Caption:='0';
- label10.Caption:='0';
- indicator1.Position:=0;
- indicator2.Position:=0;
- pb1.Position:=0;pb2.Position:=0;
- pb3.Position:=0;pb4.Position:=0;
- have1:=false;have2:=false;ripit:=false;
- zanyat1:=false;zanyat2:=false;
- zanyat3:=false;zanyat4:=false;
- TotalTime:=0;TotalMessages:=0;
- randomize;
- end;
- procedure TForm1.N9Click(Sender: TObject);
- var c:integer;
- begin
- c:=application.MessageBox(pchar('Вы уверены в том что хотите завершить работу ???'),pchar('Предупреждение'),4);
- if c=6 then halt;
- end;
- procedure TForm1.Q1Click(Sender: TObject);
- begin
- form2.PageControl1.ActivePage:=form2.PageControl1.Pages[0] ;
- form2.ShowModal;
- end;
- procedure TForm1.N5Click(Sender: TObject);
- begin
- form2.PageControl1.ActivePage:=form2.PageControl1.Pages[1] ;
- form2.ShowModal;
- end;
- procedure TForm1.N7Click(Sender: TObject);
- begin
- form3.PageControl1.ActivePage:=form3.PageControl1.Pages[0];
- form3.showmodal;
- end;
- procedure TForm1.N10Click(Sender: TObject);
- begin
- form4.showmodal;
- end;
- procedure TForm1.N8Click(Sender: TObject);
- begin
- form3.PageControl1.ActivePage:=form3.PageControl1.Pages[1];
- form3.showmodal;
- end;
- end.
- 3.2. Модуль 2.
- unit Progr2;
- interface
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ExtCtrls, ComCtrls;
- type
- TForm2 = class(TForm)
- PageControl1: TPageControl;
- TabSheet1: TTabSheet;
- TabSheet2: TTabSheet;
- Image1: TImage;
- Image2: TImage;
- Button1: TButton;
- procedure Button1Click(Sender: TObject);
- private
- public
- end;
- var
- Form2: TForm2;
- implementation
- {$R *.DFM}
- procedure TForm2.Button1Click(Sender: TObject);
- begin
- form2.Close;
- end;
- end.
- 3.3. Модуль 3.
- end;
- end.
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.
Характеристики курсовой работы
Предмет
Семестр
Просмотров
108
Качество
Идеальное компьютерное
Размер
309,63 Kb
Список файлов
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!























