Разработка интернет-магазина для ООО 'Компас'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,71 Мб
  • Опубликовано:
    2014-03-28
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка интернет-магазина для ООО 'Компас'















Курсовая работа

Тема

Разработка интернет-магазина для ООО «Компас»

ВВЕДЕНИЕ

С недавним же появлением глобальной сети Интернет, информационные потоки стали расти просто в геометрической прогрессии. Интернет становится не просто электронным средством массовой информации, но и своего рода глобальной библиотекой, средой обитания, источником дохода.

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

Среди отличительных особенностей онлайн-коммерции перед традиционной коммерцией можно отметить:

отсутствие географических, временных и в какой-то степени языковых барьеров, что позволяет продвигать товары и услуги на новые рынки сбыта;

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

несравнимо более высокий уровень конкуренции, когда магазин от магазина находится на расстоянии нескольких секунд, требуемых для загрузки соответствующего сайта;

потенциальная емкость электронного магазина значительно превышает емкость традиционных магазинов по причине отсутствия физических ограничений на складские и торговые помещения.

Коммерческие приложения, в первую очередь, должны приносить прибыль или снижать затраты на определенные бизнес-процессы. В основном прибыль Интернет-проектов достигается несколькими путями, среди которых можно отменить следующие:

предоставление рекламных мест;

прямые продажи товаров, услуг и информации;

техническая поддержка;

предоставление инструментов для ведения бизнеса.

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

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

Последние несколько лет разработчики прилагали массу усилий, чтобы интегрировать графику и анимацию в свои апплеты и приложения Java. Однако первоначально включенные в Java графические пакеты AWT Java имели ограниченные средства для решения таких задач. Теперь же, используя интерфейсы прикладного программирования Java 2D и Java 3D, разработчики могут реализовывать гораздо более сложные графические приложения, включая игры, хранители экрана, экранные заставки и трехмерный графический пользовательский интерфейс. На сегодняшний день графика имеет немаловажное значение для языков программирования. Она позволяет визуализировать любые программы, что придает яркость и удобство для использования тех или иных программ. Позволяет создавать яркие и интересные Web-страницы, удобна при разработке баз данных, написании мобильных и компьютерных игр.

С увеличением скорости и улучшением качества компьютерных сетей значение апплетов сильно упало. Теперь вся обработка данных, прежде выполняемая апплетами, переносится на сервер, браузер только загружает и показывает результаты этой обработки, становится «тонким клиентом».

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

Фирма SUN больше не развивает пакет java.applet. В нем так и остался один класс и три интерфейса. В библиотеку Swing вошел класс JApplet, расширяющий класс Applet. В нем есть дополнительные возможности, например, можно установить систему меню. Он способен использовать все классы библиотеки Swing. Но большинство браузеров еще не имеют Swing в своем составе, поэтому приходится загружать классы Swing с сервера или включать их в jar-архив вместе с классами апплета.

Целью исследования, проводимого в рамках настоящей курсовой работы, является изучение объектно-ориентированной технологии программирования на примере языка Java, методов и инструментов разработки web-приложений, и применение полученных знаний для решения прикладных задач, в частности, разработки Интернет-магазина для ООО «Компас».

Объектом исследования является объектно-ориентированная технология разработки программных продуктов; классы - основные компоненты программных единиц, разработанных с её применением, структура и составные элементы классов; базовые принципы объектно-ориентированной технологии программирования, их прикладное значение.

Предметом исследования послужила деятельность ООО «Компас», прикладные программные продукты для разработки HTML-страниц, обработки графических образов, web-дизайна.

Информационной базой исследования является учебная и оригинальная литература, техническая документация по языку программирования Java, система управления контентом Joomla. Она представляет собой набор скриптов, написанных на языке программирования PHP, Adobe Photoshop CS 6, MS Photo Editor.

ГЛАВА 1. АНАЛИЗ ДЕЯТЕЛЬНОСТИ ООО «КОМПАС» В Г. ВЯЗЬМЕ СМОЛЕНСКОЙ ОБЛАСТИ

.1 Основная характеристика ООО Компас» и его деятельности

ООО «Компас» в г. Вязьме является Обществом с ограниченной ответственностью далее именуемое «Обществом», которое является юридическим лицом по законодательству РФ.

Местонахождение Общества (почтовый адрес): 215110 Смоленская область, г. Вязьма, Красноармейское шоссе, д.5.

ООО «Компас» в соответствии с законодательством РФ имеет печати, штампы и бланки со своим наименованием.

Список товаров, предоставляемый потребителю организацией ООО «Компас»:

-       автомобильные аксессуары <#"701471.files/image001.gif">

Рис. 1.1. Внутренние информационные потоки деятельности магазина ООО «Компас»

Пояснение к рис. 1.1.

1,2 - обозначает материалы и сведения, которые директор магазина ООО «Компас» предоставляет для размещения рекламы;

- обозначает информацию, которую покупатель получает через информационную рекламу, размещаемую рекламным агентством;

,5 - обозначает информацию, которую покупатель получает при покупке товара или заказа товара со склада;

,7 - отчеты и квитанции по продаваемым товарам магазином ООО «Компас».

1.3 Возможности java-апплетов

Синтаксис Java близок к синтаксису языка C++. Унаследовав самое лучшее от языка программирования C++, язык Java при этом избавился от некоторых недостатков C++, в результате чего на нем стало проще программировать. В этом языке нет, например, указателей, которые сложны в использовании и потенциально могут послужить причиной доступа программы к не принадлежащей ей области памяти. Нет множественного наследования и шаблонов, хотя функциональные возможности языка Java от этого не пострадали.

Огромное преимущество Java заключается в том, что на этом языке можно создавать приложения, способные работать на различных платформах. К сети Internet подключены компьютеры самых разных типов - Pentium PC, Macintosh, рабочие станции Sun и так далее. Даже в рамках компьютеров, созданных на базе процессоров Intel, существует несколько платформ. Между тем, создавая сервер Web в сети Internet, хотелось бы, чтобы им могло пользоваться как можно большее число людей. В этом случае выручают приложения Java, предназначенные для работы на различных платформах и не зависящие от конкретного типа процессора и операционной системы.

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

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

Вторая группа - это так называемые апплеты (applets). Апплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.

Приложения, относящиеся к первой группе (будем называть их просто приложениями Java), - это обычные автономные программы. Так как они не содержат машинного кода и работают под управлением специального интерпретатора, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++. Однако не следует забывать, что программы Java без перетрансляции способны работать на любой платформе, что само по себе имеет большое значение в плане разработок для Internet.

Апплеты Java встраиваются в документы HTML, хранящиеся на сервере Web. С помощью апплетов можно сделать страницы сервера Web динамичными и интерактивными. Апплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Из соображений безопасности апплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web. Более сложную обработку данных можно выполнять, организовав взаимодействие между апплетами и расширениями сервера Web - приложениями CGI и ISAPI.

Для повышения производительности приложений Java в современных браузерах используется компиляция «на лету»- Just-In-Time compilation (JIT). При первой загрузке апплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается. В результате общая скорость выполнения апплета Java увеличивается в несколько раз.

Язык Java является объектно-ориентированным и поставляется с достаточно объемной библиотекой классов. Так же как и библиотеки классов систем разработки приложений на языке C++, библиотеки классов Java значительно упрощают разработку приложений, представляя в распоряжение программиста мощные средства решения распространенных задач. Поэтому программист может больше внимания уделить решению прикладных задач, а не таких, как, например, организация динамических массивов, взаимодействие с операционной системой или реализация элементов пользовательского интерфейса.

ГЛАВА 2. ВЫБОР И ОБОСНОВАНИЕ ИНСТРУМЕНТОВ РАЗРАБОТКИ ИНТЕРНЕТ-МАГАЗИНА

.1 Язык программирования Java

- объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры. Программы на Java выполняются виртуальной машиной Java (JVM) - программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор. Java - объектно-ориентированный язык, в котором используется при программировании инкапсуляция, полиморфизм и наследование.

Инкапсуляция - свойство языка программирования, позволяющее объединить и защитить данные и код в объекте и скрыть реализацию объекта от пользователя (прикладного программиста). При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public. Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected, internal. Сокрытие реализации целесообразно применять в следующих случаях:

-       предельная локализация изменений при необходимости таких изменений;

-       прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.

Полиморфизм - возможность объектов с одинаковой спецификацией иметь различную реализацию.

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

Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».

Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному - интерфейс, класс. Общность имеет внешнее и внутреннее выражение:

-       внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именем методов и типами аргументов и их количеством);

-       внутренняя общность - одинаковая функциональность методов.

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

В объектно-ориентированных языках класс является абстрактным типом данных. Полиморфизм реализуется с помощью наследования классов и виртуальных функций. Класс-потомок наследует сигнатуры методов класса-родителя, а реализация, в результате переопределения метода, этих методов может быть другой, соответствующей специфике класса-потомка. Другие функции могут работать с объектом класса-родителя, но при этом вместо него во время исполнения будет подставляться один из классов-потомков. Это называется поздним связыванием.

Класс-потомок сам может быть родителем. Это позволяет строить сложные схемы наследования - древовидные или сетевидные. Абстрактные (или чисто виртуальные) методы не имеют реализации вообще (на самом деле некоторые языки, например C++, допускают реализацию абстрактных методов в родительском классе). Они специально предназначены для наследования. Их реализация должна быть определена в классах-потомках. Класс может наследовать функциональность от нескольких классов. Это называется множественным наследованием. Множественное наследование создаёт известную проблему (в C++), когда класс наследуется от нескольких классов-посредников, которые в свою очередь наследуются от одного класса (так называемая «Проблема ромба»): если метод общего предка был переопределён в посредниках, неизвестно, какую реализацию метода должен наследовать общий потомок. Решается эта проблема путём отказа от множественного наследования для классов и разрешением множественного наследования для полностью абстрактных классов (то есть интерфейсов) (C#, Delphi, Java), либо через виртуальное наследование (C++).

Наследование - механизм объектно-ориентированного программирования, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

Простое наследование. Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).

В некоторых языках используются абстрактные классы. Абстрактный класс - это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного. Например, абстрактным классом может быть базовый класс «сотрудник вуза», от которого наследуются классы «аспирант», «профессор» и т. д. Так как производные классы имеют общие поля и функции (например, поле «год рождения»), то эти члены класса могут быть описаны в базовом классе. В программе создаются объекты на основе классов «аспирант», «профессор», но нет смысла создавать объект на основе класса «сотрудник вуза».

При множественном наследовании у класса может быть более одного предка. В этом случае класс наследует методы всех предков. Достоинства такого подхода в большей гибкости. Язык Java не поддерживает множественное наследование.

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

Такой подход является основой объектно-ориентированного программирования. Это позволяет работать с объектами, не вдаваясь в особенности их реализации. В каждом конкретном случае применяется тот или иной подход: инкапсуляция, полиморфизм или наследование. Например, при необходимости обратиться к скрытым данным объекта, следует воспользоваться инкапсуляцией, создав, так называемую, функцию доступа или свойство.

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

Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:

-       применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,

-       широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,

-       аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

.2 Система управления содержимым (CSM)

- система управления контентом, написанная на языках PHP и JavaScript, использующая в качестве хранилища базу данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL.Joomla! включает в себя различные инструменты для изготовления веб-сайта. Важной особенностью системы является минимальный набор инструментов при начальной установке, который дополняется по мере необходимости. Это снижает загромождение административной панели ненужными элементами, а также снижает нагрузку на сервер и экономит место на хостинге.! позволяет отображать интерфейс фронтальной и административной части на любом языке. Каталог расширений содержит множество языковых пакетов, которые устанавливаются штатными средствами администрирования. Доступны пакеты русского, украинского и ещё некоторых языков стран СНГ.

Основные возможности:

функциональность можно расширять с помощью дополнительных модулей (расширений, плагинов);

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

система шаблонов позволяет легко изменять внешний вид сайта;

четкая организация структуры сайта;

разделы тем могут быть добавлены авторами;

- полностью настраиваемые схемы расположения элементов, включая левый, правый и центральный блоки меню;

- закачка изображений при помощи браузера в вашу собственную библиотеку - для последующего использования с любого места сайта;

форум/опросы/голосования для эффективной обратной связи.

Возможности администрирования:

возможность создавать неограниченное количество страниц;

четкая организация структуры сайта;

возможность ограничения доступа пользователей;

для каждой динамической страницы можно создать свое описание и ключевые слова в целях повышения рейтинга в поисковых системах;

начало и окончание публикации любых материалов можно запрограммировать по календарю;

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

изменение порядка объектов, включая новости, вопросы, статьи и т.д.;

библиотека изображений позволит вам хранить все ваши gif- и jpeg-файлы под рукой для лёгкого доступа;

возможность распечатать или отправить другу на e-mail любую статью с сайта;

предварительный просмотр перед окончательным размещением;

возможность легкой смены дизайна;

возможность использования адресов страниц адаптированных для лучшей индексации всеми поисковыми системами.

.3 Система управления продажами Интернет-магазина

появился впервые в виде автономного приложения phpShop для создания Интернет - магазина. Оригинально названный mambo-phpShop, он стал первым специально созданным компонентом электронной коммерции для системы управления сайтом Mambo. После того как Mambo ответвилось в Joomla, разработчик поменял бренд mambo-phpShop на VirtueMart, который официально поддерживает более новую систему управления сайтами Joomla. Текущие версии VirtueMart могут функционировать с Mambo. Старые версии mambo-phpShop всё ещё доступны для загрузки, но уже не имеют активной поддержки.

На сегодняшний день VirtueMart - лучший компонент для Joomla в области электронной коммерции. Этим его делают бесплатность, расширяемость и огромный функционал.поддерживает неограниченное количество продукции и категорий, неограниченное количество валют для одного продукта, назначение продукции множеству категорий, возможность продавать продукцию, предназначенную для скачивания, а также предоставляет возможность отключить функцию продажи и использовать VirtueMart в режиме каталога. VirtueMart позволяет иметь разные цены для одной продукции, основанные на количестве или принадлежности покупателя к определённой группе, и предоставляет возможность использования различных платёжных систем.

В VirtueMart реализована система скидок, купонов, а так же большой выбор систем оплаты и способов доставки. Функционал, обеспечивающий возможность работы нескольких продавцов, заявленный в VirtueMart 1.1.0, в данной ветке не до конца был реализован, поэтому его окончательная реализация перенесена в версию 2.0.0.является свободным программным обеспечением для реализации функции Интернет-магазина и весь PHP-код полностью доступен. Это позволяет PHP-разработчикам просматривать, обновлять или изменять возможности и функции Интернет-магазина. В дополнение ко всему, VirtueMart использует упрощённые шаблоны (называемые 'fly pages' в VirtueMart), предоставляющие возможность изменять внешний вид интернет-магазина и имеющие HTML и CSS формат.

При переносе VirtueMart с Mambo на Joomla разработчики не уделили должного внимания отличиям между Mambo <#"701471.files/image002.gif">

Рис. 3.1. Главная страница Интернет-магазина ООО «Компас»

Меню Интернет - магазина содержит следующие вкладки: «Главная»; «Как купить?»; «Доставка»; «Сервисный центр»; «О компании»; «Контакты». При нажатии на вкладки меню, осуществляется переход по страницам Интернет - магазина с соответствующей информацией для пользователя.

При нажатии пользователем на выбранную категорию продукции, происходит переход на страницу Интернет - магазина «Список товаров» (см. рис. 3.2). На данной странице пользователю отображаются все товары выбранной категории, с указанием стоимости товара и его популярности у покупателей. Так же пользователь может сортировать список товаров по следующим критериям: «Наименование», «Наличие», «Цена товара», «Год».

Рис. 3.2. Страница Интернет - магазина «Список товаров»

Для просмотра более подробной информации, необходимо нажать на кнопку «Подробнее», после чего открывается страница Интернет - магазина «Товар» (см. рис. 3.3). На данной странице пользователь может получить дополнительную информацию о товаре, прочитать комментарии к товару и заказать требуемое количество товаров.

Рис. 3.3. Страница Интернет - магазина «Товар»

Для добавления товара в корзину, пользователю необходимо нажать на кнопку «Купить», после чего появится компонент «Информационное окно» (см. рис. 3.4) уведомляющие о добавления товара в корзину покупателя.

Рис. 3.4. Компонент «Информационное окно»

Для осуществления покупки товаров через Интернет - магазин, пользователю необходимо нажать на корзину пользователя, для перехода на страницу «Оформление заказа» (см. рис. 3.5).

Рис. 3.5. Страница Интернет-магазина «Оформление заказа»

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

После подтверждения способа оплаты, пользователь подтверждает заявку на приобретение товара. После чего открывается страница «Оплата заказа» (см. рис. 3.6). Данная страница фирмы «Единая касса», позволяет оплачивать покупаемые товары через Интернет-магазин.

Рис. 3.6. Страница Интернет - магазина «Оплата заказа»

Компонент «Специальное предложение» (см. рис. 3.7), расположенный на главной странице Интернет - магазина, служит для предоставления товаров со сниженными ценами и возможностью их приобретения через Интернет - магазин.

Рис. 3.7. Компонент «Специальное предложение»

Компонент «Новости» (см. рис. 3.8), расположенный на страницах Интернет - магазина, служит для предоставления пользователю информации о новых новостях, касаемо работы Интернет - магазина и деятельности организации ООО «Строй-Дом».

Рис. 3.9. Компонент «Новости»

Компонент «Регистрация» (см. рис. 3.10) служит для регистрации пользователей Интернет - магазина. При заполнении пользователем требуемых данных, отправляется сопроводительное письмо на электронный адрес, указываемый при регистрации, со ссылкой на подтверждения регистрации, после подтверждения ссылки регистрации, пользователю становится доступна возможность покупки товаров через Интернет - магазин.

Рис. 3.10. Компонент «Регистрация»

Компонент «Поиск» (см. рис. 3.11) служит для поиска требуемой информации по Интернет - магазину по критериям поиска.

Рис. 3.11. Компонент «Поиск»

3.2 Алгоритм разработки Интернет-магазина

Алгоритм разработки Интернет-магазина для ООО «Компас».

1) От организации ООО «Компас» были получены сведения, касающиеся деятельности организации, ее функций и истории создания, перечень товаров с указанием их характеристики и стоимости, а также другая информация, необходимая для разработки Интернет-магазина.

) Полученная информация на бумажном носителе была преобразована в электронный формат посредством программы Microsoft FrontPage.

) Выбраны анимационные картинки для последующего их размещения на страницах Интернет - магазина.

) Создан дизайн с помощью графического редактора Abode Photoshop CS6 и Abode Dreamweaver CS6.

6) На основе полученной и обработанной мною информации, была создана главная страница - Main.html. По центру размещена информация о новостях, специальные предложения, рекомендуемые товары. В верхней части сайта расположено меню: «Главная»; «Как купить?»; «Доставка»; «Сервисный центр»; «О компании»; «Контакты».

7) После чего были размещены страницы с соответствующими материала, переход по которым возможен через основное меню сайта.

8) Следующим шагом была разработка компонентов Интернет - магазина для размещения товаров с подробным описанием и возможностью покупки товаров через Интернет.

) Так же были размещены компоненты: «Регистрация»; «Корзина покупателя»; «Баннерная реклама»; «Прайс - лист». Данные компоненты служат для улучшения работы Интернет - магазина и предоставления рекламы.

10) Следующим шагом было написание апплета на языке программирования Java. Внедрение апплета позволило придать страницам Интернет - магазина более привлекательный вид. Апплет представляет собой модуль, с расположенными в нем информации о времени, в виде стрелочных часов (см. рис. 3.12).

Рис. 3.12. Апплет «Стрелочные часы»

) Отладка апплета, получение исполняемого модуля CircleClock.class.

) Чтобы увидеть как работает этот апплет, была создана пробная html-страница, в которую и был вставлен разработанный апплет. Также работа апплета была просмотрена встроенной в инструментальную среду jdk1.3.1 программой для просмотра апплетов - appletwiever.

) Произведена настройка гиперссылок на главную страницу.

) С помощью мастера настройки шаблонов страниц были созданы страницы, переход на которые возможен со страниц, идущих от главной, и не возможен на Main.html.

) Был продуман дизайн и помещена обработанная информация, преобразованная с бумажных, электронных носителей и размещена на странице Интернет - магазина.

) Установлены и проверены гиперссылки на все страницы Интернет - магазина.

) Проверка работоспособности сайта в web-браузерах: Internet Explorer, Google Chrome и Opera при различной разрешающей способности монитора ПЭВМ.

Рассмотрим описание структуры Интернет - магазина ООО «Компас». Структура Интернет - магазина представлена на рис. 3.13.

Рис. 3.13. Структура Интернет-магазина

3.3 Описание алгоритма создания и библиотечных классов, использованных при разработке апплета

Апплеты - это маленькие приложения, которые размещаются на серверах Internet, транспортируются клиенту по сети, автоматически устанавливаются и запускаются на месте, как часть документа HTML. Когда апплет прибывает к клиенту, его доступ к ресурсам ограничен.

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

Кроме приложений, язык Java позволяет создавать апплеты (applets). Это программы, работающие в среде другой программы - браузера. Апплеты не нуждаются в окне верхнего уровня - им служит окно браузера. Они не запускаются JVM - их загружает браузер, который сам запускает JVM для выполнения апплета. Эти особенности отражаются на написании программы апплета.

С точки зрения языка Java, апплет - это всякое расширение класса Applet, который, в свою очередь, расширяет класс panel. Таким образом, апплет - это панель специального вида, контейнер для размещения компонентов с дополнительными свойствами и методами. Менеджером размещения компонентов по умолчанию, как и в классе Panel, служит FiowLayout. Класс Applet находится в пакете java. applet, в котором кроме него есть только три интерфейса, реализованные в браузере. Надо заметить, что не все браузеры реализуют эти интерфейсы полностью.

Поскольку JVM не запускает апплет, отпадает необходимость в методе main (), его нет в апплетах.

В апплетах редко встречается конструктор. Дело в том, что при запуске первого создается его контекст. Во время выполнения конструктора контекст еще не сформирован, поэтому не все начальные значения удается определить в конструкторе.

Метод init () не имеет аргументов, не возвращает значения и должен переопределяться в каждом апплете - подклассе класса Applet. Обратные действия - завершение работы, освобождение ресурсов - записываются при необходимости в метод destroy, тоже выполняющийся автоматически при выгрузке апплета. В классе Applet есть пустая реализация этого метода.

Кроме методов init() и destroy() в классе Applet присутствуют еще два пустых метода, выполняющихся автоматически. Браузер должен обращаться к методу start() при каждом появлении апплета на экране и обращаться к методу stop(), когда апплет уходит с экрана. В методе stop() можно определить действия, приостанавливающие работу апплета, в методе start() - возобновляющие ее. Надо сразу же заметить, что не все браузеры обращаются к этим методам как должно.

Обязательные параметры <appiet>:

-       code - URL-адрес файла с классом апплета или архивного файла;

-       width и height - ширина и высота апплета в пикселах.

Необязательные параметры:

-       codebase - URL-адрес каталога, в котором расположен файл класса апплета. Если этот параметр отсутствует, браузер будет искать файл в том же каталоге, где размещен соответствующий HTML-файл;

-       archive - файлы всех классов, составляющих апплет, могут быть упакованы архиватором ZIP или специальным архиватором JAR в один или несколько архивных файлов. Параметр задает URL-адреса этих файлов через запятую;

-       align - выравнивание апплета в окне браузера. Этот параметр имеет одно из следующих значений: ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP;

-       hspace и vspace - горизонтальные и вертикальные поля, отделяющие апплет от других объектов в окне браузера в пикселах;

-       download - задает порядок загрузки изображений апплетом. Имена изображений перечисляются через запятую в порядке загрузки;

-       name - имя апплета. Параметр нужен, если загружаются несколько ап-плетов с одинаковыми значениями code и codebase;

-       style - информация о стиле CSS (Cascading Style Sheet); title - текст, отображаемый в процессе выполнения апплета;

-       alt - текст, выводимый вместо апплета, если браузер не может загрузить его;

-       mayscript - не имеет значения. Это слово указывает на то, что апплет будет обращаться к тексту JavaScript.

Метод getCodeBase () возвращает URL-адрес каталога, в котором лежит файл класса апплета.

Метод getoocumentBase () возвращает URL-адрес каталога, в котором лежит HTML-файл, вызвавший апплет.

Браузер реализует интерфейс Appletcontext, находящийся в пакете java.applet. Апплет может получить ссылку на этот интерфейс методом getAppletContext().

С помощью методов getApplet (String name) и getApplets() интерфейса Appletcontext можно получить ссылку на указанный аргументом name апплет или на все апплеты, загруженные в браузер.

Метод showDocument(URL address) загружает в браузер HTML-файл с адреса address.

Метод showDocument (URL address, String target) загружает файл во фрейм, указанный вторым аргументом target. Этот аргумент может принимать следующие значения:

-       _seif - то же окно и тот же фрейм, в котором работает апплет;

-       _parent - родительский фрейм апплета;

-       _top - фрейм верхнего уровня окна апплета;

-       _biank - новое окно верхнего уровня;

-       name - фрейм или окно с именем name , если оно не существует, то будет создано.

Тег HTML. Тег <applet>используется для запуска апплета как из HTML-документа, так и из программы appletviewer. Программа appletviewer выполняет каждый найденный ей тег <applet> в отдельном окне, в то время как браузеры позволяют разместить на одной странице несколько апплетов.

Далее будет представлена часть тега <applet> с кратким описанием создания стрелочных часов:

<applet code=CircleClock.class archive="CircleClock.jar" width = 300 height = 300>

<param name=dialColor value="FFFEeFEFE">

<param name=hairLineColor value="FF42C151">

<param name=hoursNeedleColorvalue="7F000000">

<param name=minutesNeedleColor value="7F0000FF">

<param name=secondsNeedleColor value="7FFF0000">

</applet>

Первая строка стандартная. В ней задаются следующие параметры:- имя класса, содержащего метод init();- имя архива, содержащего апплет (jar-файл);- длина апплета;- высота апплета.

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

Следующие пять параметров задают цвета стрелок, циферблата и черточек на циферблате.

При этом параметр name указывает название элемента, а параметр value - его цвет.

-       dialColor - цвет циферблата;

-       hairLineColor - цвет черточек на циферблате;

-       hoursNeedleColor - цвет часовой стрелки;

-       minutesNeedleColor - цвет минутной стрелки;

-       secondsNeedleColor - цвет секундной стрелки.

При этом FF соответствует максимально насыщенному цвету (или нулевой прозрачности), а 00 - отсутствию данной составляющей в цвете (или 100% прозрачности).

Так же для настройки часов, можно использовать несколько параметров:

-       FFFFFFFF - не прозрачный белый цвет;

-       7F000000 - черный цвет (~50% прозрачность);

-       7F0000FF - синий цвет (~50% прозрачность);

-       7F00FF00 - зеленый цвет (~50% прозрачность).

При запуске апплета выполняется установка цветов, определение размеров, расчет размеров стрелок, черточек на циферблате и т.д.

Далее необходимо с какой-то периодичностью обновлять содержимое апплета (т. е. определять текущее время и поворачивать стрелки). Для этого создаем парралельный поток (timer), который периодически вызывает функцию update().

При каждом обновлении апплета определяется время, рассчитываются углы поворота стрелок, и выполняется перерисовку окна апплета. Для визуализации стрелок часов был использованы следующие класс: BufferedImage. Текст апплета полностью представляется в приложении 1.

ЗАКЛЮЧЕНИЕ

Апплеты были первоначальным практическим применением Java. За первые два года существования Java были написаны тысячи очень интересных и красивых апплетов, ожививших WWW. Масса апплетов разбросана по Internet, хорошие примеры апплетов собраны в JDK в каталоге demo\applets.

В JDK вошел целый пакет java.applet, в который фирма SUN собиралась заносить классы, развивающие и улучшающие апплеты.

С увеличением скорости и улучшением качества компьютерных сетей значение апплетов сильно упало. Теперь вся обработка данных, прежде выполняемая апплетами, переносится на сервер, браузер только загружает и показывает результаты этой обработки, становится "тонким клиентом".

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

Фирма SUN больше не развивает пакет java.applet. В нем так и остался один класс и три интерфейса. В библиотеку Swing вошел класс JApplet, расширяющий класс Applet. В нем есть дополнительные возможности, например, можно установить систему меню. Он способен использовать все классы библиотеки Swing. Но большинство браузеров еще не имеют Swing в своем составе, поэтому приходится загружать классы Swing с сервера или включать их в jar-архив вместе с классами апплета.

В ходе выполнения данной курсовой работы, автором были получены следующие возможности, а именно:

-        получены знания по теоретическим концепциям объектно - ориентированной методологии и технологии программирования;

-        возможность применения объектно - ориентированную технологию программирования для решения различных прикладных задач;

         получены практические навыки разработки консольных приложений, апплетов на языке Java - 2 в среде jdk1.4.1 или Netbeans.

Результатом исследования деятельности ООО «Компас», проводимого в рамках настоящей курсовой работы, является создание Интернет - магазина для ООО «Компас».

Были решены основные задачи исследования:

-       выполнен системный анализ предметной области и деятельности объекта автоматизации;

-       построена модель «AS - IS» по результатам обследования объекта автоматизации;

-       выбраны средства для реализации и разработки Интернет-магазина, описаны языки программирования, средства графических редакторов и система контента;

-       описан разработанный Интернет-магазин для ООО « Компас»;

-       описаны алгоритмы разработки и работы Интернет-магазина;

-       разработан и внедрен апплет в виде стрелочных часов, который размещен на страницах Интернет-магазина.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

объектный программирование интернет магазин

1.      Ахромов Я.В. Технологии web - дизайна и flash - технологии. - Р-н/Д.: Феникс, 2004

.        Благодатских В.А. Стандартизация разработки программных средств. - М.: Финансы и статистика, 2005

.        Вайк Ален и др. JavaScript. Справочник. Пер. с англ. - СПб.: ООО «М.: ДиаСофтЮП, 2002

.        Венц К., Хаузер Т. Как создать свой сайт: Самоучитель/ Пер. с нем. - М.: НТ Пресс, 2006

.        Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Гамма Э., Хелм Р., Джонсон Р., Влиссидес ДЖ. - СПб.: Питер, 2012

.        Зельдман Д. Web - дизайн по стандарту: пер. с англ. - М.: НТ Пресс, 2005

.        Лещев Д. Создание интерактивного web - сайта: учебный курс. - СПб.: Питер, 2003

.        Ноблес Р., Керри - Лэй Г. Эффективный web - сайт: учебное пособие. - М.: ТРИУМФ, 2004

.        Орлов С.А. Технологии разработки программного обеспечения: Учебник для вузов. - 3-е изд., СПб.: Питер, 2004

.        Хабибуллин И.Ш. Самоучитель java 2. - СПб.: БХВ - Петербург, 2005

.        Хорев П.Б. Технологии объектно-ориентированного программирования: Учебное пособие для вузов. - М.: Академия, 2004

.        Эккель Б. Философия Java. Библиотека программиста. - СПб.: Питер, 2003

ПРИЛОЖЕНИЯ

Приложение 1

// реализация класса CircleClockclock;

/*

* CircleClock.java

*

* Created on sen2013/

*/java.awt.*;java.awt.image.*;java.awt.geom.*;java.util.Calendar;class CircleClock extends java.applet.Applet implements Runnable {

/**

private static final long serialVersionUID = 1L;

private Needle hNeedle, mNeedle, sNeedle;ClockDial dial;int w, h;BufferedImage bi;Graphics2D big;boolean stop = false;Thread timer = null;Color dialColor = Color.YELLOW;Color hairLineColor = Color.GREEN;Color hoursColor = Color.BLACK;Color minutesColor = Color.BLUE;Color secondsColor = Color.RED;

/** Этот метод будет вызван после загрузки апплета */void init() {{

ПРИЛОЖЕНИЕ 1 (продолжение)

//Создаем объекты и устанавливаем начальные значения.

Dimension dim = getSize();= dim.width;

h = dim.height;

//устанавливаем цвета стрелок и циферблата

setColors();

//Создаем стрелкиradius = 0;(w < h)= w/2;= h/2;= new Needle(radius, radius/5); //минутная стрелка= new Needle(2d/3d*radius, radius/4); //часовая стрелка= new Needle(radius, radius/10); //секундная стрелка

//создаем циферблат= new ClockDial(radius*2, dialColor, hairLineColor);

//Создаем изображение и получаем его объект Graphics2D.

//Рисовать будем только на нем, а экран выводим уже

//готовый рисунок (т.н. двойная буферезация).

bi = (BufferedImage)createImage(w, h);= bi.createGraphics();.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON);

//Создаем поток, который будет периодически вызывать метод update.

timer = new Thread(this);.start(); }(Exception error) {.out.println(error.getMessage());

ПРИЛОЖЕНИЕ 1 (продолжение)

}

/** Этот метод выполняет перерисовку окна апплета */

public void update(Graphics g) {

try {

//Получаем указатель на объект Graphics2D

Graphics2D g2 = (Graphics2D)g;();

//Рисуем готовое изображение на экране.drawImage(bi, 0, 0, this);

big.setTransform(new AffineTransform());

}(Exception error) {.out.println(error.getMessage());

}

}void grawClock() {

//Узнаем текущее времяcurTime = Calendar.getInstance();.setTimeInMillis(System.currentTimeMillis());hour = curTime.get(Calendar.HOUR_OF_DAY);min = curTime.get(Calendar.MINUTE);sec = curTime.get(Calendar.SECOND);

//Очищаем рисунок.setBackground(Color.WHITE);.clearRect(0, 0, w, h);

//Рисуем циферблатluCorner = new Point(0, 0);(w > h)

ПРИЛОЖЕНИЕ 1 (продолжение)

{

luCorner.x = (w - h)/2;

luCorner.y = 0;

}

{.x = 0;.y = (h - w)/2;

}.drawImage(dial.getClockDial(), null, luCorner.x, luCorner.y);

//Рисуем стрелки.setColor(hoursColor);hat = new AffineTransform();.translate(w/2 - hNeedle.getRotationCenter().x,

h/2 - hNeedle.getRotationCenter().y);

/*Рассчитываем угол поворота часовой стелки. Каждый час на

-ти часовом циферблате соответствует 30-ти градусам, а 1

минута - 0.5 градуса. Затем результат переводим в радианы. */(hour >= 12)-= 12;theta = (-90 + (30*hour + 0.5*min))*Math.PI/180;.rotate(theta, hNeedle.getRotationCenter().x,.getRotationCenter().y);.setTransform(hat);.fill(hNeedle.getNeedle());.setColor(minutesColor);mat = new AffineTransform();.translate(w/2 - mNeedle.getRotationCenter().x,/2 - mNeedle.getRotationCenter().y);

ПРИЛОЖЕНИЕ 1 (продолжение)

/*Рассчитываем угол поворота минутной стелки. Каждая минута на

-ти часовом циферблате соответствует 6-ти градусам, а 1

секунда - 0.1 градуса. Затем результат переводим в радианы. */= (-90 + (6*min + 0.1*sec))*Math.PI/180;.rotate(theta, mNeedle.getRotationCenter().x,.getRotationCenter().y);.setTransform(mat);.fill(mNeedle.getNeedle());.setColor(secondsColor);sat = new AffineTransform();.translate(w/2 - sNeedle.getRotationCenter().x,

h/2 - sNeedle.getRotationCenter().y);

/*Рассчитываем угол поворота сеундной стелки. Каждая секунда на

-ти часовом циферблате соответствует 6-ти градусам.

Затем результат переводим в радианы. */= (-90 + (6*sec))*Math.PI/180;.rotate(theta, sNeedle.getRotationCenter().x,.getRotationCenter().y);.setTransform(sat);

big.fill(sNeedle.getNeedle()); }

//Этот метод читает параметры апплета, и устанавливает

//цвета стрелок и циферблата.void setColors() {{

/* Вообще-то, для задания цвета нужно число типа int, т.е. 4 байта,

но int - это число со знаком (от "-2^31" до "2:31 - 1"), а нам

нужно число с диапазоном от "0" до "2^32", т.е. те же 4 байта,

но без знака. Для этого мы сначала создаем число типа Long, а

затем, с помощью метода intValue() получаем тип int. */

ПРИЛОЖЕНИЕ 1 (продолжение)dc = new Long(Long.parseLong(getParameter("dialColor"), 16));hlc = new Long(Long.parseLong(getParameter("hairLineColor"), 16));hnc = new Long(Long.parseLong(getParameter("hoursNeedleColor"), 16));mnc = new Long(Long.parseLong (getParameter ("minutesNeedleColor"), 16));snc = new Long(Long.parseLong(getParameter ("secondsNeedleColor"), 16));= new Color(dc.intValue(), true);= new Color(hlc.intValue(), true);= new Color(hnc.intValue(), true);= new Color(mnc.intValue(), true);= new Color(snc.intValue(), true);

}(Exception error) {.out.println(error.getMessage());

}

}

//Этот метод выполняется в отдельном потоке (timer).

//Он вызывает перерисовку окна апплета каждую секунду.

public void run() {(!stop) {{();.currentThread().sleep(1000);

}

catch(Exception err) {}

}

}

//Этот метод выполняется если пользователь покинул страницу

//с апплетом. Он останавливает поток (timer) и, соответственно,

//перерисовку окна апплета.void stop() {.stop();= true;

}

//Этот метод выполняется когда пользователь попадает на страницу

//с апплетом. Он запускает парралельный поток (timer).

public void start() {.start();= false;(timer == null) {= new Thread(this);.start();

} }

//Этот метод выполняется при закрытии страницы с апплетом.

public void destroy() {.destroy();

stop = true;

//Ждем пока парралельный поток (timer) завершит работу.

Thread.currentThread().yield();

}String[][] getParameterInfo() {[][] retValue = {

{"dialColor", "hex", "alfa, red, green, blue (4 bytes, from 00 to FF)"},

{"hairLineColor", "hex", "alfa, red, green, blue (4 bytes, from 00 to FF)"},

{"hoursNeedleColor", "hex", "alfa, red, green, blue (4 bytes, from 00 to FF)"},

{"minutesNeedleColor", "hex", "alfa, red, green, blue (4 bytes, from 00 to FF)"},

};retValue;

}String getAppletInfo() {retValue;= "Circle Clock";retValue;

}

}

// реализация класса ClockDialclock;

/*

* ClockDial.java

*

* Created on май 2009 г.

*/java.awt.*;java.awt.geom.*;java.awt.image.*;

/**

*

* @author Бочкарева Мария

*/class ClockDial {double diam;BufferedImage dial;Color dialColor;Color hairLineColor;

/** Создает экземпляры <code>ClockDial</code>. При создании

* необходимо указать диаметр циферблата.

*

* @param diam диаметр циферблата.

*

* @param dialColor цвет циферблата.

*

* @param hairLineColor цвет черточек на циферблате.

*

* @exception IncorrectParametersException - если диаметр меньше

* или равен нулю.

*/ClockDial(double diam, Color dialColor, Color hairLineColor)IncorrectParametersException {

//проверяем диаметр(diam <= 0)new IncorrectParametersException();.diam = diam;.dialColor = dialColor;.hairLineColor = hairLineColor;

//создаем рисунок= new BufferedImage((int)diam, (int)diam,.TYPE_INT_ARGB);

//создаем черточку на циферблатеD.Double r = new Rectangle2D.Double(-diam/40, -diam/60, diam/20, diam/30);at = new AffineTransform();

//смещаем начало координат в центр циферблата

at.translate(diam/2, diam/2);

//сохраняем текущее преобразование

AffineTransform prev = (AffineTransform)at.clone();

//получаем графический контекстD g2 = dial.createGraphics();

//закрашиваем все заданным цветом.setBackground(dialColor);

g2.clearRect(0, 0, (int)diam, (int)diam);

//устанавливаем цвет черточек.setColor(hairLineColor);

//рисуем 12 штрихов(int i = 0; i < 12; i++)

{

//смещаем центр координат к краю циферблата (туда,

//где должен быть расположен штрих)

at.translate(-(diam/2 - r.width), 0);

//поворачиваем штрих относительно центра циферблата.rotate(Math.toRadians(30*i), diam/2 - r.width, 0);

//устанавливаем текущее преобразование.setTransform(at);

//рисуем штрих.fill(r);

//восстанавливаем начальное преобразование.setTransform(prev);

}

}

/**

* Возвращает изображение циферблата.

*

* @return BufferedImage рисунок, содержащий изображение циферблата

*/BufferedImage getClockDial() {dial;

}

}

// реализация класса IncorrectParametersExceptionclock;

/*

* IncorrectParameters.java

*

* Created on май 2009 г.

* */

/**

*

* @author Бочкарева Мария

*/class IncorrectParametersException extends java.lang.Exception {

/**

*

*/

private static final long serialVersionUID = 1L;

/**

*/IncorrectParametersException() {("IncorrectParameters");

}

/**

* Constructs an instance of <code>IncorrectParameters</code> with the specified detail message.

* @param msg the detail message.

*/IncorrectParametersException(String msg) {(msg);

}

}

// реализация класса Needleclock;

/*

* Needle.java

* Created on май 2009 г.

*/java.awt.*;java.awt.geom.*;

/**

* Этот класс предназначен для создания стрелки часов

* @author Бочкарева Мария

*/class Needle {GeneralPath shape;double length, width;

/** Создает экземпляры класса <code>Needle</code>.

* При создании необходимо указать длину и ширину стрелки.

* Длина должна быть больше ширины.

* @param length длина стрелки

* @param width длина стрелки

* @exception IncorrectParametersException - если длина меньше или

* равна нулю, если ширина меньше или равна нулю, если длина

* меньше или равна ширине.

*/Needle(double length, double width)IncorrectParametersException {

//проверяем параметры(length <= 0 || width <=0 || length <= width)new IncorrectParametersException();.length = length;

this.width = width;

//создаем графический объект

shape = new GeneralPath();.moveTo(0f, (float)width/2);.lineTo((float)width/2, 0);.lineTo((float)length, (float)width/2);.lineTo((float)width/2, (float)width);

shape.closePath();

}

/**

* Возвращает стрелку в виде объекта типа <code>Shape</code>.

* @return Shape - фигура, содержащая изображение стрелки

*/Shape getNeedle() {shape;

} /**

Похожие работы на - Разработка интернет-магазина для ООО 'Компас'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!