ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК
КАФЕДРА МАТЕМАТИЧЕСКОГО И ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ
ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА
ИНТЕРНЕТ-МАГАЗИНА ДЛЯ ПРОДАЖИ
КОСТЯНЫХ ИЗДЕЛИЙ
Выпускная квалификационная работа
обучающегося по направлению подготовки 02.03.02
Фундаментальная информатика и информационные технологии
очной формы обучения, группы 07001401
Тихомирова Павла Владиславовича
Научный руководитель
ст. пр. Жуков А.В.
БЕЛГОРОД 2018
СОДЕРЖАНИЕ
ВВЕДЕНИЕ .............................................................................................................. 4
1.
ПОСТАНОВКА ЗАДАЧ РАЗРАБОТКИ ИНТЕРНЕТ-МАГАЗИНА ДЛЯ
КОМПАНИИ «КОСТИ КОЛЫМЫ» ..................................................................... 7
1.1 Организация торговой деятельности в интернете .................................. 7
1.2 Обзор и анализ существующих интернет-магазинов ........................... 11
1.3 Обоснование
необходимости
разработки
модуля
решения
транспортной задачи ......................................................................................... 15
1.4 Формулировка транспортной задачи ...................................................... 16
1.4.1
Математическая постановка транспортной задачи ..................... 17
1.4.2
Опорное решение транспортной задачи ....................................... 20
1.5 Методы решения транспортной задачи.................................................. 21
1.5.1
Метод северо-западного угла ........................................................ 21
1.5.2
Метод наименьших тарифов .......................................................... 23
1.6 Обоснование выбора метода решения транспортной задачи .............. 24
1.7 Требования к интернет-магазину ............................................................ 25
2.
ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ИНТЕРНЕТ-
МАГАЗИНА........................................................................................................... 27
2.1 Обоснование выбора инструментальных средств и технологий ......... 27
2.2 Проектирование интерфейса интернет-магазина .................................. 31
2.3 Проектирование структуры базы данных интернет-магазина ............. 34
2.4 Проектирование модульной структуры интернет-магазина ................ 39
2.5 Программная реализация интернет-магазина........................................ 41
2.5.1
Установка HostCMS ........................................................................ 41
2.5.2
Создание категорий товаров .......................................................... 45
3.
2.5.3
Добавление и редактирование товаров и их свойств .................. 47
2.5.4
Добавление и редактирование способов доставки ...................... 48
2.5.5
Добавление и редактирование способов оплаты ......................... 49
2.5.6
Разработка модуля решения транспортной задачи ..................... 50
ИСПЫТАНИЕ ИНТЕРНЕТ-МАГАЗИНА .................................................. 54
3.1 Программа и методика испытания ......................................................... 54
3.2 Тестовые данные....................................................................................... 55
3.3 Результаты испытания ............................................................................. 56
3.4 Оценка показателей качества .................................................................. 62
ЗАКЛЮЧЕНИЕ ..................................................................................................... 63
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ............................................. 64
ПРИЛОЖЕНИЕ ..................................................................................................... 66
ВВЕДЕНИЕ
В
двадцать
первом
веке,
где
компьютерные
технологии
и
информационные системы развиваются с огромной скоростью, практически
любой человек, занимающийся продажей продукции, для повышения роста
количества покупателей, рано или поздно задумывается о размещении своего
магазина в интернете. Такой магазин, организованный в глобальной сети,
дает возможность покупателям узнать всю подробную информацию о
продукте, его цене, доставке и прочем, в любое время и в любом месте.
Интернет-магазин
–
большое
преимущество
для
успешно
развивающегося предприятия, так как это один из самых действенных и
малозатратных методов расширения клиентской базы за относительно
небольшой промежуток времени.
Главной
задачей
интернет-магазина
является
предоставление
потенциальному покупателю средств, обеспечивающих понятный и удобный
обзор продукции, показ товаров и их информации, а также заказ, доставку и
оплату этих товаров.
Также немаловажной задачей является минимизация расходов на
поставки товаров на склады. Интернет-магазин, используя методы решения
транспортных задач, может сэкономить за счет оптимизации маршрутов
поставок от поставщиков.
Данная
выпускная
квалификационная
работа
посвящена
проектированию и разработке интернет-магазина продажи костяных изделий
с использованием технологии системы управления сайтом для компании
«Кости Колымы». Компания занимается продажей костяных изделий на
территории Магадана и Магаданской области.
Целью работы является разработка интернет-магазина продажи
костяных
изделий
с
модулем
решения
транспортной
использованием технологии системы управления сайтом.
задачи
и
5
Исходя из поставленной цели, были сформулированы задачи работы:
изучить организацию торговой деятельности в интернете;
изучить существующие интернет-магазины с подобной продукцией;
обосновать необходимость разработки модуля решения транспортной
задачи;
сформулировать требования к разрабатываемому интернет-магазину;
изучить формулировку транспортной задачи;
изучить методы решения транспортной задачи;
обосновать выбор метода решения транспортной задачи;
обосновать выбор инструментальных средств и технологий;
выполнить проектирование интерфейса интернет-магазина;
выполнить проектирование структуры базы данных интернет-магазина;
выполнить проектирование модульной структуры интернет-магазина;
выполнить программную реализацию интернет-магазина;
провести испытание разработанного интернет-магазина.
Выпускная квалификационная работа включает в себя: введение, три
главы и заключение.
Во введении описан предмет исследования, определены задачи и цели
работы.
В первой главе исследуется организация торговой деятельности
компаний в интернете, проводится анализ популярных интернет-магазинов,
обоснование необходимости разработки модуля решения транспортной
задачи, затем исследование транспортных задач и методов их решения с
последующим их сравнением и в конце главы выдвигаются требования к
разрабатываемому интернет-магазину.
Вторая глава посвящена обоснованию выбора инструментальных
средств и технологий, проектированию интерфейса, структуры базы данных
интернет-магазина, его модулей и их программной реализации.
6
В третьей главе проводится испытание разработанного интернетмагазина и его тестирование функциональных возможностей.
В
заключении
подведены
итоги
по
результатам
работы,
проанализирован уровень достижения поставленных задач и сделаны выводы
по полученным результатам.
Выпускная квалификационная работа состоит из 60 страниц, 41
рисунка, 2 таблиц и 1 приложения.
7
1. ПОСТАНОВКА ЗАДАЧ РАЗРАБОТКИ ИНТЕРНЕТМАГАЗИНА ДЛЯ КОМПАНИИ «КОСТИ КОЛЫМЫ»
1.1 Организация торговой деятельности в интернете
Предпринимательская
деятельность
–
это
самостоятельная
деятельность, осуществляемая на свой риск. Целью предпринимательской
деятельности
является
систематическое
получение
прибыли
от
использования имущества, продажи продукции, выполнения трудовой
деятельности или оказания услуг. Деятельность акционеров не является
предпринимательской,
но
и
она
влечет
за
собой
определенные
экономические риски, так как акционерное общество предпринимательскую
деятельность осуществляет само. [3]
Интернет-магазин представляет собой торговое предприятие или
торговую организацию, предназначенную для:
предоставления покупателям посредством сети интернет сведений,
необходимых для совершения покупок, в том числе об ассортименте
товаров, ценах, информации о товарах, способах и условиях доставки и
оплаты;
получения от покупателей посредством интернета сообщений с
намерением покупки продаваемой продукции;
предоставлением возможности
доставки
товаров продавцом
по
указанному покупателем адресу.
Поскольку
сайт
интернет-магазина
обеспечивает
пользователя
информацией в виде каталога товаров, находящегося в базе данных, то сайт
представляется в виде информационной системы. Информационные системы
делятся на разные виды, в соответствии предоставляемой информации, но
каждая информационная система имеет серию характерных особенностей:
8
выполнение одной, нескольких функций в отношении информации;
единство системы (наличие общей файловой базы, единых стандартов
и протоколов, единого управления);
возможность композиции и декомпозиции объектов системы при
выполнении заданных функций.
Задачей информационной системы является обеспечение пользователя
информацией, в которой тот нуждается, в пределах определенной
предметной области, преимущественно в полном объеме и в минимальные
сроки. [11]
Решение выбора сайта, как информационной системы, является одним
из самых рациональных, потому что доступ к информации можно получить
через компьютер, использующий любую операционную систему, а также при
помощи
других
компьютерных
устройств,
способных
осуществлять
отображения страниц сайта и имеющих подключение к интернету.
Для построения сайта необходимо иметь в использовании веб-сервер.
Веб-сервер – это сервер, принимающий HTTP-запросы от клиентов, обычно
веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTMLстраницей, изображением, файлом, медиа-потоком или другими данными.
Веб-сервером называют как программное обеспечение, выполняющее
функции веб-сервера, так и непосредственно компьютер, на котором это
программное обеспечение работает.
Клиент, которым обычно является веб-браузер, передаѐт веб-серверу
запросы на получение ресурсов, обозначенных URL-адресами. Ресурсы – это
HTML-страницы, изображения, файлы, медиа-потоки или другие данные,
которые необходимы клиенту. В ответ веб-сервер передаѐт клиенту
запрошенные данные. Этот обмен происходит по протоколу HTTP. [14]
Работа веб-сервера и клиента представлена на рис. 1.1.
9
Рис. 1.1. Взаимодействие веб-сервера и клиента
Вся информация, предоставляемая пользователю в виде ответов вебсервера, хранится в базе данных. База данных (БД) представляет собой
совокупность
структурированных
данных,
хранимых
в
памяти
вычислительной системы и отображающих состояние объектов и их
взаимосвязей в рассматриваемой предметной области.
Управление базой данных осуществляется при помощи системы
управления базой данных. Система управления базами данных – это
комплекс языковых и программных средств, предназначенный для создания,
ведения и совместного использования БД многими пользователями. Обычно
СУБД различают по используемой модели данных. Так, СУБД, основанные
на использовании реляционной модели данных, называют реляционными
СУБД.
Характерными отличительными признаками системы управления
базами данных являются:
сепаратность доступа;
целостность данных;
10
секретность;
синхронизация;
защита от отказов.
Поскольку информация, которая имеется в базе данных, должна быть
систематизированной и с легкостью подвергаться обработке со стороны
пользователя и системы, для каждого сегмента информации создается своя
таблица (сущность). Каждая из сущностей содержит в себе поля (атрибуты),
дающие
возможность
особенно
в
полной
мере
охарактеризовать
информацию, хранящуюся в этой таблице. [15]
Для того чтобы пользователь интернет-магазина имел возможность
получить и проанализировать информацию из базы данных, нужно
реализовать вывод информации из базы данных на сайт. Для выполнения
этой
задачи
нужно
применить
скриптовый
язык,
который
может
взаимодействовать с базой данных. С целью обработки поступающей
информации, интерпретатор такого языка устанавливается на веб-сервере.
Файлы
(скрипты),
составленные
на
таком
языке,
могут
быть
интерпретированы и запущены только, оказываясь на сервере, так как
интерпретатор располагается на сервере сайта. В связи с этим, при
составлении таких скриптовых файлов, нужно заранее рассчитать их
функционал. [2]
Результат, составленный в ходе интерпретации скриптов, генерирует
HTML-код, затем, на его основе, браузер составляет образовавшийся ответ в
окне браузера пользователя.
Чтобы реализовать взаимодействие пользователя с сайтом, нужен
интерфейс, который смог бы обеспечивал все требуемые элементы
управления. Для создания такого интерфейса, нужно использовать за
ключевую основу, язык гипертекстовой разметки – HTML. С помощью этого
языка можно создавать страницы сайта, а также составлять имеющейся на
них контент. [8]
11
Поскольку основной задачей интернет-магазина по продаже костяных
изделий является продажа ассортимента товаров, то пользователь должен
иметь доступ заказывать эти товары.
Вслед за оформлением заказа и его подготовке к вручению, покупатель
должен быть уведомлен о том, что заказ готов, а также о том, каким
способом доставки его можно получить.
1.2 Обзор и анализ существующих интернет-магазинов
Выполним обзор и анализ имеющихся интернет-магазинов для того,
чтобы обнаружить их достоинства и недостатки в следующих компонентах:
структура сайта;
оформление дизайна;
пользовательский функционал.
Изучим следующие интернет-магазины: «AV-SPORT» и «Woodcraft».
На главной странице интернет-магазина «AV-SPORT» находится:
навигационное меню с поиском по каталогу, панель с категориями товаров,
колонка с недавно просмотренными товарами, информационная панель,
список со всем перечнем брендов и контактная информация (см. рис. 1.2).
Рис. 1.2. Главная страница интернет-магазина «AV-SPORT»
12
На главной странице интернет-магазина «Woodcraft» находится:
навигационное меню, список текущих акций, панель с категориями товаров и
их кратким перечнем, информационная панель и контактная информация (см.
рис. 1.3).
Рис. 1.3. Главная страница интернет-магазина «Woodcraft»
Среди всех особенностей представленных интернет-магазинов, для
каждого из них, общим является разбиение рабочего пространства на
несколько частей:
навигационное меню;
панель с категориями товаров;
информационная панель;
контактная информация.
Это, в конечном счете, придает интерфейсу сайта более понятный и
приветливый внешний вид.
Также одной из главных особенностей этих интернет-магазинов
является присутствие в каталоге товаров небольшой информации о
продуктах и их изображения. Это дает возможность посетителю интернетмагазина лучше ориентироваться в каталоге товаров и принимать выбор
товара.
Каталог
товаров интернет
магазина «Woodcraft»
предоставляет
следующую информацию о товаре: название товара, небольшое описание
13
товара, цену товара, изображение товара, ссылку на страницу товара, ссылку
на добавление товара в корзину, сведения о наличии товара на складе (см.
рис. 1.4).
Рис. 1.4. Каталог интернет-магазина «Woodcraft»
Каталог товаров интернет магазина «AV-SPORT» предоставляет
следующую
информацию
о
товаре:
название
товара,
цену
товара,
изображение товара, ссылку на страницу товара, сведения о наличии товара
(см. рис. 1.5).
Рис. 1.5. Каталог интернет-магазина «AV-SPORT»
Данные
интернет-магазины
предоставляют
пользователю
индивидуальную корзину покупок, в которой находятся выбранные товары.
14
Также при помощи корзины выполняется оформление заказа на покупку
товаров. В корзине можно увидеть не только список выбранных товаров, но и
небольшую информацию о них, а также можно осуществить переход на
страницу товара.
Корзина интернет-магазина «Woodcraft» представлена в виде сетки,
которая состоит из следующего набора данных о выбранных товарах:
название товаров, цены товаров, ссылки на страницы товаров, количество
выбранных товаров, сумма товаров, а также возможность отложить или
удалить товары из корзины (см. рис. 1.6).
Рис. 1.6. Корзина интернет-магазина «Woodcraft»
Корзина покупателя интернет-магазина «AV-SPORT» схожа по своему
строению и функционалу с предыдущей корзиной за исключением мелких
деталей (см. рис. 1.7).
Рис. 1.7. Корзина интернет-магазина «AV-SPORT»
15
Исходя из представленной информации, стоит заметить, что важными
элементами
интернет-магазина
являются:
навигационное
меню,
информационная панель, каталог товаров, список товаров по категориям,
контактная информация и корзина покупателя.
1.3 Обоснование необходимости разработки модуля решения
транспортной задачи
Компания «Кости Колымы» занимается продажей костяных изделий по
всей Магаданской области. Данная компания имеет несколько складских
территорий и механических мастерских по всему региону. Так как компании
приходится перевозить изготовленные изделия по складам, то в связи с этим
появляется необходимость разработки модуля решения транспортной задачи
с целью сокращения расходов на перевозку изделий.
Для решения транспортной задачи можно воспользоваться готовыми
программными реализациями, но они имеют ряд недостатков:
готовые решения нельзя исправить или изменить под какую-либо
конкретную задачу;
работоспособность готовых решений часто зависит от дополнительных
факторов (операционная система, подключение к интернету);
готовые решения могут содержать ошибки в программной реализации,
которые нельзя исправить;
результаты расчетов в таких решениях нельзя напрямую передать в
базу данных.
Собственное
разработанное
решение
позволит
избежать
этих
недостатков, так как свое решение можно в любое время изменить или
адаптировать для конкретной задачи, работоспособность такого решения
зависит только от состояния самой системы, при обнаружении ошибки в
16
реализации решения в любой момент можно ее исправить, и так как
разработанное решение интегрировано в систему интернет-магазина, то
можно реализовать автоматическое занесение полученного решения в базу
данных. Таким образом, было принято решение разработать собственный
модуль решения транспортной задачи.
1.4 Формулировка транспортной задачи
Методы линейного программирования используются для решения
большого множества задач на поиск минимума или максимума
некоторой функции. Их решение сводится к поиску крайних значений
некоторых функций переменных величин. Транспортная задача является
одной из них, задача рационального присоединения предприятийпотребителей к предприятиям-производителям.
Понятие «транспортная задача» объединяет большой круг задач с
единой математической моделью. Эти задачи относятся к задачам
линейного программирования. Но все же матрица системы ограничений
транспортной задачи настолько специфична, что для ее решения были
созданы специальные методы. Эти методы позволяют отыскать
начальное опорное решение, а затем, улучшая его, добыть оптимальное
решение.
Цель транспортной задачи – это обеспечение приобретения
(доставки) продукции (товара) покупателю в нужное время и место при
минимально возможных затратах финансовых, материальных, трудовых
ресурсов. [10]
17
1.4.1 Математическая постановка транспортной задачи
Однородный товар находится у т поставщиков в количествах
a1, a 2 ,...,a m . Данный товар нужно привезти п потребителям в количествах
b1 , b2, ...,bn . Известны cij (i=1,2,…,m; j=1,2,…,n) - расценки транспортировки
единицы товара от каждого i-го поставщика каждому j-му потребителю.
Необходимо
построить
такой
план
перевозок,
чтобы
запасы
всех
поставщиков полностью доставились, потребности всех потребителей
удовлетворились полностью и общие затраты на транспортировку всех
товаров были минимальны. Исходные данные транспортной задачи
записываются в следующей форме (см. табл. 1.1).
Таблица 1.1
Таблица транспортной задачи
b1
b2
…
bn
a1
c11
c12
…
c1n
a2
c 21
c 22
…
c 2n
…
…
…
…
…
am
c m1
c m2
…
c mn
Переменными транспортной задачи являются X ij (i=1,…,m;i=1,2,…,n) количества транспортировок от каждого i-го поставщика каждому j-му
потребителю. Эти переменные можно записать в виде матрицы перевозок
x11 x12 ...x1n
x x ...x
21 22 2n
X
.
...................
x m1 x m2 ...x mn
18
В общем случае математическая модель транспортной задачи имеет
следующий вид:
m n
Z ( x) c ij x ij min ,
i 1 j 1
(1.1)
n
xij ai , i=1,2,…,m,
j 1
(1.2)
m
xij bj , j=1,2,…,n,
i 1
(1.3)
X ij 0, i=1,2,…,m; j=1,2,…,n.
(1.4)
Целевая функция транспортной задачи (1.1) отображает необходимость
предоставить минимум общих затрат на перевозку всех товаров. Первая
группа из т уравнений (1.2) отображает тот факт, что запасы товаров всех т
поставщиков транспортируются полностью. Вторая группа из n уравнений
(1.3) отображает потребность полностью удовлетворить запросы товаров
всех n потребителей. Неравенства (1.4) представляют собой условия
неотрицательности всех переменных транспортной задачи.
Получается, что математическая формулировка транспортной задачи
заключается
в
следующем:
отыскать
переменные
задачи
X ( xij ),
i=1,2,…,m; j=1,2,…,n, обеспечивающее минимум целевой функции (1.1),
удовлетворяющее
системе
неотрицательности (1.4).
ограничений
(1.2),
(1.3)
и
условиям
19
В данной модели транспортной задачи считается, что общие запасы
m
n
поставщиков равны общим потребностям потребителей, т.е. ai b j .
i 1
j 1
Эта задача является задачей с правильным балансом. Модель этой
задачи является закрытой. Однако если это неравенство не соблюдается, то
задача называется задачей с неправильным балансом, а ее модель называется
открытой.
Чтобы транспортная задача линейного программирования обладала
решением, достаточно и необходимо, чтобы общие запасы поставщиков
были равны общим запросам потребителей, то есть задаче необходимо быть с
правильным балансом.
При
несбалансированности
транспортной
задачи
появляются
особенности в решении:
a)
Когда общие запасы поставщиков превышают общие запросы
m
n
потребителей, то есть ai b j , тогда нужно добавить фиктивного (n+1)i 1
i 1
m
n
го потребителя с запросами bn 1 ai b j , равными разности общих
i 1
j 1
запасов поставщиков и запросов потребителей, и нулевыми тарифами
перевозок единиц товара ci(n 1) 0 i.
b)
Когда общие запросы потребителей превышают общие запасы
m
n
поставщиков, т.е. ai , b j , то нужно добавить фиктивного (m+1)-го
i 1
i 1
n
m
поставщика с запасами a m 1 bi a j , равные разности общих
j 1
i 1
запросов потребителей и запасов поставщиков, и нулевыми тарифами
перевозок единиц товара c(n 1)i 0 i.
20
Создавая опорное решение, в последнюю очередь следует разделять
запасы фиктивного поставщика и удовлетворять запросы фиктивного
потребителя, вопреки тому, что им соответствует нулевой тариф перевозок.
[16]
Алгоритм балансирования транспортной задачи представлен на рис.
1.8:
Рис. 1.8. Блок-схема алгоритма балансирования транспортной задачи
1.4.2 Опорное решение транспортной задачи
Любое допустимое решение транспортной задачи опорное, если
векторы условий, которые соответствуют положительным координатам,
линейно независимы.
21
Опорное решение транспортной задачи не может иметь ненулевых
координат больше, чем N, из-за того, что ранг системы векторов условий
транспортной задачи равен N = n + m – 1.
Чтобы
доказать
линейную
независимость
векторов
условий,
соответствующих позициям допустимого решения, пользуются циклами.
Цикл
–
это
такой
порядок
(i1, j1 ), (i1, j 2 ), (i2 , j 2 ),...,(ik , j1 ),
клеток
в
таблицы
которой
транспортной
задачи
прилежащие
клетки
две
находятся в одном столбце или строке, к тому же последняя и первая тоже
находятся в одном столбце или строке.
Линейно независимой система векторов условий транспортной задачи
будет считаться только в том случае, когда из соответствующих им позиций
таблицы невозможно построить ни одного цикла. Исходя из этого,
допустимое решение транспортной задачи X ( xij ) , i = 1, 2, …, m; j = 1, 2,
…, n является опорным тогда и только тогда, когда из заполненных им
позиций таблицы невозможно построить ни одного цикла.
1.5 Методы решения транспортной задачи
1.5.1 Метод северо-западного угла
Данный метод работает следующим образом: запасы очередного
поставщика
применяются
с
целью
обеспечить
запросы
очередных
потребителей до того времени, пока полностью не будут закончены, затем
тратятся запасы поставщика следующего по номеру.
Таблица транспортной задачи заполняется с левого верхнего угла по
одному и тому же принципу. На каждом этапе, опираясь на количество
запросов очередного потребителя и запасов очередного поставщика,
заполняется не более одной клетки и вычитается из рассмотрения один
22
потребитель
или
поставщик.
Причем
считается,
что
нулевые
транспортировки необходимо добавлять в таблицу только тогда, если они
попадают в позицию (i, j), которую следует заполнить, то есть в таблицу
заносятся только базисные нули (0* ) , другие позиции с нулевыми
транспортировками остаются пустыми.
Чтобы исключить появление ошибок после создания начального
опорного решения нужно удостовериться, что число занятых позиций равно
n + m – 1 и векторы условий, которые соответствуют этим клеткам, линейно
независимы.
Алгоритм метода наименьших тарифов представлен на рис. 1.9.
Рис. 1.9. Блок-схема метода северо-западного угла
23
1.5.2 Метод наименьших тарифов
Этот метод основан на последовательности однотипных шагов и
заключается в следующем: на каждом этапе заполняется не более одной
клетки таблицы, которая соответствует наименьшему тарифу min cij , и
i, j
удаляется из рассмотрения не более одного столбца или одной строки.
заполняют таким же
Последующую клетку, которая соответствует min cij
i, j
образом. Если запасы поставщика истощены, тогда он исключается из
рассмотрения. Если запросы потребителя удовлетворены, тогда он тоже
исключается из рассмотрения. На каждом шаге удаляется либо один
потребитель, либо один поставщик. [13] Алгоритм метода наименьших
тарифов представлен на рис. 1.10.
Рис. 1.10. Блок-схема метода наименьших тарифов
24
1.6 Обоснование выбора метода решения транспортной задачи
Для сравнения разобранных методов решения транспортной задачи
составим ряд критериев, по которым будет производиться оценка:
приближенность полученного плана к оптимальному;
сложность реализации;
скорость выполнения.
Метод северо-западного угла достаточно прост в реализации,
потому как он заключается в последовательном распределении всех
запасов, имеющихся в первом, втором и последующих пунктах
производства,
по
первому,
второму
и
последующим
пунктам
потребления. В связи с этим стоимость перевозки груза никак не
учитывается и это дает преимущество в скорости выполнения алгоритма.
Однако полученный план в результате использования этого метода очень
сильно далек от оптимального, что является серьезным недостатком.
Метод наименьших тарифов в свою очередь немного сложнее в
реализации, поскольку он на каждом шаге использует матрицу
стоимостей транспортной задачи C (cij ) , i = 1, 2, …,m; j = 1, 2 …, n.
Из-за этого скорость выполнения метода минимальных тарифов
несколько ниже, чем
у метода северо-западного угла. Однако
построенное по этому методу опорное решение является достаточно
близким к оптимальному, что является большим преимуществом.
Исходя из сравнительного анализа разобранных методов был
выбран метод наименьших тарифов, так как он имеет достаточно
высокую скорость, простоту реализации и самое главное, план,
полученный
в результате использования этого метода, достаточно
близок к оптимальному.
25
1.7 Требования к интернет-магазину
Интернет-магазин представляет собой объединение обычного
магазина с различными веб-технологиями. Основным достоинством
интернет-магазина перед простым магазином является способность
предоставить клиентам большее число товаров и большее количество
информации, нужной для правильного выбора товаров.
Основной функцией интернет-магазина является рост числа лиц
потенциальных покупателей за счет интернета. Возможность сделать
заказ в любое время и в любом месте, имея только доступ в интернет, а
также экономия личного времени – все это огромное преимущество
перед обычными магазинами.
Главная задача интернет-магазина заключается в предоставлении
посетителю сайта сведений о товарах, которые можно приобрести.
Решением данной задачи является каталог товаров. В каталоге товаров
должна содержаться информация о всех товарах интернет-магазина, а
также подробные сведения о каждом товаре в частности с той целью,
чтобы покупатель имел возможность более подробно изучить товар
перед его покупкой.
Посещение интернет-магазина производится при помощи веббраузера. На сегодняшний день имеется достаточное число веббраузеров, доступных пользователям интернета. Поэтому, одной из
целей при реализации интернет-магазина является кроссбраузерность.
Кроссбраузерность
–
это
свойство
веб-сайта
отображаться
и
функционировать во всех часто используемых браузерах идентично. Под
идентичностью
функционирования
подразумевается:
отсутствие
некорректной работы, ошибок в вѐрстке и способность отображать
материал с одинаковой степенью читабельности.
Также не менее важной задачей является разработка общего стиля
дизайна интернет-магазина так, чтобы посетитель не испытывал
26
неудобств во время просмотра. Другими словами, чтобы при переходе на
разные
веб-страницы
интернет-магазина,
посетитель
не
ощущал
изменений в оформлении.
Вдобавок необходимо реализовать удобную панель навигации,
чтобы посетитель из любого раздела интернет-магазина мог попасть в
другой, делая минимальное количество дополнительных операций.
С целью удобства поиска нужной выборки товаров в каталоге
интернет-магазина, посетители должны иметь возможность фильтровать
товары, то есть выбирать товары на основании параметров фильтра.
Сведения, характеристики и цены продаваемых товаров должны
находиться в каталоге товаров. Сам каталог должен состоять из набора
ссылок на определенные категории товаров. В каждой категории должен
храниться список товаров и ссылка на страницу с подробными
сведениями о товаре, а также кнопка для помещения товара в корзину.
Потому как интернет-магазин нужен для выполнения сделок
купли-продажи, то для пользователей необходимо реализовать свою
собственную корзину. Корзина нужна для хранения отобранных товаров
и, кроме того, для оформления заказа. При надобности пользователь
должен свободно добавлять и удалять товары из корзины.
Когда покупатель определится с заказом, он должен предоставить
свою контактную информацию, чтобы выбрать оптимальный для него
способ доставки и оплаты. [1]
Также для расчета и сокращения расходов на транспортировку
товаров сотрудники компании должны иметь доступ к модулю решения
транспортной задачи с удобным и понятным интерфейсом.
27
2. ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
ИНТЕРНЕТ-МАГАЗИНА
2.1 Обоснование выбора инструментальных средств и технологий
С момента появления первого интернет-магазина прошло достаточно
долгое время, за которое было придумано много различных систем,
позволяющих создать качественный с разных сторон сайт для продажи
продукции, поэтому не думаю, что разработка интернет-магазина с нуля на
сегодняшний день будет оправдана с точки зрения затраты сил и времени.
Система управления сайтом (CMS) дает возможность упростить
разработку сложных веб-ресурсов, предоставляет набор готовых блоков,
облегчает управление сайтом, уменьшает усилия, необходимые для
изменения содержания сайта. На сегодняшний день системы управления
предлагают большой спектр дополнительных услуг, например, как сбор
статистических данных, различия между правами отдельных пользователей,
распространение контента на другие платформы.
Данные системы могут быть узконаправленными или являться
универсальными системами управления контентом. Во втором случае
магазин
может
использовать
дополнительную
функциональность
и
интегрироваться с другими информационными системами. Но за расширение
функциональности расплачиваются
уменьшением скорости работы и
пропускной способностью системы. В случае данного проекта интернетмагазина
продажи
костяных
изделий
при
небольшом
количестве
ассортимента товара не планируются большие объемы продаж и поэтому
использование универсальной CMS с поддержкой реализации электронного
магазина представляется целиком целесообразным.
Определим качества, которым должна отвечать CMS интернетмагазина. Основываясь на том, что на рынке представлено множество
подходов и методик разработки интернет-магазина, которые рассчитаны на
28
реализацию ряда функций, являющихся главными для современного
интернет-магазина, то необходимо определить качества, которым должна
отвечать CMS и выбрать оптимальную систему для магазина костяных
изделий со средней посещаемостью и наполняемостью товаром.
покупка в один клик;
безопасность;
производительность;
расширяемость;
стоимость.
Опрос, который проходил на портале CMS Magazine показал, что
большее количество интернет-покупателей предпочитают просматривать
товары и выбирать товар, совершать покупки без предварительной
регистрации. Исходя из этого одна из функций – доступ к контенту и заказу
при гостевом входе должна предусматриваться CMS.
Безопасность является следующим и возможно самым значимым
критерием к системе в случае выбора системы для проведения любых
финансовых операций. Безопасность должна рассматриваться с нескольких
сторон – защита финансовых операций и защита персональных данных
покупателя. Для анализа безопасности программного продукта используют
несколько подходов, от соотношения коэффициента популярности системы с
интенсивностью нахождения критических уязвимостей до использования
защищенных протоколов, сертификатов безопасности и систем шифрования
данных. Из статистики интернет-исследований безопасны более популярные
решения, потому что компании-разработчики в основном уделяют большое
внимание тестированию кода и защите данных, своевременно исправляют
замеченные уязвимости.
Большая часть современных систем управления интернет-магазином
созданы на языке программирования PHP с использованием современных
фреймворков и базы данных MySQL. Данную конструкцию поддерживают
29
более 95% сегодняшних хостингов. Невзирая на одинаковую языковую
основу, всем приложениям необходимо разное количество ресурсов для
правильной работы. Часто, менее функциональное решение требует больше
ресурсов, чем универсальная система управления контентом.
При успешной работе интернет-магазина, будет появляться задача
повышения количества товаров, увеличения функциональности, изменения
интерфейса, увеличения пропускной способности. В таких случаях системе
необходимо расширение или модернизация. В связи с этим, выбранная CMS
должна быть исследована с точки зрения возможностей расширения.
Многие системы управления сайтом являются платными, существуют
также и бесплатные CMS, но некоторые из них не поддерживают
возможность создания интернет-магазина. Поэтому стоит обратить внимание
на стоимость системы и ее возможности. [17]
Опираясь на поставленные критерии, проведем анализ наиболее
популярных CMS:
ImageCMS (коммерческие варианты Shop Professional и Shop Premium).
Используется, в основном, для больших интернет-магазинов имеет
добавочные модули для эффективной SEO-оптимизации. Система
интуитивно проста, как в администрировании, так и верстке шаблонов
дизайна, создана относительно недавно, требует доработок, сложно
найти специалиста.
AMIRO.CMS ориентирована на небольшие интернет-магазины. Проста
в установке, но появляются трудности при доработке и расширении
функционала, работе с шаблонами и верстке. NetCat неплохо
справляется с большим трафиком, однако по сути своей это фреймворк,
который требует изменения кода в случае выполнения нестандартных
действий, содержит много сложных элементов и неоправданно
дорогой.
30
UMI.CMS имеет очень высокую стоимость. Хотя в системе и развит
административный интерфейс и поэтому лучше других защищена от
ошибочных действий пользователей. Однако многие жалуются на
неудобство меню и навигации, наличие большого количества сложных
функций и повышенные требования к хостингу, что замедляет работу
системы, неприспособленность к решению нестандартных задач и
недостатки в плане поисковой оптимизации.
HostCMS — коммерческая система управления сайтом разработанная
российской
старейших
компанией
CMS
на
«Хостмэйк»
российском
и
считающаяся
рынке.
одной
Распространяется
из
под
проприетарной лицензией с открытым исходным кодом. Имеет
встроенный ORM, хелперы и построитель запросов QueryBuilder.
Применяется технология AJAX в клиентском разделе и центре
администрирования. Поддерживается модульная структура, четкое
следование парадигме MVC, использование XSLT-шаблонизации.
Предоставляется возможность использования бесплатной редакции для
создания интернет-магазина.
Проведя анализ популярных CMS была выбрана система управления
сайтом HostCMS, так как она имеет высокую безопасность для хранения
персональных данных покупателей и обеспечения финансовых операций,
имеет бесплатные редакции для создания интернет-магазина, имеет
возможность расширения функционала за счет модульной структуры и
обладает нужной производительностью для решения поставленной задачи.
В качестве системы управления базами данных была выбрана СУБД
MySQL, так как система управления сайтом HostCMS для своей работы
использует конкретно данную систему управления базами данных.
СУБД MySQL - это система управления реляционными базами данных.
В реляционной базе данных данные хранятся не все скопом, а в отдельных
таблицах, благодаря чему достигается выигрыш в скорости и гибкости.
31
Таблицы связываются между собой при помощи отношений, благодаря чему
обеспечивается возможность объединять при выполнении запроса данные из
нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать
как язык структурированных запросов плюс наиболее распространенный
стандартный язык, используемый для доступа к базам данных. [20]
2.2 Проектирование интерфейса интернет-магазина
Общее строение сайта должно состоять из следующих разделов:
раздел администрирования;
главная страница;
каталог товаров;
корзина покупателя;
информация о компании.
Интерфейс интернет-магазина должен предоставлять пользователю
интуитивно понятную навигацию на всем сайте, возможность просто и
быстро осуществить переход от раздела к разделу. Элементы навигации
должны быть понятными для пользователя: каждая ссылка должна иметь
заголовок, который отражает их назначение, графические навигационные
элементы должны обозначаться текстом. [18]
Страницы
интернет-магазина
должны
быть
динамически
заполняемыми, в соответствии выбранного пользователем раздела сайта,
программным методом основываясь на информацию, находящуюся в базе
данных.
Добавление, изменение и удаление информации в разделах сайта
должно выполняться администратором сайта. Для этих задач администратор
должен иметь доступ к специальным модулям, которые бы давали ему
способность контролировать и управлять содержимым интернет-магазина без
32
знаний языков программирования. Вся информация, которая располагается
на страницах интернет-магазина, должна быть размещена в согласии с
шаблонам страницы. [6]
Каждый раздел должен включать в себе два обязательных модуля:
навигационное меню;
категории товаров;
Навигационное меню должно иметь следующие элементы:
ссылку, направляющую пользователя на главную страницу сайта;
ссылку, направляющую пользователя на страницу с информацией о
компании;
ссылки, указывающие путь до текущей страницы;
ссылку на корзину товаров.
В любом разделе, относящемся к какой-либо категории товаров,
должен быть осуществлен вывод всех подобных товаров, с кратким
описанием каждого: название товара, малое изображение и цена товара, а
также блок с настройками фильтра для удобного поиска нужных товаров (см.
рис. 2.1).
Рис. 2.1. Структурная схема каталога товаров интернет-магазина
Вверху главной страницы должно находиться навигационное меню, в
левой части страницы находиться каталог товаров, разложенный на группы, а
33
на центральной части главной страницы находиться информация о
популярных товарах, скидках или акциях в виде слайдера (см. рис. 2.2).
Рис. 2.2. Структурная схема главной страницы интернет-магазина
Страница товара должна содержать в виде списка все характеристики,
относящиеся к данному товару, а также большое изображение данного
товара. Также обязательно наличие кнопки добавления товара в корзину
покупателя (см. рис. 2.3).
Рис. 2.3. Структурная схема страницы товара интернет-магазина
34
Корзина пользователя должна содержать выбранные пользователем
товары и следующую информацию и них: название товара, малое
изображение товара, цена товара, количество товара, общая сумма товара,
ссылка на удаление товара из корзины и оформления заказа [19] (см. рис.
2.4).
Рис. 2.4. Структурная схема корзины интернет-магазина
2.3 Проектирование структуры базы данных интернет-магазина
База данных – это именованная совокупность данных, которая
описывает состояние объектов и их отношения в рассматриваемой
предметной области. Особенностью баз данных является постоянство:
данные все время накапливаются и используются. Состав и структура
данных, необходимые для решения тех или иных прикладных задач,
обычно постоянны и со временем не изменяются.
Целью
проектирования
структуры
базы
данных
является
выделение сущностей, связей между ними, их нормализации и
построение ER-модели.
35
Под сущностью понимается некоторый образ объекта, хранящийся
в базе данных.
Связи способствуют отражению действительно существующим
отношениям между объектами в предметной области. Связи между
сущностями обеспечиваются за счет первичных и внешних ключей.
Нормализация базы данных представляет собой операцию по
устранению избыточности информации, которая может привести к
ошибкам при обработке информации, находящейся в базе данных.
Нормализация состоит из приведения сущностей к первой, второй и
третьей нормальной форме. Сущность находится в первой нормальной
форме, если не она не содержит атрибутов, которые нельзя разделить на
более
простые
составляющие.
Сущность
находится
во
второй
нормальной форме тогда, когда она находится в первой нормальной
форме и каждое ее неключевое поле однозначно определяется полным
набором ключевых полей. Третья нормальная форма устанавливает, что
сущность удовлетворяет второй нормальной форме и каждое неключевое
поле не зависит от другого неключевого поля.
Перед проектированием базы данных нужно разобраться с
моделью
предметной
области,
в
которой
база
данных
будет
использоваться. Поскольку целью выпускной квалификационной работы
является разработка интернет-магазина по продаже костяных изделий, то
нужно определить какие товары будут продаваться, есть ли у них какиенибудь особые характеристики, где будут храниться товары, кто их
будет поставлять, каким образом будет оплачиваться и доставляться
заказ. На все эти вопросы необходимо ответить, чтобы определить какие
сущности требуются для создания модели базы данных. [7]
В ассортименте интернет-магазина имеются различные костяные
поделки разного типа: кулоны, броши, бусы, серьги, кольца, браслеты,
фигуры, ножи, шахматы, шкатулки, панно, вазы, брелоки, заколки и
прочее. Также изделия изготавливаются из разных видов материалов:
36
бивень мамонта, зуб кашалота, китовая кость, клык моржа, рог барана,
рог лося, рог оленя. Из мастерской, партии изделий прибывают на
склады, размещаются на местах полок и закрепляются за сотрудником,
затем, после оформления заказа покупателем, происходит их доставка до
пункта выдачи. Способ доставки и оплаты выбирается пользователем.
База данных интернет-магазина по продаже костяных изделий
предполагает наличие следующих сущностей, позволяющих описать
строение предметной области:
Товар. Данная сущность содержит атрибуты: номер товара (первичный
ключ), название товара, цена товара, длина товара, высота товара,
ширина товара, вес товара, описание товара, номер вида материала
(внешний ключ) и номер типа изделия (внешний ключ).
Заказ. Данная сущность содержит атрибуты: номер заказа (первичный
ключ), дата заказа, статус заказа, стоимость заказа, номер покупателя
(внешний ключ), номер доставки (внешний ключ), номер способа
оплаты (внешний ключ).
Товар\Заказ. Является соединительной таблицей между таблицами:
заказ и товар. Первичный ключ данной таблицы – составной и состоит
из двух внешних ключей которые ссылаются на первичные ключи.
Данная сущность содержит атрибуты: номер товара (первичный ключ),
номер заказа (первичный ключ), стоимость набора, количество товара.
Вид материала. Данная сущность содержит атрибуты: номер вида
материала (первичный ключ), название вида материала.
Тип изделия. Данная сущность содержит атрибуты: номер типа изделия
(первичный ключ), название типа изделия.
Покупатель. Данная сущность содержит атрибуты: номер покупателя
(первичный ключ), имя, фамилия, отчество, электронная почта, адрес,
телефон.
37
Способ оплаты. Данная сущность содержит атрибуты: номер способа
оплаты (первичный ключ), название способа оплаты.
Доставка. Данная сущность содержит атрибуты: номер доставки
(первичный ключ), дата прибытия доставки, стоимость доставки, вес
посылки, длина посылки, высота посылки, ширина посылки, табельный
номер, статус доставки, номер пункта выдачи (внешний ключ).
Пункт выдачи. Данная сущность содержит атрибуты: номер пункта
выдачи (первичный ключ), название пункта выдачи, адрес пункта
выдачи, время начала работы пункта выдачи, время окончания работы
пункта выдачи, номер компании доставки (внешний ключ).
Компания доставки. Данная сущность содержит атрибуты: номер
компании доставки (первичный ключ), название компании доставки.
Склад. Данная сущность содержит атрибуты: номер склада (первичный
ключ), название склада, адрес склада, статус склада.
Полка. Данная сущность содержит атрибуты: номер полки (первичный
ключ), статус полки, номер склада (внешний ключ).
Место. Данная сущность содержит атрибуты: номер места (первичный
ключ), статус места, номер полки (внешний ключ), номер товара
(внешний ключ).
Сотрудник. Данная сущность содержит атрибуты: номер сотрудника
(первичный ключ), имя сотрудника, фамилия сотрудника, отчество
сотрудника, должность сотрудника, телефон сотрудника, адрес
сотрудника.
Мастерская. Данная сущность содержит атрибуты: номер мастерской
(первичный ключ), название мастерской, адрес мастерской, телефон
мастерской.
Партия товара. Данная сущность содержит атрибуты: номер партии
товара (первичный ключ), номер товара (внешний ключ), номер
38
мастерской (внешний ключ), дата поставки, номер склада (внешний
ключ), номер сотрудника (внешний ключ), количество товара.
Решение транспортной задачи. Данная сущность содержит атрибуты:
номер решения транспортной задачи (первичный ключ), номер товара
(внешний ключ), значение решения.
Данные транспортной задачи. Первичный ключ данной таблицы –
составной. Данная сущность содержит атрибуты: номер решения
транспортной задачи (первичный ключ), номер склада (первичный
ключ), номер мастерской (первичный ключ), количество перевозимых
изделий, тариф.
После объединения всех таблиц выстраивается ER-модель базы
данных. На рис. 2.5 представлена база данных интернет-магазина. Данная
модель представляет собой набор таблиц со связями между ними.
Рис. 2.5. ER-модель базы данных
39
Данная модель является универсальной, так как она не создавалась для
какой-то конкретно заданной системы управления базами данных.
2.4 Проектирование модульной структуры интернет-магазина
Одним из самых необходимых и основных модулей является модуль
подключения к базе данных. [5] Он должен быть доступен каждой странице
интернет-магазина. Этот модуль содержит в себе информацию:
о подключаемом сервере;
о базе данных;
о пользователе, работающем с базой данных.
Модуль авторизации пользователя предназначен для сотрудников
интернет-магазина. Данный модуль при авторизации пользователя проверяет
подлинность данных в системе. Через форму авторизации введенные данные
передаются контроллеру, который посылает запрос на проверку введенной
информации в базу данных, если пользователь с такими данными существует
и сессия с ним еще не открыта, то производится вход в систему, однако если
такого пользователя нет, то происходит возврат ошибки с текстовой
информацией о причине, по которой не получилось авторизоваться.
Модуль администрирования состоит из набора инструментов для
различных
манипуляций
с
системой
интернет-магазина,
таких
как
добавление новых товаров и их категорий, добавление свойств товаров и
прочих функций.
Модуль
навигационного
меню
представляет
собой
систематизированный набор ссылок, который предоставляет доступ к
страницам интернет-магазина.
Модуль
списка
категорий
товаров
представляет
собой
систематизированный набор ссылок, который предоставляет доступ к
40
страницам интернет-магазина, в которых находится информация о товарах
какой-либо категории, представленных в виде каталога товаров. Данный
модуль должен присутствовать на каждой странице интернет-магазина, с
целью обеспечить удобную навигацию по сайту.
Модуль страницы товара, содержит расширенную информацию о
выбранном товаре. Вдобавок присутствует кнопка добавления данного
товара в корзину. По нажатию этой кнопки, товар помещается в корзину
пользователя.
Модуль слайдера акций и скидок представляет собой набор самых
выгодных и интересных акций. Слайдер дает возможность легко и быстро
ознакомить пользователей с популярными акциями, а также перейти на
страницу с полной информацией об акции, нажав на нужное изображение.
Модуль фильтра товаров представляет собой набор атрибутов товаров,
выбранных покупателем. Каждый пункт фильтра представляет собой список
характеристик, которые относятся к товарам выбранной категории. Фильтр
передает контроллеру данные из формы фильтра, на основании которых
происходит выборка товаров из базы данных. Товары, подходящие по
данным характеристикам, выводятся в виде сетки, показывая свое
изображение и краткую информацию.
Модуль
корзины
представляет
собой
таблицу,
где
находится
информация о выбранных товарах, которая состоит из малого изображения
товара, названия товара, цены товара, количества товара, кнопки удаления
товара из корзины покупателя и кнопки оформления заказа.
Модуль доставки представляет собой список всех видов доставки
товаров, которые использует интернет-магазин. Содержит информацию о
компаниях, занимающихся транспортировкой товаров и их тарифы на
перевозку по всей стране.
Модуль оплаты представляет собой список всех видов оплаты заказов,
которые
поддерживает
интернет-магазин.
Содержит
информацию
платежных системах, занимающихся денежными операциями.
о
41
Модуль решения транспортной задачи представляет собой функционал
для решения транспортной задачи методом минимальных тарифов. Сначала
пользователь выбирает количество складов, на которые нужно доставить
товар, а затем количество поставщиков, от которых этот товар нужно будет
доставить. В зависимости от их количества строится таблица коэффициентов,
куда будут добавляться тарифы перевозок от поставщиков к сладам. После
заполнения таблицы будет предложен оптимальный путь перевозок товара.
Схема взаимодействия модулей интернет-магазина отображена на рис.
2.6.
Рис. 2.6. Модульная схема интернет-магазина
2.5 Программная реализация интернет-магазина
2.5.1 Установка HostCMS
Для начала установки нужно скачать установочный файл системы
управления
сайтом
HostCMS
install.php
на
официальном
сайте
42
www.hostcms.ru и запустить его на сервере. После запуска начнется
программа установки (см. рис. 2.7), где потребуется выполнить несколько
шагов. Первым шагом предлагается выбрать язык:
Рис. 2.7. Начало установки HostCMS
Следующим
шагом
является
проверка
соответствия
параметров сервера требуемым (см. рис. 2.8).
Рис. 2.8. Проверка параметров сервера
текущих
43
Затем требуется провести настройку параметров доступа к базе данных
(см. рис. 2.9).
Рис. 2.9. Настройка доступа к БД
Последним шагом является выбор макета сайта (см. рис. 2.10). Для
решения поставленной задачи был выбран первый макет «Адаптивный
интернет-магазин»:
Рис. 2.10. Выбор макета сайта
44
После выполнения всех шагов, программа
завершения
установки,
где
будет
находиться
перейдет на окно
информация
для
администратора (см. рис. 2.11).
Рис. 2.11. Завершение установки HostCMS
После установки системы, сайт выглядит следующим образом (см. рис.
2.12).
Рис. 2.12. Установленный макет
45
Панель администрирования представлена на рис. 2.13.
Рис. 2.13. Панель администрирования
2.5.2 Создание категорий товаров
Для создания категорий товаров нужно перейти во вкладку меню
«Контент» «Интернет-магазины» «Магазин». Здесь собраны все
категории товаров. Можно управлять категориями: создавать, удалять,
изменять их. При создании новой категории можно указать родительскую
категорию для вновь создаваемой. Это позволит создавать иерархическую
вложенную структуру категорий. Добавить новую категорию можно следуя
пунктам «Группа товаров» «Добавить». При добавлении новой категории
можно указать еѐ название, если это подкатегория, то указать категорию
родителя, выбрать общее изображение и путь до группы товаров. Добавление
новой группы товаров «Изделия из кости» продемонстрировано на рис. 2.14.
46
Рис. 2.14. Добавление категории товаров «Изделия из кости»
Для данной категории товаров следует создать подкатегории: кулоны,
броши, бусы, серьги, кольца, браслеты, фигуры, ножи, шахматы, шкатулки,
панно, вазы, брелоки, заколки и прочее. Для этого перейдя во вкладку
категории «Изделия из кости» создадим нужные группы товаров, система
автоматически укажет родительскую группу. Пример создания подкатегории
«Броши» представлен на рис. 2.15.
Рис. 2.15. Добавление подкатегории товаров «Броши»
47
2.5.3 Добавление и редактирование товаров и их свойств
У товаров есть множество основных параметров, таких как название,
изображение, родительский каталог, тип товара, вес, габариты и другие, но
кроме того можно добавлять и пользовательские свойства, что позволяет
более гибко настроить характеристики товаров. Так как костяные изделия
делаются из разных видов кости, таких как: бивень мамонта, зуб кашалота,
китовая кость, клык моржа, рог барана, рог лося, рог оленя и др., то для
изделий из кости специально было создано свойство «Вид материала». Для
этого во вкладке категории товаров «Изделия из кости» следует пройти по
пунктам «Товар» «Свойства товара» «Свойство» «Добавить».
Добавление свойства товара «Вид материала» продемонстрировано на рис.
2.16.
Рис. 2.16. Добавление дополнительного свойства товара «Вид материала»
48
После добавления всех категорий товаров и их свойств, необходимо
занести товары. Для этого, перейдя в нужную группу товаров, следует
нажать «Товар» «Добавить». Пример добавления товара «Брошь
―Бабочки‖» представлен на рис. 2.17.
Рис. 2.17. Добавление товара «Брошь ―Бабочки‖»
2.5.4 Добавление и редактирование способов доставки
Для того чтобы покупатель смог получить свой заказ, необходимо
предложить ему способы доставки. Добавление способа доставки происходит
в разделе «Магазин» «Типы доставки» «Добавить». Для добавления
нового типа доставки необходимо указать способы расчета цены доставки в
зависимости от габаритов заказа, его веса и расстояния до места прибытия.
49
Это можно сделать двумя способами: либо создать дополнительно условия
доставки «Типы доставки» «Условия доставки» «Добавить», либо
написать формулу, по которой будет считаться стоимость доставки. Для
написания обработчика доставки почты России был использован их
калькулятор, который считает стоимость доставки по всем перечисленным
критериям. Пример добавления типа доставки «Почта России» представлен
на рис. 2.18.
Рис. 2.18. Добавление типа доставки «Почта России»
2.5.5 Добавление и редактирование способов оплаты
Для того чтобы покупатель смог оплатить заказ, необходимо
предложить
ему
способы
оплаты.
Добавление
платежной
системы
происходит в разделе «Магазин» «Справочник платежных систем»
«Платежная система» » «Добавить». Для добавления новой платежной
системы необходимо написать обработчик, который, в зависимости от
платежного сервиса, будет передавать реквизиты компании интернетмагазина платежному сервису и в случае успешной оплаты оповещать
покупателя. Пример добавления способа оплаты «Оплата наличными»
представлен на рис. 2.19.
50
Рис. 2.19. Добавление способа оплаты «Оплата наличными»
2.5.6 Разработка модуля решения транспортной задачи
Модуль решения транспортной задачи представляет собой скрипт,
написанный на JavaScript и PHP, с использованием библиотеки jQuery и SQL
кода (см. приложение). Сначала было реализовано меню, где пользователь
выбирает количество складов и поставщиков и кнопка генерации таблицы
(см. листинг 2.1).
Листинг 2.1. Меню транспортной задачи
<input type="number" id="s_1">
<input type="number" id="s_2">
<button id="start_tb">Сгенерировать таблицу</button>
<button id="send_table" hidden="true">Решить</button>
Затем сам скрипт генерации таблицы, где по нажатию на кнопку с
идентификатором «start_tb» запускается функция ее генерации. Сначала
51
создается контейнер «div», в который помещается объект таблицы. Затем при
помощи
функции
«appendChild»
производится
заполнение
таблицы
элементами. [9] После, в цикле эти элементы наполняются содержимым и в
результате сформированная таблица отправляется на страницу при помощи
функции «$.html()» (см. листинг 2.2).
Листинг 2.2. Скрипт генерации таблицы
$("#start_tb").click(function() {
var rezult = document.createElement('div');
var table = rezult.appendChild(document.createElement('table'));
var tbody = table.appendChild(document.createElement('tbody'));
for (i = 0; i < row; i++){
tr = tbody.appendChild(document.createElement('tr'));
for (j = 0; j < col; j++) {
td = tr.appendChild(document.createElement('td'));
… заполнение заголовков таблицы
}}
edit_table = rezult;
$("#cr_table").html(rezult);
});
После заполнения всех коэффициентов по нажатию кнопки «Решить»
производится проверка правильности заполненных данных с последующим
решением заданной задачи (см. листинг 2.3).
Листинг 2.3. Решение транспортной задачи
$(".kof").each(function(){
if($(this).val() == ''){
alert("Ошибка, введите все значения!");}
else{
52
$.plan(num_row, num_col, kof_arr, need_arr, feed_arr, edit_table);
}});
Алгоритм решения транспортной задачи методом минимальных
тарифов реализован в функции «$.plan()». В ней происходит поиск
минимальных коэффициентов матрицы и расчет ресурсов по этим
коэффициентам [12] (см. листинг 2.4).
Листинг 2.4. Поиск минимальных коэффициентов
for (i = 0; i < n_r; i++){
for (j = 0; j < n_c; j++){
if (k_ar[i][j] < min_kof){
temp_kof = k_ar[i][j] * 1.0;
if (!isNaN(temp_kof)){
min_kof = temp_kof * 1.0;
i_indx = i; j_indx = j; }}}}
if (cur_f <= cur_n) {
for (j = 0; j < n_c; j++){
if (j != j_indx){
k_ar[i_indx][j] = "x";
k_a[(n_c * i_indx) + j] = d_k_a[(n_c * i_indx) + j];
f_x = f_x + k_a[(n_c * i_indx) + j] + " * " + min + " + "; }}}}
После завершения расчетов функция возвращает полученный результат
на страницу и заносит его в базу данных [4] (см. листинг 2.5).
Листинг 2.5. Результат решения транспортной задачи
var f_x = "<br><p>F(x) = ";
f_x = f_x.slice(0, f_x.length - 3);
f_x = f_x + " = " + rez + ";";
53
$("#cr_table").html(e_t);
…
<?php
class Transport_task{
… }
require_once 'enter_db.php';
$exem = new Transport_task;
$db->query("INSERT INTO transport_task (resolution) VALUES ('$exem>result')");
?>
Таким образом, в результате проделанной работы была разработана
система интернет-магазина по продаже костяных изделий. Функциональная
схема системы представлена на рис. 2.20.
Рис. 2.20. Функциональная схема системы интернет-магазина
54
3. ИСПЫТАНИЕ ИНТЕРНЕТ-МАГАЗИНА
3.1 Программа и методика испытания
Объектом испытания является интернет-магазин продажи костяных
изделий.
Система предназначена для автоматизации процесса принятия заказов
на покупку костяных изделий от покупателей, доставки, оплаты и
взаимодействия с покупателями.
Целью выполнения испытаний является нахождение несоответствий
возможностей интернет-магазина поставленным требованиям технического
задания, а также проверка работоспособности интернет-магазина.
При испытании интернет-магазина тестировщик испытывает систему с
позиции пользователя-покупателя.
Программа испытаний состоит из проверки следующих компонентов:
кроссбраузерность;
правильное отображение текста;
правильное отображение изображений;
работа навигационного меню;
отображение слайдера с акциями и скидками;
отображение каталога товаров;
работа фильтра товаров;
отображение страницы товара;
работа формы авторизации сотрудников;
работа модуля решения транспортной задачи;
работа корзины товаров;
работа формы оформления доставки;
работа формы выбора способа оплаты;
отображение информации о совершенном заказе.
55
3.2 Тестовые данные
Для
проверки
правильной
работы
системы
интернет-магазина
используются тестовые данные, которые представлены в табл. 3.1.
Таблица 3.1
Таблица тестовых данных
Проверяемое действие
Тестовые данные
Проверяемый
объект
отклик сервера;
правильное отображение текста;
правильное отображение
изображений;
www.bones-ofkolyma.ru
кроссбраузерность;
отображение слайдера акций и
Ввод url в адресную
скидок;
строку
работа навигационного меню;
www.bones-ofОтображение каталога товаров
kolyma.ru/shop
www.bones-ofОтображение страницы товара
kolyma.ru/shop
/category/item
Ввод вида
www.bones-ofРабота фильтра товаров
материала и порогов
kolyma.ru/shop
цены
Ввод логина и
www.bones-ofРабота формы авторизации
пароля
kolyma.ru/adm
сотрудников
администратора
in
Ввод данных
www.bones-ofРабота модуля решения
транспортной
kolyma.ru/adm
транспортной задачи
задачи
in/tz
Добавление товаров
Работа корзины товаров покупателя
в корзину
Ввод адреса
Работа формы оформления доставки
www.bones-ofдоставки
kolyma.ru/shop
Работа формы выбора способа
Выбор платежной
/cart
оплаты
системы
Отображение информации о
Подтверждение
совершенном заказе
заказа
56
3.3 Результаты испытания
При вводе адреса сайта www.bones-of-kolyma.ru в адресную строку
браузера, приходит ответ от сервера в виде главной страницы интернетмагазина с правильным отображением текста и изображений. На странице
отображено навигационное меню, слайдер, информационный блок, а также
самые популярные товары (см. рис. 3.1).
Рис. 3.1. Главная страница интернет-магазина
В каталоге товаров размещена краткая информация о товарах со
ссылками на их полное описание, а также фильтр, с помощью которого
можно задать характеристики нужных товаров (см. рис. 3.2).
57
Рис. 3.2. Каталог товаров интернет-магазина
На странице товара отображается полная информация о товаре,
большое изображение товара и кнопка добавления товара в корзину (см. рис.
3.3).
Рис. 3.3. Страница товара интернет-магазина
58
В корзине покупателя отображается информация о выбранных товарах
и кнопка оформления заказа (см. рис. 3.4).
Рис. 3.4. Корзина покупателя интернет-магазина
После нажатия кнопки оформления заказа пользователя переносит на
форму заполнения данных доставки (см. рис. 3.5).
Рис. 3.5. Форма оформления данных доставки
59
После нажатия кнопки «Далее» пользователя переносит на форму
выбора способа доставки (см. рис. 3.6).
Рис. 3.6. Форма выбора способа доставки
После нажатия кнопки «Далее» пользователя переносит на форму
выбора способа оплаты (см. рис. 3.7).
Рис. 3.7. Форма выбора способа оплаты
После нажатия кнопки «Далее» покупателя переносит на страницу
завершения заказа, где он сможет просмотреть всю подробную информацию
о совершенном заказе (см. рис. 3.8).
60
Рис. 3.8. Страница завершения заказа
Для решения транспортной задачи сотруднику компании необходимо
авторизоваться в системе интернет-магазина и выбрать пункт «Решение
транспортной задачи» (см. рис. 3.9).
Рис. 3.9. Форма авторизации интернет-магазина
61
На данной странице, сотруднику предлагается выбрать количество
мастерских и складов, затем сгенерировать таблицу для занесения данных
транспортной задачи (см. рис. 3.10).
Рис. 3.10. Заполнение данных транспортной задачи
После того, как сотрудник ввел все данные транспортной задачи и
нажал кнопку «Решить», ему предлагается решение данной транспортной
задачи (см. рис. 3.11).
Рис. 3.11. Решение транспортной задачи
62
3.4 Оценка показателей качества
Главной
задачей
тестирования
является
точное
установление
нахождения ошибок или данных, являющихся причиной неисправной работы
программной реализации интернет-магазина. Тестирование выполнено
успешно тогда, когда оно привело к полной локализации первичных ошибок,
подлежащих исправлению.
Контрольное
тестирование
применяется
после
ликвидации
обнаруженных ошибок. Задачей контрольного тестирования является
подтверждение правильности произведенного исправления программной
реализации интернет-магазина. Результатом контрольного тестирования
должно стать отсутствие возникновения ранее обнаруженных ошибок, а
также отсутствие вторичных ошибок, которые могли возникнуть в процессе
исправления.
В процессе ввода данных система интернет-магазина проверяет
корректность вводимой информации, в случае возникновения ошибки
появляется предупреждающее сообщение.
Цель проведения испытания заключалась в том, чтобы проверить все
возможные варианты работы интернет-магазина, протестировать его в
естественных условиях, обнаружить неисправности и устранить их.
В результате испытаний на контрольных примерах было установлено,
что данная программная реализация интернет-магазина работает согласно
заданному техническому заданию.
63
ЗАКЛЮЧЕНИЕ
Цель данной выпускной квалификационной работы заключалась в
проектировании и разработке интернет-магазина продажи костяных изделий
с модулем решения транспортной задачи для компании «Кости Колымы».
Для достижения указанной цели были выполнены следующие задачи:
была
изучена
организация
торговой
деятельности
в
интернете,
проанализированы существующие реализации интернет-магазинов с целью
понять, каким должен быть интернет-магазин, а также выдвинуты
требования к разрабатываемой системе. Для реализации математического
аппарата решения транспортной задачи была изучена формулировка самой
задачи, а также методы ее решения с их последующим сравнением и
выбором самого оптимального из них.
На этапе проектирования интернет-магазина был произведен анализ
существующих систем управления сайтом, позволяющих реализовать
интернет-магазин, разработана и нормализована модель базы данных,
спроектирован дизайн сайта и его модули. Затем была произведена
программная реализация интернет-магазина.
Испытание интернет-магазина показало, что система в полной мере
удовлетворяет поставленным требованиям.
Таким образом, поставленные задачи были решены в полном объеме и
цели достигнуты: разработан интернет-магазин продажи костяных изделий с
модулем решения транспортной задачи и использованием технологии
системы управления сайтом.
К достоинствам системы можно отнести высокую безопасность
данных, возможность расширения функционала и удобный пользовательский
интерфейс, который позволяет пользователю быстро и без проблем
совершить заказ.
64
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Ашманов, И.С. Продвижение сайта в поисковых системах. / И.С.
Ашманов, А.А. Иванов. - Москва: Вильямс, 2013. - 304 с.
2. Вайк Аллен. JavaScript. Энциклопедия пользователя / Вайк Аллен.
Перевод с английского. - Киев: ТОВ "ТИД" ДС", 2011.- 480с.
3. Вендров, А.М. CASE-технологии. Современные методы и средства
проектирования информационных систем. / А.М. Вендров. - Москва:
Финансы и статистика, 2014. - 176 с.
4. Вильямсон,
X.
Универсальный
Dynamic
HTML.
Библиотека
программиста. / Х. Вильямсон. - Санкт-Петербург: Питер, 2011. - 304 с.
5. Коггзолл Джон. РНР 5. Полное руководство. / Когзолл Джон. Перевод с
английского. - Москва: Издательский дом "Вильямс", 2016. - 752 с.
6. Колисниченко, Д.Н. Поисковые системы и продвижение сайтов в
Интернете. / Д.Н. Колисниченко. - Москва: Диалектика, 2017. - 272с.
7. Лещев, Д. Создание интерактивного web-сайта: учебный курс. / Д. Лищев.
- Санкт-Петербург: Питер, 2013. - 544 с.
8. Матросов, А. HTML 5.0. / А. Матросов, А. Сергеев, М. Чаунин. - СанктПетербург: Издательство "BHV", 2017. - 670 с.
9. Мэрдок Келли. JavaScript: наглядный курс создания динамических Webстраниц. / Мэрдок Келли. Перевод с английского. - Москва: Издательский
дом "Вильяме", 2011. - 288 с.
10. Партыкина, Т.Л. Математические методы: учебник. / Т.Л. Партыкина,
И.И. Попов. - Москва: ФОРУМ: ИНФА-М, 2005. - 464 с.
11. Петров, В.И. Информационные системы. / В.И. Петров. - СанктПетербург: Питер, 2012. - 688 с.
12. Ратбон, Э. JavaScript для чайников. / Э. Ратбон. - Киев: Диалектика, 2010.
- 236с.
65
13. Семакин, И.Г. Основы программирования: учебник для сред. проф.
Образования / И.Г. Семакин, А.П. Шестаков. - Москва: Издательский
центр «Академия», 2003. - 432 с.
14. Тереза Нейл. Проектирование веб-интерфейсов - Designing Web Interfaces.
/ Тереза Нейл, Билл Скотт. - Москва: Символ-Плюс, 2010. - 352 c.
15. Томсон Лаура. Разработка Web-приложений на РНР и MySQL / Томсон
Лаура, Веллинг Люк. Перевод с английского. - Санкт-Петербург: ООО
ДиаСофтЮП, 2013. - 672 с.
16. Федосеев, В.В. Экономико-математические методы и прикладные
модели: учебное пособие для ВУЗов. / В.В. Федосеев. - Москва: Юнити,
2002. - 357с.
17. Фленов, М.Е. Программирование глазами хакера. / М.Е. Фленов. - СанктПетербург: БХВ - Петербург, 2013. - 368с.
18. Шапошников, И. Web-сайт своими руками. / И. Шапошников. - СанктПетербург: БХВ - Петербург, 2012. - 591с.
19. Эрик, А. CSS. Каскадные таблицы стилей. / А. Эрик. - Москва: СимволПлюс, 2010г. - 576с.
20. Официальный сайт HostCMS. [Электронный ресурс]. - www.hostcms.ru
66
ПРИЛОЖЕНИЕ
$.plan = function(n_r, n_c, k_a, n_a, f_a, e_t)
{
var sum_need = 0;
var sum_feed = 0;
var fl_end = false;
var f_x = "<br><p class='re'>F(x) = ";
var rez = 0;
var d_k_a = k_a;
var d_n_a = n_a.slice(0);
var d_f_a = f_a.slice(0);
var k_ar = new Array(n_r);
for (var i = 0; i < n_r; i++)
{
k_ar[i] = new Array(n_c);
}
for (i = 0; i < n_r; i++)
{
for (j = 0; j < n_c; j++)
{
k_ar[i][j] = k_a[(n_c * i) + j];
}
}
for (i = 0; i < n_a.length; i++)
{
sum_need += n_a[i] * 1.0;
}
for (i = 0; i < f_a.length; i++)
{
sum_feed += f_a[i] * 1.0;
}
if (sum_need != sum_feed)
{
67
alert("Запасы не равны потребностям!");
}
else
{
while (!fl_end)
{
var min_kof = 1000000 * 1.0;
var temp_kof = 0;
var i_indx = 0;
var j_indx = 0;
var cur_n = 0;
var cur_f = 0;
var min = 0;
var fl_need = 1;
var fl_feed = 1;
for (i = 0; i < n_r; i++)
{
for (j = 0; j < n_c; j++)
{
if (k_ar[i][j] < min_kof)
{
temp_kof = k_ar[i][j] * 1.0;
if (!isNaN(temp_kof))
{
min_kof = temp_kof * 1.0;
i_indx = i;
j_indx = j;
cur_f = f_a[i] * 1.0;
cur_n = n_a[j] * 1.0;
}
}
}
}
if (cur_f <= cur_n)
{
68
min = cur_f;
for (j = 0; j < n_c; j++)
{
if (j != j_indx && k_ar[i_indx][j].indexOf('[') <= 0)
{
k_ar[i_indx][j] = "x";
k_a[(n_c * i_indx) + j] = d_k_a[(n_c * i_indx) + j];
}
else
{
if (k_ar[i_indx][j].indexOf('[') <= 0)
{
k_ar[i_indx][j] = k_ar[i_indx][j]+" ["+min+"]";
f_x = f_x + k_a[(n_c * i_indx) + j] + " * " + min + " + ";
rez = rez + (k_a[(n_c * i_indx) + j] * min);
k_a[(n_c * i_indx) + j] = k_ar[i_indx][j];
}
}
}
}
else
{
min = cur_n;
for (i = 0; i < n_r; i++)
{
if (i != i_indx && k_ar[i][j_indx].indexOf('[') <= 0)
{
k_ar[i][j_indx] = "x";
k_a[(n_c * i) + j_indx] = d_k_a[(n_c * i) + j_indx];
}
else
{
if (k_ar[i][j_indx].indexOf('[') <= 0)
{
k_ar[i][j_indx] = k_ar[i][j_indx]+" ["+min+"]";
69
f_x = f_x + k_a[(n_c * i) + j_indx] + " * " + min + " + ";
rez = rez + (k_a[(n_c * i) + j_indx] * min);
k_a[(n_c * i) + j_indx] = k_ar[i][j_indx];
}
}
}
}
f_a[i_indx] = cur_f - min;
n_a[j_indx] = cur_n - min;
for (i = 0; i < n_a.length; i++)
{
if (n_a[i] != 0)
{
fl_need = 0;
break;
}
}
for (i = 0; i < f_a.length; i++)
{
if (f_a[i] != 0)
{
fl_feed = 0;
break;
}
}
if (fl_feed == 1 && fl_need == 1)
{
fl_end = true;
}
}
f_x = f_x.slice(0, f_x.length - 3);
f_x = f_x + " = " + rez + ";";
$(e_t).find(".inp_kof").parent().each(function(indx)
{
$(this).html(k_a[indx]);
70
});
$(e_t).find(".inp_need").parent().each(function(indx)
{
$(this).html(d_n_a[indx]);
});
$(e_t).find(".inp_feed").parent().each(function(indx)
{
$(this).html(d_f_a[indx]);
});
f_x = f_x + "</p>";
$(e_t).append(f_x);
$("#send_table").hide();
$("#cr_table").html(e_t);
}
}
$(document).ready(function()
{
var num_row = 0;
var num_col = 0;
var edit_table;
$("#start_tb").click(function()
{
$("#cr_table").html('Загрузка...');
var row = parseInt($("#s_1").val()) + 2;
var col = parseInt($("#s_2").val()) + 2;
num_row = row - 2;
num_col = col - 2;
var count_kof = 0;
var count_need = 0;
var count_feed = 0;
var rezult = document.createElement('div');
$(rezult).attr({"id":"rezult_gen"});
var table = rezult.appendChild(document.createElement('table'));
71
$(table).attr({"border":"1", "id":"table_gen", "class":"table table-bordered"});
var tbody = table.appendChild(document.createElement('tbody'));
for (i = 0; i < row; i++)
{
tr = tbody.appendChild(document.createElement('tr'));
for (j = 0; j < col; j++)
{
td = tr.appendChild(document.createElement('td'));
if (j == 0 && i != 0 && i != row - 1)
{
$(td).html("<i>A<sub>"+i+"</sub></i>");
}
if (i == 0 && j != 0 && j != col - 1)
{
$(td).html("<i>B<sub>"+j+"</sub></i>");
}
if (i == 0 && j == 0)
{
$(td).html("Поставщик / Склад");
}
if (j == 0 && i == row - 1)
{
$(td).html("Потребности на складах");
}
if (i == 0 && j == col - 1)
{
$(td).html("Запасы");
}
if (i != 0 && j != 0 && j != col - 1 && i != row - 1)
{
inp_kof = td.appendChild(document.createElement('input'));
$(inp_kof).attr({"type":"number", "id":"i_k_"+count_kof, "min":"0", "max":"1000",
"class":"inp_kof"});
count_kof++;
}
72
if (i == row - 1 && j != 0 && j != col - 1)
{
inp_need = td.appendChild(document.createElement('input'));
$(inp_need).attr({"type":"number", "id":"i_n_"+count_need, "min":"0", "max":"1000",
"class":"inp_need"});
count_need++;
}
if (j == col - 1 && i != 0 && i != row - 1)
{
inp_feed = td.appendChild(document.createElement('input'));
$(inp_feed).attr({"type":"number", "id":"i_f_"+count_feed, "min":"0", "max":"1000",
"class":"inp_feed"});
count_feed++;
}
}
}
edit_table = rezult;
$("#cr_table").html(rezult);
$("#send_table").show();
});
$("#send_table").click(function()
{
var kof_arr = [];
var need_arr = [];
var feed_arr = [];
var err = 0;
$(".inp_kof").each(function()
{
if($(this).val() == '')
{
err = 1;
}
else
{
73
kof_arr.push($(this).val());
}
});
$(".inp_need").each(function()
{
if($(this).val() == '')
{
err = 1;
}
else
{
need_arr.push($(this).val());
}
});
$(".inp_feed").each(function()
{
if($(this).val() == '')
{
err = 1;
}
else
{
feed_arr.push($(this).val());
}
});
if (err == 1)
{
alert("Ошибка, введите все значения!");
}
else
{
$.plan(num_row, num_col, kof_arr, need_arr, feed_arr, edit_table);
}
});
});
74
Выпускная квалификационная работа выполнена мной совершенно самостоятельно.
Все использованные в работе материалы и концепции из опубликованной научной
литературы и других источников имеют ссылки на них.
«___» ________________ _____ г.
__________________________
_____________________
(подпись)
(Ф.И.О.)
Отзывы:
Авторизуйтесь, чтобы оставить отзыв