Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка структуры и функционала интернет-представительства компании

Содержание:

Введение

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

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

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

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

Актуальность темы вытекает из необходимости продвижения товаров компании в сети интернет. Таким образом сайт является рекламной площадкой компании.

В качестве одной из возможных платформ для программной реализации сайта использована платформа семейства Unix-Linux с системой управления базами данных (СУБД) MySQL, языком написания динамических сценариев на стороне сервера php.

Основная часть

1.1 Требования к приложению

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

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

Целью курсового проекта является разработка прототипа сайта компании. Сайт предназначен для широкого круга пользователей – потребителей продуктов, экспертов в сфере качества продуктов питания.

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

Характеристика сайта. Сайт должен обеспечивать реализацию следующих функций:

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

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

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

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

Шрифты, используемые в графических элементах сайта, могут выбираться произвольно. Шрифты, используемые в текстовых материала сайта, должны соответствовать стандартным шрифтам браузеров: Helvetica/Arial, Times New Roman.

Слова, наиболее полно характеризующие стилистику сайта: вкусный, аппетитный, кондитерский. Цвета: розовый, коричневый.

Требования к функциональности веб-сервера. Веб-сервер должен обеспечивать возможности:

  • управления содержанием и структурой сайта;
  • осуществления обратной связи c пользователями - прием отзывов и запросов пользователей;
  • обработки статистики посещений;
  • ведения статистики голосований.

Требования к браузеру. Сайт должен обеспечивать корректное отображение данных в следующих браузерах: Internet Explorer 5.0 и выше (Microsoft), Opera 7.0 и выше (Opera Software)

Требования к верстке. Сайт должен быть оптимизирован для просмотра при разрешении 1024*768, 1280*1024. Мета-теги и контент сайта на этапе изготовления сайта должны быть настроены с учетом требований поисковых систем.

Структура сайта и навигация. О проекте, Общая информация; Вакансии; Новости; Продукция; Магазины; Отзывы; Контакты.

Описание разделов (страниц) сайта. Главная страница является основной точкой входа на сайт. Она должна обеспечивать доступ ко всем основным разделам сайта (разделам 1-го уровня). Главная страница должна содержать следующие основные блоки:

Краткую информацию о проекте и блок «Голосование».

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

Блок анонсов новостей. На главной странице находятся анонсы последних новостей в данной области. Дата, Заголовок, Краткая аннотация.

При нажатии на ссылку осуществляется переход к странице с полным текстом новости. Новости отображаются в виде списка.

Заголовок новости является ссылкой. При нажатии на ссылку осуществляется переход на страницу с полным текстом новости.

Предполагается ограничить количество выводимых на странице новостей (по 5), использоваться постраничная навигация в виде ссылок. Отображается навигация только в том случае, если количество элементов списка превышает заданное. Пример навигации: [1-10] [11-20] [21-30] [31-34]

Магазины. Страница имеет ссылки на подразделы: Фирменные магазины; Магазины по районам;

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

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

После заполнения формы и нажатия на кнопку «Отправить» система проверяет корректность данных, и в случае ошибки выводит сообщение над формой. В случае успешной отправки там же выводится соответствующее сообщение.

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

После заполнения формы и нажатия на кнопку «Отправить» система проверяет корректность данных, и в случае ошибки выводит сообщение над формой. В случае успешной отправки там же выводится соответствующее сообщение.

1.2 Анализ исходных данных

С точки зрения технологии и организации работы пользователя минимальными требованиями к системе являются:

  • возможность осуществления всех необходимые операций по работе с исходными данными и результатной информацией (разграничение доступа к данным, ввод, изменение и удаление, печать, поиск – для пользователя администратора);
  • наличие понятного и удобного пользовательского интерфейса.
  • добавление/изменение/удаление различных групп пользователей;
  • добавление/изменение/удаление продуктов;
  • регистрация и авторизация групп пользователей;
  • формирование поисковых запросов.

Требования к видам обеспечения.

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

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

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

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

Требования к составу и характеристикам технических средств (клиентская часть). Требования к составу и техническим характеристикам аппаратного обеспечения представлены в таблице с учетом функциональности системы и объема обрабатываемых данных.

Таблица 1.1

Требования и технические характеристики аппаратного обеспечения

Характеристика

Рекомендуемые требования

Центральный процессор

Intel Pentium 3/AMD Athlon, 700MHz

Объем оперативной памяти

1024 МБ

Объем дискового пространства

350 МБ

Разрешение экрана видеосистемы

1024x768 pix

Принтер

Hp LaserJet p1102

Требования к программным средствам. Работа программного обеспечения клиентской части происходит в операционной системе Windows XP и выше.

Работа программного обеспечения серверной части происходит в операционной системе Linux.

Язык программирования на стороне сервера PHP.

Язык программирования на стороне клиента HTML, JavaScript.

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

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

С позиций распространенности и доступности рекомендуется использование при программировании среды СУБД MySQL.

Функции администратора системы.

Администратор системы выполняет следующие функции:

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

Разработка приложения

Интерфейс сайта, веб-ориентированной ИС представляется в виде html страниц со ссылками и кнопками меню. Часть страниц имеют статический характер, но другие страницы формируются динамически. Динамические страницы формируются с использованием php кода, хранящегося в php файлах системы.

Большинство веб-страниц сайта формируется динамически с использованием возможностей языков PHP-CSS. С помощью них были созданы типовые шаблоны веб-страниц. При формировании текущей веб-страницы сервер использует шаблон требуемой страницы и «закачивает» в него внешние данные, связанные с данной страницей. При этом одна часть данных для формирования веб-страниц находятся в специальных PHP-блоках, контейнерах. Как правило, это очень редко меняющиеся данные, например, шапки таблиц базы данных на русском языке. Другая часть исходных данных «закачивается» сервером из базы данных (вернее сказать при взаимодействии с сервером базы данных). База данных реализуется в среде СУБД MySQL. Такой подход позволяет придерживаться базового принципа в разработке программного обеспечения – разделения кода и данных, что в свою очередь предоставляет возможность оперативного изменения данных без изменения Html-php кода веб-страниц. Далее будет показано на отдельных примерах, как это реализовано в кодах.

Таким образом, основные потоки данных в системе можно представить в виде схемы, представленной на рисунке 3.1.

C:\Users\1\Pictures\Дипломы\Диаграммы\Потоки данных с фоном.jpg

Рисунок 3.1 - Динамическое формирование веб-страниц ИС

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

Главная страница системы расположена по адресу: http://www.diofant.com/Control_3K/index.php

Эта веб-страница состоит из ряда, специальным образом построенных таблиц в терминологии языка HTML, разделяющих экран на отдельные поля и линейного, в виде ленты, меню с возможными вариантами работы с системой (рисунок 3.2). Структура типовой веб-страницы системы приведена в ниже. Любая страница ИС состоит из «шапки», Header.php, и статической части или динамической части, формируемой PHP-модулями.

C:\Users\1\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Word\Menu.jpg

Рисунок 3.2 - Структура веб-страниц страниц

Каждой кнопке меню соответствует ссылка на определенный функциональный модуль сайта, определенный функционал ИС.

Главная страница сайта представлена на рисунке 3.3. Так как в данной курсовой работе, по сути, создается прототип системы, то на главной страницы дано краткое описание концепции проекта, кнопка «О ПРОЕКТЕ». Структура и дизайн страниц первоначально проектируется с помощью графического редактора и визуальных средств проектирования веб–страниц.

Рисунок 3.3 - Главная страница сайта с кратким описанием проекта

Кнопке главного меню «О ПРОЕКТЕ» соответствует описание сути работы.

роме рассмотренных пунктов топ меню еще включены кнопки «ПРОДУКТЫ» и кроме того включены кнопки «ОТЗЫВЫ» и «НОВОСТИ», которые будут реализованы при развитии проекта.

Пункту меню «КОНТАКТЫ» обратная связь с администратором сайта.

При нажатии на вкладку категории, переходим к категориям товаров.

Рисунок 3.5-Категории товаров

Проектирование форм для добавления и обновления данных. На любом сайте, веб-оринтированной ИС должны быть формы для добавления и обновления данных базы данных или формы обратной связи, регистрации и авторизации и прочие формы. Рассмотрим формы для реализации веб-интерфейса пользователей и администратора системы с базой данных. Если таблиц базы данных достаточно много, то невозможно для каждой таблицы создавать специальную форму. Необходимо унифицировать формы для добавления и обновления данных для всех таблиц базы данных, что и проектируется в настоящей системе. Для каждой таблицы базы данных унифицированная форма генерируется php кодом динамически на основе того же php блока, шаблона, что и табличное представление, описанное выше. Общая схема процесса генерации представлена на рисунке 3.1 третьего раздела. В качестве примера приведем форму обновления слогана 3.6.

Рисунок 3.6 - Форма для добавления (обновления) данных слогана компании

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

Любой сайт, веб-приложение, это совокупность электронных документов (файлов), объединённых под одним адресом (доменным именем или IP-адресом).

Страницы сайтов — это набор текстовых файлов, размеченных на языке HTML. Эти файлы, будучи загруженными посетителем на его компьютер, понимаются и обрабатываются браузером и выводятся на средство отображения пользователя (монитор, экран КПК, принтер или синтезатор речи). Язык HTML позволяет форматировать текст, различать в нём функциональные элементы, создавать гипертекстовые ссылки (гиперссылки) и вставлять в отображаемую страницу изображения, звукозаписи и другие мультимедийных элементы. Отображение страницы можно изменить добавлением стилей на языке CSS, что позволяет централизовать в определенном файле все элементы форматирования (размер и цвет заглавных букв 2-го уровня, размер и вид блока вставки и другое) или сценариев на языке JavaScript, с помощью которого имеется возможность просматривать страницы с событиями или действиями.

Страницы сайтов могут быть простым статичным набором файлов или создаваться специальной компьютерной программой на сервере. Она может быть либо сделана на заказ для отдельного сайта, либо быть готовым продуктом, рассчитанным на некоторый класс сайтов. Некоторые из них могут обеспечить владельцу сайта возможность гибкой настройки структурирования и вывода информации на веб-сайте. Такие управляющие программы называются системами управления содержимым (CMS) [4, 15].

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

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

Однако в настоящем проекте не использовались CMS для создания сайтов, а использовалась ручная верстка html-css кода. Ниже представлено краткое описание используемых языков и программных сред.

Выбор средств реализации (разработки). В настоящем проекте не использовались CMS для создания сайтов, а использовалась ручная верстка html-css кода.

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

PHP. PHP — скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. На сегодняшний момент поддерживается подавляющим большинством представителей хостингов. Входит в LAMP — «стандартный» набор для создания вебсайтов. При создании сайта был сделан выбор в PHP, так как это средства является в области программирования для сети Интернет, один из популярных сценарных языков благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Web-сервер Apache. Самый распространенный Web-сервер в мире - это Apache. По данным предприятия Netcraft, общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%, Netscape - 7%. Будучи бесплатной открытой программой, предназначенной для бесплатных же Unix-систем (FreeBSD, Linux и др.).

SQL (Structured Query Language) создан для работы с реляционными базами данных. Он позволяет пользователям взаимодействовать с базами данных (просматривать, искать, добавлять, управлять данными). MySQL – многопользовательский, многопоточный сервер базы данных SQL. Имеет хорошую скорость и гибкость, если использовать его для хранения изображений и файлов. MySQL соответствует спецификации ANSI 92 SQL

[14,15,16].

Как уже говорилось ранее, веб страницы могут быть статическими и динамическими. В начале каждой страницы в обязательном порядке идет головная часть с кнопками главного меню. В программном обеспечении эта головная часть названа Header.php. Для того, чтобы излагаемый материал не был чисто описательным, теоретическим, приведем код модуля Header.php, который для каждой страницы приложения включается в страницу утверждением include.

Схема взаимодействия программных модулей и файлов. Все программное обеспечение находится в папке Control_3K. Структура папок и файлов представлена на рисунке 4.1.

Рисунок 4.1- Структура папок и файлов

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

http://www.diofant.com/aladin.dn/folder.gif Control_3K Главная папка, содержащая все модули
http://www.diofant.com/aladin.dn/folder.gif All_Tables_short.php Главная страница с таблицами БД

http://www.diofant.com/aladin.dn/folder.gif Any_Table_HTML_New.php Класс таблиц отображения
http://www.diofant.com/aladin.dn/folder.gif DB_Class.php Класс работы с базой данных
http://www.diofant.com/aladin.dn/folder.gif DB_Coding.php Модуль перекодировки в кириллицу

http://www.diofant.com/aladin.dn/folder.gif DB_data.php Параметры соединения с БД
http://www.diofant.com/aladin.dn/folder.gif Form_Buttons.php Формы удаления, поиска, обновления

http://www.diofant.com/aladin.dn/folder.gif Form_Buttons_Staff.php Форма поиска по нескольким ключам
http://www.diofant.com/aladin.dn/folder.gif FormMsgs.php Сообщения
http://www.diofant.com/aladin.dn/folder.gif Forms_Main.php Форма добавления данных в таблицы

http://www.diofant.com/aladin.dn/folder.gif Header.php Стандартная шапка страниц
http://www.diofant.com/aladin.dn/folder.gif Staff_Handler.php Обработчик БД
http://www.diofant.com/aladin.dn/folder.gif Staff_Search.php Модуль поиска по нескольким ключам

http://www.diofant.com/aladin.dn/folder.gif Table_Headers.php Файлы настройки «шапок» таблиц

http://www.diofant.com/aladin.dn/folder.gif Table_Headers_DB.php Файлы настройки полей таблиц БД
http://www.diofant.com/aladin.dn/folder.gif Universal_Forms_Builder.php Построитель форм добавления

В структуре программного обеспечения в определенной степени отображается технология MVC (Model-View-Controller) и состоит из трех уровней (рисунок 4.3). В схеме представлены не все модули, часть из них описывается ниже. Как уже было сказано ранее, базовые класс были разработаны в предприятия MitriDAT и в процессе работы над проектом адаптировались под требования проекта.

C:\Users\1\Pictures\Дипломы\ИТ-Компания\MVC.jpg

Рисунок 4.3 - Структурная схема программного обеспечения веб-приложения

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

При нажатии кнопки топ-меню «ВХОД» и входе администратора системы, вызывается модуль All_Tables.php – который обеспечивает выдачу на экран дисплея всех таблиц базы данных, для работы администратора с базой данных. Этот модуль обращается к модулю нижележащего уровня, вызывая модуль DB_Tables_Fields.php, который сканирует текущую логику базы данных («на лету», именно поэтому можно менять структуру и содержание полей страниц, не задумываясь о модификации кода), считывает таблицы и поля. Затем модуль All_Tables.php. формирует запрос к базе данных, обращается к модулю DB_Class.php, который оформлен как класс, получает значения полей базы данных (строк). После этого с помощью модулей табличного представления вышележащего уровня Any_Table_HTML.php формируется HTML-код таблиц, добавляется заголовок («шапка») Header.php страницы, содержащая логотип, HTML-CSS код страницы и полностью сформированная страница отправляется в браузер пользователя в ответ на запрос. Напомним, что весь программный код работает на стороне сервера, который отправляет готовую для отображения HTML страницу. Аналогично происходит формирование табличных представлений для любой выбранной таблицы, но при этом работает другой модуль. Этот модуль называется Tables_Handler.php. Краткое описание работы каждого модуля будет дано ниже. Более подробные комментарии к коду основных модулей даны в Приложении.

Описание работы сайта. Заходим http://www.diofant.com/Control_3K/index.php

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

Рисунок 5.8 – Голосование

Отзывы пользователей о продуктах подаются на вкладке ОТЗЫВЫ отдельно. Там можно описать в текстовой форме преимущества и недостатки разных продуктов. Результаты поданных отзывов публикуются внизу формы (Рисунок 5.9).

Рисунок 5.9 – Отзыв добавлен и письмо отправилось.

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

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

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

Заключение

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

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

В работе рассмотрены вопросы создания сайта, веб-ориентированной ИС, программного обеспечения информационных систем (ИС), базирующихся на современных программных платформах, современных концепциях в области систем управления базами данных (СУБД), современных концепциях прикладного программирования, интернет технологиях. По сути, речь идет о сайте с функциями информационной системы и онлайн сервисами.

В качестве одной из возможных платформ для программной реализации сайта использована платформа семейства Unix-Linux с системой управления базами данных (СУБД) MySQL, языком написания динамических сценариев на стороне сервера php.

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

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

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

http://www.diofant.com/Control_3K/index.php

Литература

1. Фролов А.В. Создание Веб-приложений: Практическое руководство/ А.В. Фролов, Г.В., Фролов. -М.: Издательско-торговый дом «Русская редакция», 2001.-420с.

2. Дрибас В.П. Реляционные модели баз данных/ В.П. Дрибас. -М.: Машиностроение, 2005.-340с.

3. Кормен Т. Алгоритмы: построение и анализ/ Т. Кормен ,Ч. Лейзерсон , Р. Ривест.- М.: МЦНМО, 2001.-450с.

4. Томсон Л. Разработка Веб-приложений на PHP и MySQL/ Л.Томсон, Л. Веллинг. -М.: Издательство DiaSoft, 2001.-560с.

5. Карпова Т. Базы данных. Модели, разработка, реализация/ Т. Карпова. -М.: Издательский дом «Вильямс», 2001.-300с.

6. Коннолли Т. Базы данных. Проектирование, реализация, сопровождение. Теория и практика/ Т. Коннолли, К. Бегг, Страчан А. -М.: Издательство DiaSoft, 2009.-460с.

7. Мартин Д. Базы данных. Практические методы/ Д. Мартин. -М.: Издательство «Мир», 2005.-580с.

8. Мейер Д. Теория реляционных баз данных/ Д. Мейер. -М.: Статистика, 2007.-380с.

9. Олле Т. Предложения КОДАСИЛ по управлению базами данных/ Т. Олле. -М.: Издательский дом «Вильямс», 2010.-370с.

10. Потоцкий В.К. Технология создания и управления работой реляционной базы данных на персональной ЭВМ/ В.К. Потоцкий. -М.:

11. Чудинов И.Л. Системы управления базами данных/ И.Л. Чудинов. -М.: Машиностроение, 2009.-410с.

12. Зандстра М. PHP4 за 24 часа/ М. Зандстра. -М.: Издательский дом «Вильямс», 2008.-270с.

13. Димитриева Л.Л. Методическое руководство по оформлению курсовых и дипломных проектов/ Л.Л Димитриева. - Ростов-на-Дону: РГЭУ «РИНХ», 2009.– 35 с.

14. Смирнова Г.Н. Проектирование экономических информационных систем/ Г.Н. Смирнова, Ю.Ф. Тельнов. - М.: МЭСИ, 2004. – 223 с.

15.Трофимов С.А. CASE-технологии: практическая работа в Rational Rose. Визуальное моделирование/ С.А. Трофимов. - М.: Бином-Пресс, 2002. -288с.

16.Томсон Л. Разработка Веб-приложений на РНР и MySQL/ Л. Томсон, Л. Веллинг. -Спб.: ООО «ДиаСофтЮП», 2003. – 672с.

17. Шполянская И. Ю. Проектирование информационных систем с использованием UML и Rational Rose: методические указания по изучению дисциплины для студентов заочной формы обучения/ И.Ю. Шполянская. -Ростов-на-Дону: РГЭУ «РИНХ», 2003. -45 с.

18. Фаулер М. UML. Основы/ М. Фаулер, К.Скотт. - СПб.: Символ-Плюс, 2002. – 192 с.

19. Зелинский С.Е. Автоматизация учета персонала: практическое пособие/ С.Е. Зелинский. - Киев: «Центр Учебной Литературы», 2003.-679 с.

20. Сайт разработчиков Rational Software [Электронный ресурс]. - URL: http://www-01.ibm.com/software/rational/ (дата обращения: 18.11.2010).

21. Сайт разработчиков веб-сервера Apache [Электронный ресурс]. - URL: http://httpd.apache.org/ (дата обращения: 14.05.2012).

22. Википедия Model-View-Controller [Электронный ресурс].-

URL: http://ru.wikipedia.org/wiki/Model-View-Controller (дата обращения: 10.06.2013).

Приложение

Коды программ

Header.php- код «шапки» приложения

<html>

<head>

<title>Сайт компании

</title>

<style>

a {

text-decoration: none; /* Отменяем подчеркивание у ссылки */

}

A IMG

{

border: none; /* Убираем рамку в изображениях-ссілках */

}

body

{

background: #E0FFFF; /* Цвет фона */

color: Maroon; /* Цвет текста */

}

</style>

</head>

<body>

<table bgcolor="#FFFFFF" border="0" height=5 width="99%" cellpadding="0" cellspacing="0">

<tr>

<td colspan="9">

<img src="../../Control_3K/Pictures/LogotipControl_3K.png" width="100%">

</td>

</tr>

<tr>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/index.php"><font color="Gold" size="3"><strong>ГЛАВНАЯ</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/Company.php"><font color="Gold" size="3"><strong>О ПРОЕКТЕ</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/News_Frame.php"><font color="Gold" size="3"> <strong>НОВОСТИ</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/View_Table_Frame.php?FormType=A1_products"><font color="Gold" size="3"> <strong>ПРОДУКЦИЯ</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/Shoping.php"><font color="Gold" size="3"> <strong>МАГАЗИНЫ</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/Review.php"><font color="Gold" size="3"> <strong>ОТЗЫВЫ</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/feedback.php"><font color="Gold" size="3"><strong>КОНТАКТЫ</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/auth.php"><font color="Gold" size="3"> <strong>ВХОД</strong></font></a>

</td>

<td width="11%" align="center" bgcolor="blue">

<a href="../../Control_3K/Reg_Frame.php?FormType=1_clients"><font color="Gold" size="3"> <strong>РЕГИСТРАЦИЯ</strong></font></a>

</td>

</tr>

</table>

<table bgcolor="#999999" height=10 width="99%" cellspacing="1" cellpadding="1" border="0">

<tr>

<td align="left" valign="top" bgcolor="Gold">

</td>

</tr>

</table>

DB_Class.php - класс для работы с базой данных

<?php

class MySQL_DB

{

private $dbObj = null;

private $result = null;

/* Для конструктора - адрес, имя пользователя, пароль, имя базы данных, порт,

/*а также кодировку для соединения.

/* По умолчанию используется utf8 */

public function __construct($host, $user, $password, $base, $port = null, $charset = 'utf8')

{

$this->dbObj = new mysqli($host, $user, $password, $base, $port);

$this->dbObj->set_charset($charset);

}

/*основная и единственная функция, которая выполняет запрос и возвращает результат его работы*/

public function query($query)

{

if(!$this->dbObj)

return false;

/*очищаем предыдущий результат*/

if(is_object($this->result))

$this->result->free();

/*выполняем запрос*/

$this->result = $this->dbObj->query($query);

/*если есть ошибки - выводим их*/

if($this->dbObj->errno)

#!!!# die("mysqli error #".$this->dbObj->errno.": ".$this->dbObj->error);

return $this->dbObj->error;

/*если в результате выполнения запроса (например SELECT...) получены данные - возвращаем их.

/* данные всегда возвращаются в массиве, даже если запрос возвращает одну запись.*/

if(is_object($this->result))

{

while($row = $this->result->fetch_assoc())

$data[] = $row;

return $data;

}

/*если результат отрицательный - возвращаем false */

else if($this->result == FALSE)

return false;

/*если запрос (например UPDATE или INSERT) затронул какие-либо строки - возвращаем их количество*/

else return $this->dbObj->affected_rows;

}

}

include 'DB_data.php';

$dbObj = new MySQL_DB(DB_HOST, DB_USER, DB_PWD, DB_NAME);

include 'DB_Coding.php';

?>

Any_Table_HTML_New.php – класс представления таблиц базы данных

<?php

class Any_Table

{

var $table_array = array();

var $headers = array();

var $domns;

function Any_Table ($headers)

{

$this->headers = $headers;

$this->domns = count($headers);

}

function AddRow ($row)

{

If ( count ($row) != $this->domns)

return false;

array_push( $this -> table_array, $row);

return true;

}

function SetArr($Arr)

{

$this -> table_array = $Arr;

return true;

}

function AddRowAssArr ($row_ass)

{

$row=array();

foreach ($this -> headers as $header)

{ if (!isset($row_ass[$header]))

$row_ass[$header]='';

$row[ ]=$row_ass[$header];

}

array_push( $this -> table_array, $row);

return true;

}

function PrintArr ()

{

print "<pre>";

foreach ($this -> headers as $header)

print ' '."<strong>$header</strong>".' ';

print "\n";

foreach ($this -> table_array as $string)

{

foreach ($string as $elemnt)

print ' '."$elemnt".' ';

print "\n";

}

}

}

class HTML_Table extends Any_Table

{

var $bgcolor;

var $bgcolor_h = "#FFCCCC";

var $bgcolor_c = "#FFFFFF";

var $cellpadding = "1";

function HTML_Table($headers, $bg='#ffffff' )

{

Any_Table::Any_Table($headers);

$this->bgcolor=$bg;

}

function SetCellPadding ($padding)

{

$this -> cellpadding = $padding;

}

function PrintArr()

{

print "<table bgcolor=\"#999999\" cellspacing=\"1\" cellpadding=\"$this->cellpadding\" border=0>";

print "<tr>";

foreach ($this -> headers as $header)

print "<td align=\"center\" bgcolor=\"$this->bgcolor_h\">$header</td>";

print "</tr>";

foreach ($this -> table_array as $row=>$cells)

{

print "<tr>";

foreach ($cells as $elemnt)

print "<td align='center' bgcolor=\"$this->bgcolor_c\" >$elemnt</td>";

print "</tr>";

}

print '</table>';

}

function OutForm($handler)

{

$width_h = array(170, 360);

print "<form name='uniform' action='".$handler.".php' method=post>";

print "<table bgcolor=\"#999999\" cellspacing=\"1\" cellpadding=\"$this->cellpadding\" border=0>";

print "<tr>";

$i=0;

foreach ($this -> headers as $header){

print "<td width='".$width_h[$i]."' align=\"left\" bgcolor=\"$this->bgcolor_h\">&nbsp$header</td>";

$i++;

}

print "</tr>";

$i=0;

foreach ($this -> table_array as $row=>$cells)

{

print "<tr>";

foreach ($cells as $elemnt)

{

print "<td width='".$width_h[$i]."' align='left' bgcolor=\"$this->bgcolor_c\" >$elemnt</td>";

if ($i==0) $i++; else $i--;

}

print "</tr>";

}

print '</table>';

print '</form>';

}

}

?>

All_Tables.php – формирует веб-представление всех таблиц базы данных.

<?php

##################################################################

# Модуль выводит на экран содержимое базы данных' по-таблично.

# Полностью все данные не выводятся на экран, а только первые строки

##################################################################

#

require_once 'FormTypes.php';

$Arr_acc = array();

$Row = array();

$dbtable = $FormTypes;

//$head_color = 'silver';

# Класс для построения таблиц по заголовкам и содержанию таблиц

require_once 'Any_Table_HTML_New.php';

# Класс для работы с базой данных MySQL, описание в теле модуля

require_once 'DB_Class.php';

# Объект класса работы с базой данных создается внутри модуля DB_Class.php

# $dbObj = new MySQL_DB(DB_HOST, DB_USER, DB_PWD, DB_NAME);

###

# Так мы делаем софт более независимым от конкретных таблиц БД

#

# Заголовки всех таблиц веб проекта, которые появляются на экране

require_once 'Table_Headers.php';

#

# Заголовки всех таблиц БД проекта, на английском

require_once 'Table_Headers_DB.php';

#

require_once 'Header.php'; // заголовок для страниц проекта

require_once 'FormMsgs.php'; // все сообщения программ проекта

#

#

$f=0; // номер элемента $FormType

foreach ($dbtable as $value) {

#

$headers = $Table_Headers [$FormTypes[$f]];// наименования столбцов таблицe

$headers_db = $Table_Headers_DB[$FormTypes[$f]];// наименования доменов в таблице

# // БД и <input name's в формах

###

# Создаем объекты класса для вывода таблиц, вызываем конструктор

# $handler = $FormType.'_Handler'; // обработчик настоящей формы

$Table_view = new HTML_Table($headers , $heard_color);

#

#запрос на выдачу всей таблицы

$QueryResult = $dbObj->query("SELECT * FROM $dbtable[$f] LIMIT 0,2");

# возвращает массив ассоциативных массивов (см. класс DB_Class.php)

# по сути двумерный массив, поэтому используем конструкцию foreach

# это можно увидеть убрав знак # перед print см. ниже. Таким образом

# формируются массивы для вывода на экран для каждой таблицы

#

if ($QueryResult==false)

{

$msg = 'Нет записей в базе данных!';

}

else

{

$NA = count($QueryResult);

//print '$NA='.$NA;

//print '<pre>'; print_r($QueryResult); print '</pre>';

}

foreach ($QueryResult as $row => $Arr_acc)

{

$i=0;

foreach ($headers_db as $element)

{

$Row = array_merge($Row, array($headers[$i] => $Arr_acc[$headers_db[$i]]) );

$i++;

}

$Table_view -> AddRowAssArr($Row);

}

print "<p></p><font color= \"blue\" ><strong>$All_Tables_Names[$f]</strong></font>"

."$Comment_to_Table_up[$f]";

$Table_view -> PrintArr();

print "<a href=\"Tables_Handler.php?FormType=$FormTypes[$f]\">

Все данные Таблицы&nbsp\"$All_Tables_Names[$f]\"</a>"

.'<p></p>';

//print "<a href=\"$FormType[$f]_Handler.php?FormType=$FormType[$f]\">

// Все данные Таблицы&nbsp\"$All_Tables_Names[$f]\"</a>"

#

$f++; // новое значение $FormType, новая таблица

}

#

include 'Footer.php'; // стандартная нижняя строка каждой страницы

#

?>

DB_Tables_Fields.php

<?php

##########################################################

# Пример использования SHOW COLUMNS и SHOW COLUMNS #

##########################################################

#

require_once 'DB_Class.php';

$Arr_acc_tables = array();

$Arr_acc_fields = array();

$Tables = array();

$Fields = array();

$Fields_1 = array();

$Work = array();

$Table_Headers_DB = array();

$SQL_String1 = array();

$SQL_String2 = array();

#

$Tables_DB_Name = 'Tables_in_'.DB_NAME;

#

$QueryResult = $dbObj->query("SHOW TABLES");

# ассоциированный массив с именами таблиц

# Array

# (

# [0] => Array

# (

# [Tables_in_control_clients_adv] => Clients

# )

#...

#

# print '<pre>';

# print_r($QueryResult);

# print '</pre>';

#

$i=0;

foreach ($QueryResult as $row_tables => $Arr_acc_tables)

{

$Tables[$i] = $Arr_acc_tables[$Tables_DB_Name];

$QueryResult = $dbObj->query("SHOW COLUMNS FROM $Tables[$i]");

#

#

#

# Array

# (

# [0] => Array

# (

# [Field] => Id_Client

# [Type] => char(10)

# [Null] => NO

# [Key] => PRI

# [Default] =>

# [Extra] =>

# )

$j=0;

$string ='';

$string1='';

$string2='';

foreach ($QueryResult as $row_fields => $Arr_acc_fields)

{

$Fields[$i][$j] = $Arr_acc_fields[Field];

$Fields_1 [$j] = $Arr_acc_fields[Field];

$string.= ',' .$Fields[$i][$j];

$string1.="," .$Fields[$i][$j];

$string2.=",$".$Fields[$i][$j];

$j++;

}

// print '<br>'.$Tables[$i].$string;

// print '<br>'.$Tables[$i].$string1;

// print '<br>'.$Tables[$i].$string2;

// print '<pre>';

// print_r($QueryResult);

// print '</pre>';

$string1 = substr($string1,1);

$string2 = substr($string2,1);

$Table_Headers_DB = array_merge($Table_Headers_DB,array($Tables[$i] => $Fields_1));

$SQL_String1 = array_merge($SQL_String1 ,array($Tables[$i] => $string1 ));

$SQL_String2 = array_merge($SQL_String2 ,array($Tables[$i] => $string2 ));

$Fields_1 = $Work;

$i++;

}

$FormTypes=$Tables;

### Эту часть только при первом запуске, пока не созданы заголовки Table_Headers.php

include_once 'Table_Headers.php';

if (!$Table_Headers)

{

$Table_Headers =$Table_Headers_DB;

print '<br>***** $Table_Headers *****';

print '<pre>';

print_r($Table_Headers);

print '</pre>';

}

//print '<br>***** $Fields *****';

//print '<pre>';

//print_r($Fields);

//print '</pre>';

//print '<br>***** $Table_Headers_DB *****';

//print '<pre>';

//print_r($Table_Headers_DB);

//print '</pre>';

//print '<pre>';

//print_r($SQL_String1);

//print '</pre>';

//print '<pre>';

//print_r($SQL_String2);

//print '</pre>';

#

?>

Forms_Main.php

<?php

################################################################### Модуль выводит на экран форму для добавления данных в любую таблицу

# Если модуль вызывается по ссылке href="Forms_Main.php?formtype=Staff",

##################################################################

if ($_GET['formtype']) //!!!//

$FormType = $_GET['formtype'];

require_once 'DB_Tables_Fields.php'; //!!!//

# В этой версии формируется программой 'DB_Tables_Fields.php'

//require_once 'FormTypes.php'; //!!!//

#

require_once 'FormMsgs.php';

#

# Форма для добавления, удаления, обновления данных по подразделениям,

# сотрудникам, приборам, изделиям, результатам испытаний и пр.

# Формируются исходные данные для формы и вызывается универсальный

# В случае вызова модуля для заполнения включаются эти include-ы

include_once 'Header.php'; // Общий заголовок веб-страниц проекта

include_once 'Table_Headers.php'; // Заголовки таблиц и форм таблиц

# В этой версии Table_Headers_DB формируется программой 'DB_Tables_Fields.php'

//include_once 'Table_Headers_DB.php'; // Заголовки таблиц базы данных

include_once 'Any_Table_HTML_New.php'; // Класс для построения таблиц по

// заголовкам и содержанию

#

$handler = 'Tables_Handler.php?FormType='.$FormType;

// обработчик настоящей формы

//$handler = $FormType.'_Handler'; // обработчик настоящей формы

$headers = $Table_Headers [$FormType];// наименования столбцов таблиц

$headers_db = $Table_Headers_DB[$FormType];// наименования доменов в таблице

$head_color = "silver"; // Staff БД и input name's в формах

$form_headers = array(' Наименования полей',

' Заносимые или обновляемые данные'

);

# Создаем объекты класса для вывода таблиц, вызываем конструктор

#

$Form_view = new HTML_Table($form_headers , $head_color);

# Заголовок формы страницы

print '<p><font color= "red" ><strong>'

.$FormMsgs[$FormType][0].

'</strong></font>

</p>'; // Заголовок формы страницы

?>

<p></p>

</body>

</html>