Разработка алгоритма и программного продукта по управлению запасами склада

Автор работы: Пользователь скрыл имя, 17 Февраля 2012 в 23:52, курсовая работа

Краткое описание

Разработка алгоритма решения задачи по перевозке грузов, создания и поддержания требуемого уровня запасов товаров и реализовать их в виде программного продукта.

Содержание работы

1. Введение 3
2. Постановка задачи исследования 4
2.1. Оперативная постановка задачи 4
2.2. Анализ исходных данных 4
3. Блок-схема алгоритма 10
4. Программа и контрольный вариант решения 15
4.1. Программа решения задачи 15
4.2. Контрольный вариант решения задачи 28
4.3. Схема расположения груза в оптимальном способе доставке 33
4.4. Исследование зависимостей на товары 34
5. Заключение 35
6. Библиографический список 36

Содержимое работы - 1 файл

Курсовик.doc

— 591.50 Кб (Скачать файл)

C[6]:=20*(1+p/100); {stoimost perevozki polnogo 20' konteinera}

C[5]:=20*(1+p/100); {stoimost perevozki pustogo 40' konteinera}

C[7]:=24*(1+p/100); {stoimost perevozki polnogo 40' konteinera} 

for i:=1 to 3 do            {Stoimost' dostavki gruza avto}

Ks[i]:=2*l*C[i]; 

for i:=4 to 5 do

Ks[i]:=(Ln+Lk)*(C[i]+C[i+2])+f[i];  {Stoimost' dostavki gruza komb.sposobom} 

J:=0;PR:=0;Zzak:=0;

for i:=1 to 4 do

begin

  J:=J+Hhr[i]*Y[i];

  PR:=PR+xa[i]*xb[i]*xc[i]*Y[i];

  Zzak:=Zzak+U[i]*Y[i];

end; 

for i:=1 to 5 do begin

   Topt[i]:=sqrt(2*Ks[i]/J);

   Tg[i]:=((A[i]*B[i]*H[i])*k)/PR;

   if Topt[i]<=Tg[i] then T[i]:=Topt[i] else T[i]:=Tg[i];

   Zdoc[i]:=Ks[i]/T[i];

   Zhr[i]:=T[i]*J/2;

   Z[i]:=Zzak+Zdoc[i]+Zhr[i];

end;

begin clrscr;

writeln('Dannie raschetov:':45);

writeln;

writeln(' -----------------------------------------------------------------------------');

writeln('|             |        Srok       |  Sostavlyayschie izderjki, Rub  |         |');

writeln('|     Tip     |                   |---------------------------------|Summarnie|');

writeln('|transportnogo|  postavki, sutki  | Zatrati |Logisticheskie izdergki| zatrati,|');

writeln('|  sredstva   |-------------------|    na   |-----------------------|   Rub   |');

writeln('|             | Topt |  Tg  |  T  | zakupku | Dostavka  | Hranenie  |         |');

writeln(' -----------------------------------------------------------------------------'); 

for i:=1 to 5 do

  begin

   gotoXY(1,whereY);write('|',Tip[i]);

   gotoXY(15,whereY);write('|',Topt[i]:2:2);

   gotoXY(22,whereY);write('|',Tg[i]:2:2);

   gotoXY(29,whereY);write('|',T[i]:2:2);

   gotoXY(45,whereY);write('|',Zdoc[i]:0:1);

   gotoXY(57,whereY);write('|',Zhr[i]:0:1);

   gotoXY(69,whereY);write('|',Z[i]:0:1);

   gotoXY(79,whereY);writeln('|');

   writeln(' ---------------------------------|         |---------------------------------');

  end; 

gotoXY(35,10);write('|');

gotoXY(35,12);write('|');

gotoXY(35,14);write('|',Zzak:0:1);

gotoXY(35,16);write('|');

gotoXY(35,18);write('|');

gotoXY(2,19);write('----------------------------------------------------------------------------');

readln

end; 

Vig:=Z[1];

for i:=1 to 5 do

if Z[i]<=Vig

then begin Vig:=Z[i];

     TipVV:=Tip[i];ZAP[1]:=T[i];Hran:=Zhr[i];Dost:=Zdoc[i];Pop:=T[i]  end; 

      if Vig=Z[1] then begin begin Vig2:=Z[2];TipV:=Tip[2];end; for i:=3 to 5 do

      if Z[i]<Vig2 then begin  Vig2:=Z[i];TipV:=Tip[i];end;end else

begin if Vig=Z[2] then begin begin Vig2:=Z[1];TipV:=Tip[1];end; for i:=3 to 5 do

      if Z[i]<Vig2 then begin  Vig2:=Z[i];TipV:=Tip[i];end;end; 

      if Vig=Z[3] then begin begin  Vig2:=Z[5];TipV:=Tip[5];end;

      for i:=1 to 2 do if Z[i]<Vig2 then begin Vig2:=Z[i];TipV:=Tip[i];

      if z[4]<Vig2 then begin  Vig2:=Z[4];TipV:=Tip[4] end;end;end; 

      if Vig=Z[4] then begin begin Vig2:=Z[5];TipV:=Tip[5];end; for i:=1 to 3 do

      if Z[i]<Vig2 then begin  Vig2:=Z[i];TipV:=Tip[i];end;end; 

      if Vig=Z[5] then begin begin Vig2:=Z[1];TipV:=Tip[1];end; for i:=2 to 4 do

      if Z[i]<Vig2 then begin  Vig2:=Z[i];TipV:=Tip[i];end;end;

end; 

Writeln(' Naibolee vigodnim yavlyaetsya dostavka tovara - ',TipVV);

Writeln(' Dostatochno bliskim k nemu yavlyaetsya variant dostavki - ',TipV);

Readln; 

     Plos:=0;

     For i:=1 to 4 do

     Plos:=Plos+(Y[i]*xa[i]*xb[i]/ya[i]);

     Plos:=Plos*Pop/k;

ZAP[1]:=ZAP[1]-1; Pos[1]:=Dost*Pop; Hr[1]:=Plos*AP/Tgod; Sum[1]:=Pos[1]+Hr[1]; 

      for i:=2 to 10 do

      begin

      ZAP[i]:=ZAP[i-1]-1; 

if ZAP[i]>=1 then begin

  ZAP[i]:=ZAP[i];

  Pos[i]:=0;

  Hr[i]:=Plos*AP/Tgod;

  Sum[i]:=Pos[i]+Hr[i];

  end 

  else begin ZAP[i]:=ZAP[1]+ZAP[i]+1;

  Pos[i]:=Dost*Pop;

  Hr[i]:=Plos*AP/Tgod;

  Sum[i]:=Pos[i]+Hr[i];

  end;

end; 

begin ClrScr;

writeln;

writeln(' |============================================================================|');

writeln(' |       Sutki    |');

writeln(' |-----------------------------------------------------------------------------|');

writeln(' | Zapasi,sut.vid.|');

writeln('  ============================================================================');

writeln(' |  Stoimost, Rub.:                                                           |');

writeln(' |-----------------------------------------------------------------------------|');

writeln(' |    Postavki    |');

writeln(' |-----------------------------------------------------------------------------|');

writeln(' |    Hranenie    |');

writeln(' |============================================================================|');

writeln(' |      Itogo     |');

writeln('============================================================================'); 

for i:=1 to 10 do

  begin

  gotoXY(i*6+15,3);write(i:4,'|');

  gotoXY(i*6+14,5);write(ZAP[i]:5:1,'|');

  gotoXY(i*6+14,9);write(Pos[i]:5:0,'|');

  gotoXY(i*6+14,11);write(Hr[i]:5:0,'|');

  gotoXY(i*6+14,13);write(Sum[i]:5:0,'|');

  end;

readln; 

writeln;

writeln; 

     Post:=Tgod/Pop; 

     for i:=1 to 4 do

     Ob[i]:=Y[i]*Pop; 

     Log:=0;

     For i:=1 to 10 do

     Log:=Log+Sum[i]; 

     LogS:=Log/10; 

     Otn:=(Dost+Hran)/Zzak; 

writeln(' Period popolnenia - ',Pop:3:1,' sutok');

writeln(' Kolichestvo postavok v god ',Post:0:0);

writeln(' Obem postavki:');

writeln(' ',Ob[1]:0:0,' yaschikov 1 tipa - pivo "Tuborg"');

writeln(' ',Ob[2]:0:0,' yaschikov 2 tipa - vino "Risling"');

writeln(' ',Ob[3]:0:0,' yaschikov 3 tipa - "Sovetskoe Shapanskoe" polusladkoe');

writeln(' ',Ob[4]:0:0,' poddonov (pallet) 4 tipa - pivo "Holshten"');

writeln(' Logisticheskie izderjki za pervie 10 sutok sostavlyaut ',Log:0:2,' rub.,');

writeln(' t.e. ',LogS:0:2,' rub./sut.');

writeln(' Ishodya iz vibrannogo varianta dostavki gruza ',TipVV);

writeln(' potrebnost v skladkih ploschadyah sostavit ',Plos:0:2,' m^2.');

writeln(' Dolya zatrat na podderjanie zapasov (otnoshenie logisticheskih ');

writeln(' izderjek k zatratam po zakupke,otnesennim k sutkam) sostavyaet ',Otn:0:2,'.'); 

readln

end;

end. 
 
 
 
 
 
 
 

    1. Контрольный вариант решения  задачи

  Расстояние  от пункта отправления (г. Санкт-Петербург) до пункта назначения (г. Новороссийск) равно 1800 км. От склада г. Санкт-Петербурга до железнодорожной станции равно 50 км, а от железнодорожной станции до склада Новороссийска равно 25км. Характеристики склада показаны в таблице 5.

      Таблица 5

Характеристика  склада
Площадь склада, м2 Арендная плата, руб./м2 Коэффициент использования  складских площадей Процент изменения  цены товара по закупке (%)
2050 4050 0,6 -15

Характеристики  груза показаны в таблице 6.

Таблица 6

Характеристики  груза
Тип товара Единица поставки Параметры, м Цена  единицы товара по закупке у поставщика, руб./ящик; руб./паллета Интенсивность спроса на товар, ящиков/сут.; паллета/сут.
a b c
1 Ящик 0,5 0,6 0,3 150 15
2 Ящик 0,35 0,45 0,4 540 21
3 Ящик 0,3 0,3 0,3 500 10
4 Паллета 1,2 0,8 1,2 3150 9

Вместимость склад  для каждого типа товара:

Стоимость хранения для каждой единицы товара:

Стоимость доставки грузов для каждого ТС за 1 км:

Стоимость доставки грузов для каждого транспортного  средства от            Санкт-Петербурга до Новороссийска:

 
 

Оптимальный период пополнения запасов для каждого  транспортного средства:

Период  пополнения запасов исходя из реальной грузовместимости для каждого транспортного средства:

Затраты на закупку товаров у поставщика:

Затраты по доставке товаров на склад для каждого транспортного средства:

Затраты по хранению товаров при его доставке для каждого ТС:

Суммарные затраты на поддержание запасов  для каждого ТС:

Информация о работе Разработка алгоритма и программного продукта по управлению запасами склада