Алгоритм расчета минимальной стоимости логистической системы с учетом скидки



На рисунке 2.1. представлен алгоритм расчета минимальной стоимости логистической системы с учетом скидки и минимального заказа по формуле №3:

 

Начало
Расчет q*
Конец
Ввод D, C1, C2, C3
q*<qo
q*=qo  
Вывод С
РасчетС

 

 


Рисунок 2.1 – Алгоритм расчета минимальной стоимости с учетом скидки

Ниже представлен код написания функции расчета минимальной стоимости с учетом скидки и минимального заказа:

 

functioncountdisc(event, ui) {

  $("#contentSlider" ).html( ui.value );//При изменении значения ползунка заполняем элемент с idcontentSlider

  var disc=document.getElementById('contentSlider').innerHTML;

  //console.log(disc);

  varmin_z=document.getElementById('contentSlider1').innerHTML;

  //console.log(min_z);

  var D=document.getElementById('D').value;

  var C1=document.getElementById('C1').value;

  var C2=document.getElementById('C2').value;

  var C3=document.getElementById('C3').value;

 

  C3 = C3-(C3*disc/100);

  C2 = C2-(C2*disc/100);

  q3 = 2*C1*D/C2;

  q3 = Math.sqrt(q3);

 

  if (q3<min_z)

  {

            q3=min_z;

  }

            C4 = (C1*D/q3) + (C2*q3/2) + (C3*D);

            C4 = Math.round(C4);

            document.getElementById('C4').innerHTML = 'Стоимостьсоскидкой:' + C4;

}

 

Построение графиков

При написании сайта была подключена библиотека Hightcharts, с помощью которой были построены 3 графика зависимости.

Есть две различные библиотеки: highcharts (обычные графики) и highstock (финансовые графики); можно подобрать тот или иной график практически под все задачи.Поддерживаются следующие типы вывода графиков:

· line (простая линия);

· spline (сглаженная линия);

· area (область);

· areaspline (сглаженная область);

· column;

· bar (вертикальное/горизонтальное исполнение);

· pie (круговая);

· scatter (точечная).

 Они могут быть комбинированы между собой при выводе конечному пользователю, и обладают возможностью отключения любого из них в режиме реального времени непосредственно пользователем для удобства разборки информации.

При написании работы были построены следующие 3 графика зависимости:

· Минимальной стоимости логистической системы от скидки.

· Минимальной стоимости логистической системы от минимального заказа.

· Минимальной стоимости логистической системы от скидки и минимального заказа.

В таблице 2.1. представлен код написания функций для графика зависимости минимальной стоимости от скидки и для графика зависимости минимальной стоимости от скидки и от минимального заказа:

 

График
Таблица 2.1. Графики зависимости функций  
Пример

Зависимость минимальной стоимости от минимального заказа function graf2() { var disc=document.getElementById('contentSlider').innerHTML;   console.log(disc);   var D=document.getElementById('D').value;   var C1=document.getElementById('C1').value;   var C2=document.getElementById('C2').value;   var C3=document.getElementById('C3').value;   var data2 =[];   C3 = C3-(C3*disc/100);   C2 = C2-(C2*disc/100);   q3 = 2*C1*D/C2;   q3 = Math.sqrt(q3);   for (var q=0; q<=1000; q++) {   if (q3<q)    {            q3=q;            }            C4 = (C1*D/q3) + (C2*q3/2) + (C3*D);            C4 = Math.round(C4);    data2.push(C4);                }   Highcharts.chart('container', { title: {text: 'Зависимость минимальной стоимости и минимального заказа', x: -20 //center }, yAxis: {          title: { text: 'C'}, plotLines: [{value: 0,            width: 1,           color: '#808080'}]},    tooltip: { valueSuffix: 'RUR' }, xAxis: { min: 0, max: 1000,},    series: [{        data: data2    }, ] });}
Зависимость минимальной стоимости от минимального заказа и скидки function graf3(){ data3 = []; for (var i=0;i<1000;i=i+100)     for(var q=0;q<100;q=q+10)     {     var D=document.getElementById('D').value;     var C1=document.getElementById('C1').value;     var C2=document.getElementById('C2').value;     var C3=document.getElementById('C3').value;     C3 = C3-(C3*q/100);     C2 = C2-(C2*q/100);     q3 = 2*C1*D/C2;     q3 = Math.sqrt(q3);     if (q3<i)     {   q3=i;}     C4 = (C1*D/q3) + (C2*q3/2) + (C3*D);     C4 = Math.round(C4);     var el = [i,C4,q];     data3.push(el);}   Highcharts.getOptions().colors = $.map(Highcharts.getOptions().colors, function (color) { return { radialGradient: { cx: 0.4, cy: 0.3, r: 0.5},    stops: [        [0, color],        [1, Highcharts.Color(color).brighten(-0.2).get('rgb')]    ] };}); // Set up the chart var chart = new Highcharts.Chart({ chart: {renderTo: 'container',    margin: 100,    type: 'scatter',    options3d: {        enabled: true,alpha: 10, beta: 30, depth: 250, viewDistance: 5, fitToPlot: false,        frame: {            bottom: { size: 1, color: 'rgba(0,0,0,0.02)' },            back: { size: 1, color: 'rgba(0,0,0,0.04)' },            side: { size: 1, color: 'rgba(0,0,0,0.06)' }}}}, title: { text: '' }, subtitle: {text: ''}, plotOptions: { scatter: {width: 10,height: 10,depth: 10}}, yAxis: {min: 0, max: 1250,title: null }, xAxis: { min: 0, max: 1000,gridLineWidth: 1}, zAxis: {min: 0,max: 100,showFirstLabel: false}, legend: {enabled: false}, series: [{    name: '', colorByPoint: true,    data: data3 }] }); // Add mouse events for rotation $(chart.container).on('mousedown.hctouchstart.hc', function (eStart) { eStart = chart.pointer.normalize(eStart); varposX = eStart.pageX, posY = eStart.pageY,    alpha = chart.options.chart.options3d.alpha,    beta = chart.options.chart.options3d.beta, newAlpha, newBeta,    sensitivity = 5; // lower is more sensitive $(document).on({    'mousemove.hctouchdrag.hc': function (e) {        // Run beta newBeta = beta + (posX - e.pageX) / sensitivity;        chart.options.chart.options3d.beta = newBeta;        // Run alpha newAlpha = alpha + (e.pageY - posY) / sensitivity;        chart.options.chart.options3d.alpha = newAlpha; chart.redraw(false);},    'mouseuptouchend': function () { $(document).off('.hc'); } });});}

РАЗДЕЛ 3
Практическое применение

 

 

Начало работы

Чтобы работать с системой пользователю необходимо в браузере перейти по адресу site. После перехода по ссылке пользователь попадает на страницу. Сначала на ней расположены кнопка «Считать» и четыре поля для ввода данных:

· Спрос;

· стоимость доставки;

·  стоимость хранения;

·  закупочная цена;

 

Ниже (рис. 3.1) представлено начало работы с системой.

Рисунок 3.1 – Начало работы

После ввода данных система рассчитывает минимальную стоимость логистической системы и выводит ее. Далее перед пользователем появляется окно с вопросом о наличии скидки.

Рисунок 3.2 – Ввод данных                                                         

 

Рисунок 3.3 – Диалоговое окно с вопросом


Дата добавления: 2018-02-28; просмотров: 184;