Автор работы: Пользователь скрыл имя, 23 Мая 2013 в 19:24, дипломная работа
Представлена дипломна робота є теоретичним обґрунтуванням і описом застосування програмного продукту, що призначений для моделювання процесу роботи підприємства з виробництва товарів різного призначення (тобто може моделюватися будь-який продукт виробництва або реальна система) і призначена для одержання знань про бізнес-процеси за допомогою розрахунку економічних показників ефективності роботи виробництва.
ВСТУП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
РОЗДІЛ 1 ОГЛЯД Й СТАН АНАЛІЗОВАНОЇ ПРОБЛЕМИ. . . . . .
15
1.1 Поняття бізнесу-процесу. . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.2 Існуюча ситуація . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.3 Підходи до застосування бізнес процесів. . . . . . . . . . . . . . .
19
РОЗДІЛ 2 ПОСТАНОВКА Й МАТЕМАТИЧНИЙ ОПИС РОЗРОБЛЮВАЛЬНОГО ЗАВДАННЯ . . . . . . . . . . . . . . . . . . . . .
28
2.1 Концептуальна модель . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.2 Опис застосування . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.2.1 Обґрунтування обраної моделі . . . . . . . . . . . . . . . . . . . . . .
29
2.2.2 Опис алгоритму роботи . . . . . . . . . . . . . . . . . . . . . . . . .
34
2.3 Взаємозв'язок фінансового менеджменту й бізнес-процесів .
39
2.4 Принципи системного підходу при реалізації бізнес-процесів . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
2.5 Методи одержання знань про бізнес-процеси за допомогою економіко-математичних систем . . . . . . . . . . . . . . . . . . . . . . . . .
47
2.5.1 Існуючі прикладні пакети програм одержання знань про бізнес-процеси з використанням економіко-математичного моделей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
2.6 Статистичний метод одержання знань про бізнес-процеси . .
49
РОЗДІЛ 3 ОПИС ПРОГРАМНОГО ПРОДУКТУ . . . . . . . . . . . . .
53
3.1 Опис програми . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.2 Вхідні й вихідні дані . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.3 Виклик і завантаження . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.4 Контрольний приклад . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
ВИСНОВОК . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ . . . . . . . . . . . . . . . . . . . .
66
26.Конспект лекцій з курсу “Теорія управління, прочитаних канд. екон. наук, доц. Соболем С.М. студентам 2 курсу спец. 6201 денної форми навчання, 1999 р.
27. Морріс Г. Б. Керівник тієї, хто знаходить вихід// Освіта і управління -1998.-№3.-с.77-87.
28. Сіднєв С. П., Шарапов О. Д. Математичні методи підвищення якості
управлінських рішень: Підручник.-К.: ІЗМН, 1997.
29. Трояновский В. М.
Математичне моделювання в
ДОДАТОК А
Екранні форми роботи програми
Рис. А1. Початкова форма програми, закладка “Параметри”
Рис. А2. Початкова форма програми, закладка “Потоки ”
Продовження додатка А
Рис. А3. Процес моделювання
Рис. А4. Процес моделювання в графічній інтерпритації
ДОДАТОК Б
Текст програми
Модуль main
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, forms,
Dialogs, StdCtrls, ETunels, CheckLst, ExtCtrls, Gauges, TmGauge, ComCtrls, ToolWin, Spin, jpeg, Menus;
type
TForm1 = class(TForm)
Panel1: TPanel;
ToolBar1: TToolBar;
EcTunel1: TEcTunel;
Timer1: TTimer;
Button11: TButton;
ToolButton8: TToolButton;
TmGauge1: TTmGauge;
Button12: TButton;
Button13: TButton;
EcTunel3: TEcTunel;
TmGauge2: TTmGauge;
Panel2: TPanel;
Label1: TLabel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
SpinEdit4: TSpinEdit;
Button7: TButton;
Button8: TButton;
SpinEdit5: TSpinEdit;
Button9: TButton;
Button10: TButton;
GroupBox1: TGroupBox;
Button6: TButton;
Button5: TButton;
SpinEdit3: TSpinEdit;
Button3: TButton;
Button4: TButton;
SpinEdit2: TSpinEdit;
Button2: TButton;
Button1: TButton;
SpinEdit1: TSpinEdit;
TabSheet2: TTabSheet;
SpinEditRes: TSpinEdit;
SpinEditZak: TSpinEdit;
EcTunel2: TEcTunel;
EcTunel4: TEcTunel;
SpinEditKredit: TSpinEdit;
TmGauge3: TTmGauge;
Label2: TLabel;
Label3: TLabel;
Label6: TLabel;
SpinEditVi: TSpinEdit;
Label7: TLabel;
Button15: TButton;
Button16: TButton;
TmGauge4: TTmGauge;
Button17: TButton;
SpinEditKVI: TSpinEdit;
Label8: TLabel;
SpinEditVzResurs: TSpinEdit;
Label9: TLabel;
EcTunel5: TEcTunel;
TmGauge5: TTmGauge;
SpinEditCena: TSpinEdit;
Label10: TLabel;
SpinEditPro: TSpinEdit;
Label11: TLabel;
Button14: TButton;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
CheckListBox1: TCheckListBox;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
TrackBar1: TTrackBar;
Label24: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
Button18: TButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
procedure EcTunel1Click(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure TmGauge1Time(Sender: TObject; STime: Integer);
procedure Button13Click(Sender: TObject);
procedure SpinEdit4Change(Sender: TObject);
procedure SpinEdit5Change(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure TmGauge2Time(Sender: TObject; STime: Integer);
procedure EcTunel2MinAcount(Sender: TObject; Quantity: Real);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure TmGauge3Time(Sender: TObject; STime: Integer);
procedure TmGauge4Time(Sender: TObject; STime: Integer);
procedure TmGauge5Time(Sender: TObject; STime: Integer);
procedure TrackBar1Change(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Selected:integer;
SelectedTimer:integer;
StProdano:integer;
StPrZatrati:integer; // інші витрати
StZatrati:integer;
StSebestoimost:integer;// собівартість продукту
StKolvoTov:integer;
StViruchka:integer;
StPribil:integer;
StRentabelnost:real;
StModelTime:integer;
implementation
uses Unit2, Unit4, Unit3;
{$R *.dfm}
function GetRandomTime(UTiming,
var
znack:integer;
begin
if (UTimingPlus and UTimingMinus)=0 then result:=UTiming
else
begin
znack:=random(2);
If Znack<1 then result:=UTiming+random(
If Znack>=1 then result:=UTiming+(random(abs(
end;
end;
procedure TForm1.EcTunel1Click(Sender: TObject);
begin
if Sender is TEcTunel then
begin
Selected:=TEcTunel(Sender).
Label21.Caption:=TEcTunel(
SpinEdit1.Value:=trunc(
SpinEdit2.Value:=trunc(
SpinEdit3.Value:=trunc(
end;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
if Selected=1 then
begin
EcTunel1.Acount:=Spinedit1.
end;
if Selected=2 then
begin
EcTunel2.Acount:=Spinedit1.
end;
if Selected=3 then
begin
EcTunel3.Acount:=Spinedit1.
end;
if Selected=4 then
begin
EcTunel4.Acount:=Spinedit1.
end;
if Selected=5 then
begin
EcTunel5.Acount:=Spinedit1.
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Spinedit1.value:=Spinedit1.
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Spinedit1.value:=Spinedit1.
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Spinedit2.value:=Spinedit2.
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Spinedit2.value:=Spinedit2.
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Spinedit3.value:=Spinedit3.
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Spinedit3.value:=Spinedit3.
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
if Selected=1 then
begin
EcTunel1.AcountMax:=Spinedit2.
end;
if Selected=2 then
begin
EcTunel2.AcountMax:=Spinedit2.
end;
if Selected=3 then
begin
EcTunel3.AcountMax:=Spinedit2.
end;
if Selected=4 then
begin
EcTunel4.AcountMax:=Spinedit2.
end;
if Selected=5 then
begin
EcTunel5.AcountMax:=Spinedit2.
end;
end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
if Selected=1 then
begin
EcTunel1.AcountMin:=Spinedit3.
end;
if Selected=2 then
begin
EcTunel2.AcountMin:=Spinedit3.
end;
if Selected=3 then
begin
EcTunel3.AcountMin:=Spinedit3.
end;
if Selected=4 then
begin
EcTunel4.AcountMin:=Spinedit3.
end;
if Selected=5 then
begin
EcTunel5.AcountMin:=Spinedit3.
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Spinedit4.value:=Spinedit4.
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Spinedit4.value:=Spinedit4.
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Spinedit5.value:=Spinedit5.
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
Spinedit5.value:=Spinedit5.
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
ecTunel1.Acount:=1000000;
ecTunel2.Acount:=10000;
ecTunel3.Acount:=400;
ecTunel5.Acount:=0;
StProdano:=0;
StPrZatrati:=0;
StZatrati:=0;
StSebestoimost:=0;
StKolvoTov:=0;
StViruchka:=0;
StModelTime:=0;
StPribil:=0;
StRentabelnost:=0;
randomize;
Timer1.Enabled:=true;
TmGauge1.ReSetTimer;
TmGauge1.StopTik;
TmGauge2.ReSetTimer;
TmGauge2.Gotik;
TmGauge3.ReSetTimer;
TmGauge3.Gotik;
TmGauge4.ReSetTimer;
TmGauge4.Gotik;
TmGauge5.ReSetTimer;
TmGauge5.Gotik;
Panel2.Enabled:=false;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if TmGauge1.FTimerOn then TmGauge1.GoTik;
if TmGauge2.FTimerOn then TmGauge2.GoTik;
if TmGauge3.FTimerOn then TmGauge3.GoTik;
if TmGauge4.FTimerOn then TmGauge4.GoTik;
if TmGauge5.FTimerOn then TmGauge5.GoTik;
CheckListBox1.clear;
CheckListBox1.Items.Add('
CheckListBox1.Items.Add('Інші
CheckListBox1.Items.Add('
if StKolvotov<>0 then StSebestoimost:=Trunc((
CheckListBox1.Items.Add('
CheckListBox1.Items.Add('Собів
CheckListBox1.Items.Add('
CheckListBox1.Items.Add('
CheckListBox1.Items.Add(' -і-і-і-і-і-і- ');
StPribil:=StViruchka - (StZatrati+StPrZatrati);
if StPribil<>0 then StRentabelnost:=StProdano/
CheckListBox1.Items.Add('
CheckListBox1.Items.Add('
if EcTunel4.Acount<>0 then
CheckListBox1.Items.Add('
StModelTime:=StModelTime+1;
label24.Caption:='Модельний
form2.Series1.clear;
form2.Series1.add(
form2.Series1.add(StProdano,'
form2.Series1.add(StViruchka,'
form2.Series1.add(StKolvotov,'
form2.Series2.clear;
form2.Series2.add(StZatrati,'
form2.Series2.add(StPrZatrati,
form2.Series2.add(StPribil,'
form2.Series2.add(
if ectunel4.acount<>0 then
form2.Series2.add(Ectunel2.
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
Timer1.Enabled:=false;
Panel2.Enabled:=true;
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
SelectedTimer:=TmGauge1.tag;
SpinEdit4.Value:=TmGauge1.ATim
SpinEdit5.Value:=TmGauge1.
end;
procedure TForm1.SpinEdit4Change(Sender: TObject);
begin
if SelectedTimer=1 then
begin
TmGauge1.ATime:=Spinedit4.
end;
if SelectedTimer=2 then
begin
TmGauge2.ATime:=Spinedit4.
end;
if SelectedTimer=3 then
begin
TmGauge3.ATime:=Spinedit4.
end;
if SelectedTimer=4 then
begin
TmGauge4.ATime:=Spinedit4.
end;
if SelectedTimer=5 then
begin
TmGauge5.ATime:=Spinedit4.
end;
end;
procedure TForm1.SpinEdit5Change(Sender: TObject);
begin
if SpinEdit5.Value>SpinEdit4.
if SelectedTimer=1 then
begin
TmGauge1.ATimePlusMinus:=
end;
if SelectedTimer=2 then
begin
TmGauge2.ATimePlusMinus:=
end;
if SelectedTimer=3 then
begin
TmGauge3.ATimePlusMinus:=
end;
if SelectedTimer=4 then
begin
TmGauge4.ATimePlusMinus:=
end;
if SelectedTimer=5 then
begin
TmGauge5.ATimePlusMinus:=
end;
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
SelectedTimer:=TmGauge5.tag;
SpinEdit4.Value:=TmGauge5.
SpinEdit5.Value:=TmGauge5.
end;
procedure TForm1.TmGauge2Time(Sender: TObject; STime: Integer);
var
vl:integer;
begin
if EcTunel3.AcountMax>EcTunel3.
begin
vl:=SpinEditRes.Value*
EcTunel2.DecFromAcount(vl);
EcTunel3.addToAcount(
StZatrati:=StZatrati+vl;
end;
end;
procedure TForm1.EcTunel2MinAcount(
begin
ecTunel1.DecFromAcount(
ecTunel2.AddtoAcount(
ecTunel4.AddtoAcount(
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
SelectedTimer:=TmGauge2.tag;
SpinEdit4.Value:=TmGauge2.
SpinEdit5.Value:=TmGauge2.
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
SelectedTimer:=TmGauge3.tag;
SpinEdit4.Value:=TmGauge3.
SpinEdit5.Value:=TmGauge3.
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
SelectedTimer:=TmGauge4.tag;
SpinEdit4.Value:=TmGauge4.
SpinEdit5.Value:=TmGauge4.
end;
procedure TForm1.TmGauge3Time(Sender: TObject; STime: Integer);
begin
EcTunel2.DecFromAcount(
StPrZatrati:=StPrZatrati+