Алгоритм расчета минимальной стоимости логистической системы с учетом скидки
На рисунке 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. представлен код написания функций для графика зависимости минимальной стоимости от скидки и для графика зависимости минимальной стоимости от скидки и от минимального заказа:
График |
| |
Зависимость минимальной стоимости от минимального заказа | 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; просмотров: 392; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!