Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование экономических систем(пособие).doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Программа модели управления запасами на языке Visual Basic 6.0

1. Стартовая форма frmZapasy

Макет стартовой формы приведен на рис. 1 (смотри выше).

. 1.1. Таблица свойств

Объект

Свойства

Установки

Форма 1

Name Caption

frmZapasy

Модель управления запас

Командная кнопка 1

Name Caption

cmdRashet

Расчет

Командная кнопка 2

Name Caption

cmdClear

Очистка

Командная кнопка 3

Name Caption

cmdExit

Выход

1.2. Процедуры обработки объектов

Private Sub cmdRaschet_Click()

Nur = Val(txtbegUr): Part = Val(txtParty)

URmin = Val(txtURmn):MTVZ=Val(txtMTdos)

STVZ=Val(txtSNdos):MDS=Val(txtMDcp)

SDS=Val(txtSKOD): Cl=Val(txtC_l): C2=Val(txtC_2)

C3=Val(txtC_3): TD=Val(txtTskl): Nr=Val(txtNreal)

CaU Model3

End Sub

Private Sub cmdClear_Click()

frmZapasy.txtResult = «»

End Sub

Private Sub cmdExit_Click()

End

End Sub

2. Модуль общего назначения Model6.Bas

Public Sub Model6()

' Главный модуль программы «Управление запасами»

MSC = 0 ' средние суммарные издержки

SSC = О ' СКО суммарных издержек

ТРО = TD + 1 ' времена выполнения заявки на поставку

For Ir = 1 То Nr ' начало цикла реализаций

ТР=ТР0 ' исходное значение времени поступления партии товара

Sc 1 =0 ' исходная сумма затрат на хранение товара

Sc2=0 ' исходная сумма затрат на поставку товара

Sc3=0 ' исходная сумма затрат, связанных с нехваткой товара

Т=0 ' счетчик модельного времени, дни

Zajav=0 ' признак отсутствия запроса на поставку

V=Nur ' начальный уровень текущего запаса

Do ' начало цикла DO...LOOP

Т = Т + 1 'модельное время

If Т > TD Then Exit Do 'условие окончания расчета

' текущей реализации

N = Norm ' обращение к функции, вырабатывающей

'случайную величину с нормальным распределением — Norm

D = Int(MDS + N * SDS) ' случайный дневной спрос

If Т >= ТР Then

ТР = ТРО ' восстановление исходного времени постановки

Zajav = 0 'восстановление признака отсутствия заявки

  • = V + Part 'увеличение запаса после постановки

End If

  • = V - D ' уменьшение запаса в результате i

If V < 0 Then 'условие появления дефицита

Sc3 = Sc3-V*C3 'определение издержек,

‘связанных с дефицитом товара

V = 0 'обнуление запаса

End If

Scl = Scl+V*Cl ' затраты на хранение товара

IfV<UrminThen ' снижение запаса ниже нормы

IfZajav = OThen ‘ условие отсутствия оформленной

'заявки на поступление товара

Sc2 = Sc2 + C2 * Part ' затраты на организацию поставки

N = Norm ' обращение к функции, вырабатывающей

' случайную величину с нормальным распределением

TZ = Int(MTVZ + N * STVZ) ' случайное время

'выполнения очередного заказа

Zajav =1 ' фиксация оформления заявки

End If

End If

Loop

SC = Scl + Sc2 + Sc3

MSC = MSC + SC ‘суммарные издержки в Ir реализациях

SSC = SSC + SC * SC ' сумма квадратов издержек

Next Ir ' окончание цикла реализаций

' результаты моделирования:

Сср = MSC / Nr 'средние затраты

If Nr > 1 Then

DispC = (SSC-Nr*Ccp*Ccp)/(Nr-l) ' дисперсия затрат

' определение среднего квадратического отклонения затрат;

If DispOO Then SigC = Sqr(DispC) Else SigC = 0

End If

Cgar = Ccp+1.28*SigC 'максимальные гарантированные затраты

'вывод на экран результата расчета:

frmZapasy.txtResult = Format$(Cgar, «#####»)

End Sub

Function Norm()

'генератор нормального распределения;

Sz = 0

For j = 1 To 12

z = Rnd(l) ' датчик случайных чисел с равномерным

'распределением в интервале (0,1)

Sz = Sz + z

Nextj

Norm = Sz – 6 ' центрирование случайной величины

End Function