Разработка Web-приложения "Магазин книг"
Создание XSL-спецификации трансформации "Default.xsl" и "Browse.xsl", листинги программного кода данных файлов. Программирование серверных сценариев для получения XML-данных из базы данных "Вookstore" и применения к ним стилей XSL-трансформации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.02.2012 |
Размер файла | 244,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Введение
1. Описание предметной области
2. Разработка Web-приложения «Магазин книг»
2.1 Программирование XSL-таблиц стилей
2.2 Программирование серверных сценариев
2.3 Результаты работы Web-приложения
Заключение
Приложение. «SQL-код для создания БД «Магазин книг» («Bookstore»)»
Введение
В последние несколько лет все большее количество сайтов стремится разделить информационное наполнение страниц и дизайн посредством использования XML-разметки данных и их XSL-преобразования.
Целью данной работы является закрепление навыков по созданию Web-приложений, построению XSL-таблиц стилей трансформации, программной реализации XSL-трансформации на основе классов серверных сценариев Web-приложений.
1. Описание предметной области
В данной расчетно-графической работе в качестве предметной области рассматривается магазин книг.
Исходные данные о магазине: обычный академический магазин, который работает с поставщиками и покупателями, соответственно есть и продавцы. Книги хранятся непосредственно в помещении магазина и расставляются по жанрам.
Покупатель, приходя в магазин, обращается к продавцу, который в свою очередь предлагает ему тот или иной товар, после чего при осуществлении покупки покупатель получает от продавца чек и забирает понравившиеся книги. Если необходимых книг не оказывается в магазине, то можно составить заявку на поставку товара.
Так же у покупателя есть возможность выбрать книги с помощью web-приложения, в котором содержится вся информации о товарах книжного магазина: названия книг, авторы, предлагаемые жанры, стоимость.
2. Разработка Web-приложения «Магазин книг»
2.1 Программирование XSL-таблиц стилей
В ходе выполнения работы нами были созданы XSL-спецификации трансформации «Default.xsl» и «Browse.xsl». Листинги программного кода данных файлов представлены ниже:
1. Листинг кода файла «Default.xsl»:
<?xml version="1.0" encoding="windows-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML xmlns="http://www.w3.org/1999/xhtml" >
<HEAD>
<TITLE>Магазин книг</TITLE>
<LINK href="images/style.css" rel="stylesheet" type="text/css"/>
</HEAD>
<BODY style="font-size: 12pt">
<form action="file.xml" method="get" name="ff">
<TABLE class="pageborder" border="0" width="600">
<TR>
<TD width="100%">
<SPAN class="text1">Магазин книг</SPAN>
<BR/>
<HR class="line"/><HR class="line" width="70%" align="left"/>
</TD>
</TR>
<TR>
<TD style="height: 17px; text-align: right;" width="100%">
<SPAN style="color: #ff0000; font-size:13pt; font-family: 'Century Schoolbook'">Выбор  </SPAN>
<SPAN style="color: #669999; font-size:13pt; font-family: 'Century Schoolbook'"><A href="javascript:document.ff.submit();" style="text-decoration: none">Просмотр</A></SPAN>
</TD>
</TR>
<TR>
<TD><BR/>
<TABLE align="center" width="550">
<TR height="50px" valign="top">
<TD style="width: 163px"><SPAN class="text3">Жанр</SPAN></TD>
<TD>
<select name="Genre" style="width: 350px">
<option value="0" selected="selected">Выбор жанра...</option>
<xsl:for-each select="Bookstore/Genre">
<option>
<xsl:attribute name="value">
<xsl:value-of select="@ID"/>
</xsl:attribute>
<xsl:value-of select="@name"/>
</option>
</xsl:for-each>
</select>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</form>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
2. Листинг кода файла «Browse.xsl»:
<?xml version="1.0" encoding="windows-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML xmlns="http://www.w3.org/1999/xhtml" >
<HEAD>
<TITLE>Магазин книг</TITLE>
<LINK href="images/style.css" rel="stylesheet" type="text/css"/>
</HEAD>
<BODY style="font-size: 12pt">
<TABLE class="pageborder" border="0" width="600">
<TR>
<TD width="100%">
<SPAN class="text1">Магазин книг</SPAN>
<BR/>
<HR class="line"/><HR class="line" width="70%" align="left"/>
</TD>
</TR>
<TR>
<TD style="height: 17px; text-align: right;" width="100%">
<SPAN style="color: #669999; font-size:13pt; font-family: 'Century Schoolbook'">
<A href="newfile.xml" style="text-decoration: none">Выбор</A>  </SPAN>
<SPAN style="color: #ff0000; font-size:13pt; font-family: 'Century Schoolbook'">Просмотр</SPAN>
</TD>
</TR>
<TR>
<TD><BR/>
<TABLE width="500" align="center" class="headborder">
<TR>
<TD width="30%"><SPAN class="headtext">Автор</SPAN></TD>
<TD width="40%" align="center"><SPAN class="headtext">Название</SPAN></TD>
<TD width="10%" align="center"><SPAN class="headtext">Цена</SPAN></TD>
<TD width="20%" align="center"><SPAN class="headtext">Жанр</SPAN></TD>
</TR>
</TABLE>
<TABLE width="500" align="center" class="textborder">
<TR>
<TD width="30%"><SPAN class="tabletext"></SPAN></TD>
<TD width="40%" align="center"><SPAN class="tabletext"></SPAN></TD>
<TD width="10%" align="center"><SPAN class="tabletext"></SPAN></TD>
<TD width="20%" align="center"><SPAN class="tabletext"></SPAN></TD>
</TR>
</TABLE>
<xsl:for-each select="Books/Books/Books/Genre">
<TD width="30%"><SPAN class="tabletext"><xsl:value-of select="../@fio"/></SPAN></TD>
<TD width="40%" ><SPAN class="tabletext"><xsl:value-of select="@name"/></SPAN></TD>
<TD width="10%" ><SPAN class="tabletext"><xsl:value-of select="@price"/></SPAN></TD>
<TD width="20%" ><SPAN class="tabletext"><xsl:value-of select="@genre"/></SPAN></TD>
</xsl:for-each>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
2.2 Программирование серверных сценариев
На данном этапе работы была применена «технология PHP и СУБД MySQL». Были созданы следующие файлы:
1. «Index.php»:
<?php
$def_charset = "Content-Type: text/html; charset=utf-8";
header($def_charset);
$link = @mysql_connect("localhost", "root") or die("Невозможно соединиться с сервером");
$db=@mysql_select_db("Вookstore") or die("Нет такой базы данных");
@mysql_query("SET SESSION character_set_results = cp1251;");
@mysql_query("SET SESSION Character_set_client = cp1251;");
@mysql_query("SET SESSION Character_set_results = cp1251;");
@mysql_query("SET SESSION Collation_connection = cp1251_general_ci;");
@mysql_query("SET SESSION Character_set_connection = cp1251;");
$g_query="select `ID`, `name` from `Genre`";
function createXMLElem($dom, $parent, $row, $name)
{
$elem = $dom->createElement($name);
$elem = $parent->appendChild($elem);
foreach ($row as $fieldname => $fieldvalue)
{
$val = iconv('windows-1251', 'utf-8', $fieldvalue);
$elem->setAttribute($fieldname,$val);
}
return $elem;
}
$xml = new DOMDocument('1.0');
$root = $xml->createElement('Вookstore');
$root = $xml->appendChild($root);
$g=mysql_query($g_query);
while($g_row = mysql_fetch_assoc($g))
{
$g_elem = createXMLElem($xml, $root, $g_row, 'Genre');
}
echo $xml->save("newfile.xml");
?>
При проверке работоспособности созданного PHP-сценария результат, представленный в файле, имел следующий вид:
<Вookstore>
<Genre ID="Приключения" name="приключения">
</Genre>
<Genre ID="Детектив" name="детектив">
</Genre>
<Genre ID="Роман" name="любовный роман">
</Genre>
<Genre ID="Мемуары" name="биография и мемуары">
</Genre>
</Вookstore>
2. «Browse.php»:
<?php
$def_charset = "Content-Type: text/html; charset=utf-8";
header($def_charset);
$link = @mysql_connect("localhost", "root") or die("Невозможно соединиться с сервером");
$db=@mysql_select_db("Вookstore") or die("Нет такой базы данных");
@mysql_query("SET SESSION character_set_results = cp1251;");
@mysql_query("SET SESSION Character_set_client = cp1251;");
@mysql_query("SET SESSION Character_set_results = cp1251;");
@mysql_query("SET SESSION Collation_connection = cp1251_general_ci;");
@mysql_query("SET SESSION Character_set_connection = cp1251;");
function createXMLElem($dom, $parent, $row, $name)
{
$elem = $dom->createElement($name);
$elem = $parent->appendChild($elem);
foreach ($row as $fieldname => $fieldvalue)
{
$val = iconv('windows-1251', 'utf-8', $fieldvalue);
$elem->setAttribute($fieldname,$val);
}
return $elem;
}
$g = $_POST['g'];
$g_query="SELECT `ID`, `name` FROM `Genre` where `ID`=".$g;
$b_query="SELECT `fio`, `name`, `price`, `genre` FROM `Books`";
$xml = new DOMDocument('1.0');
$root = $xml->createElement('Вookstore');
$root = $xml->appendChild($root);
$g=mysql_query($g_query);
while($g_row = mysql_fetch_assoc($g))
{
$g_elem = createXMLElem($xml, $root, $g_row, 'Genre');
$g1 = $g_row['ID'];
$b=mysql_query($b_query);
while($b_row = mysql_fetch_assoc($b))
{
$g2 = $s_row['genre'];
if($g1==$g2)
{
$b_elem = createXMLElem($xml, $g_elem, $b_row, 'Books');
}
}
}
echo $xml->save("file.xml");
?>
При проверке работоспособности созданного PHP-сценария результат, представленный в файле, имел следующий вид:
<Books>
<Genre ID="Приключения" >
<Books fio="Марк Твен" name="Приключения Гекльберри Финна" price="$5.49" />
<Books fio="Майкл Морпупго" name="Боевой конь" price="$6.10" />
</Genre>
<Genre ID="Детектив" >
<Books fio="Натаниэль Готорн" name="Мраморный фавн" price="$10.95" />
</Genre>
<Genre ID="Роман" >
<Books fio="Сесилия Ахерн" name="Время моей жизни" price="$5.00" />
</Genre>
<Genre ID="Мемуары" >
<Books fio="Шифф Стейси" name="Клеопатра" price="$6.10" />
</Genre>
</Books>
2.3 Результаты работы Web-приложения
Рис. 1. Web-приложение «Книжный магазин»
Рис. 2. Пример запроса 1
Рис. 3. Результаты запроса 1
Рис. 4. Пример запроса 2
Рис. 5. Результаты запроса 2
Заключение
web приложение программирование
Выполнение расчетно-графической работы было осуществлено в два этапа: 1) программирование XSL-таблиц стилей для генерации страниц Web-приложения; 2) программирование серверных сценариев для получения XML-данных из базы данных «Вookstore» и применения к ним стилей XSL-трансформации.
В итоге нами было разработано Web-приложение «Книжный магазин», состоящее из двух Web-страниц. На первой странице пользователь должен выбирать жанр произведений из раскрывающегося списка (рис. 1, 2, 4). Передача выбранных пользователем параметров на сервер выполняется нажатием на ссылку «Просмотр». В результате выполняется переход на страницу, где отображается информация о книгах выбранного жанра (рис. 3, 5). Результаты работы Web-приложения представлены в виде скриншотов.
Таким образом, нами были закреплены навыки XSL-трансформации XML-данных в Web-приложениях.
Приложение
SQL-код для создания БД «Магазин книг» («Вookstore»)
CREATE DATABASE `Вookstore` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
CREATE TABLE `Genre` (
`ID` VARCHAR( 15) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
`name` VARCHAR( 27 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
PRIMARY KEY ( `ID` )
) ENGINE = MYISAM ;
CREATE TABLE `Books` (
`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`fio` VARCHAR( 27 ) NOT NULL ,
`name` VARCHAR( 60 ) NOT NULL ,
`price` VARCHAR( 10 ) NOT NULL ,
`genre` VARCHAR( 15 ) NOT NULL ,
FOREIGN KEY ( `Genre` ) REFERENCES Genre( `ID` )
) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci
INSERT INTO `Genre` ( `ID` , `name` )
VALUES (
'Приключения', 'приключения'
), (
'Детектив', 'детектив'
);
INSERT INTO `Genre` ( `ID` , `name` )
VALUES (
'Роман', 'любовный роман'
), (
'Мемуары', 'биография и мемуары'
);
INSERT INTO `Books` ( `ID` , `fio` , `name`, `price`, `genre` )
VALUES (
NULL, 'Марк Твен', 'Приключения Гекльберри Финна', '$5.49', 'Приключения'
), (
NULL, 'Сесилия Ахерн', 'Время моей жизни', '$5.00', 'Роман'
);
INSERT INTO `Books` ( `ID` , `fio` , `name`, `price`, `genre` )
VALUES (
NULL , 'Шифф Стейси', 'Клеопатра', '$6.10', 'Мемуары'
), (
NULL , 'Натаниэль Готорн', 'Мраморный фавн', '$10.95', 'Детектив'
);
INSERT INTO `Books` ( `ID` , `fio` , `name`, `price`, `genre` )
VALUES (
NULL , 'Майкл Морпупго', 'Боевой конь', '$6.10', 'Приключения'
);
Размещено на Allbest.ru
Подобные документы
Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.
курсовая работа [1,6 M], добавлен 08.02.2013Разработка базы данных, позволяющей определять месторасположение на полке и код товаров в магазинных складах, количество и качество товаров. Концепция баз данных. Модели данных, описание данных проектирования. Разработка программного приложения.
курсовая работа [1,1 M], добавлен 13.06.2014Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.
курсовая работа [1,8 M], добавлен 04.02.2013Базы данных как совокупность структур, предназначенных для хранения больших объемов информации и программных модулей. Анализ способов создания базы данных для учета книг личной библиотеки, особенности использования языка программирования C++Builder.
курсовая работа [8,1 M], добавлен 10.01.2014Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.
курсовая работа [7,8 M], добавлен 13.02.2023Разработка информационной системы "Салон портьер" для автоматизации деятельности менеджера фирмы, занимающейся пошивом портьер на заказ. Создание и обоснование проекта базы данных. Создание запросов, форм, отчетов. Тестирование программного приложения.
курсовая работа [4,6 M], добавлен 07.02.2016Разработка базы данных для автоматизации учета и хранения сведений о заявках от работодателей. Проектирование приложения в СУБД Access. Описание запросов, отчетов и представлений данных. Интерфейс, условия выполнения и тестирование программного продукта.
курсовая работа [3,7 M], добавлен 05.04.2012Концептуальное и инфологическое проектирование базы данных в системе управления базами данных Microsoft Access. Физическое проектирование базы данных "Магазин спорттоваров". Тестирование и отладка базы данных, составление руководства пользователя.
курсовая работа [6,7 M], добавлен 22.11.2022Разработка базы данных книжного магазина в среде программирования Delphi. Создание таблиц и их заполнение. Требования к составу и параметрам технических средств. База данных как набор файлов, содержащих информацию. Этапы создания приложения в Delphi.
курсовая работа [803,6 K], добавлен 04.11.2012Создание программ, позволяющих создавать базы данных. Создание таблицы базы данных. Создание схемы данных. Создание форм, отчетов, запросов. Увеличение объема и структурной сложности хранимых данных. Характеристика системы управления базой данных Access.
курсовая работа [2,1 M], добавлен 17.06.2013