Проектирование Web-приложения "Туристическое агенство"
Предпроектное обследование объекта автоматизации. Область применения разработки Web-приложения "Туристическое агенство", ее назначение, требования к программному продукту и документации. Календарный план и порядок приемки. Приемы работы с программой.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.12.2011 |
Размер файла | 60,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Формулировка задачи
Целью данного курсового проекта является разработка Web-приложения ”Туристическое агенство”.
Для реализации этой задачи необходимо разработать базу данных и интерфейс для работы с ней. Исходные данные приложения: создать проект, реализующий функцию виртуального туристического агентства. В режиме администрирования сайта необходимо иметь возможность редактирования каталог услуг: маршрут, страна, отели, способ транспортировки, стоимость каждой услуги. В режиме пользователя предусмотреть возможность просматривать сведения по маршрутам, странам, городам, транспортировки и получать расчет стоимости выбранного маршрута и сроков путевки.
Необходимо провести предпроектное обследование объекта автоматизации и выбранных средств разработки. Разработать техническое задание, технический проект, рабочий проект, изложить результаты тестовых запусков. Составить документацию с инструкцией по установке программного продукта.
2. Предпроектное обследование объекта автоматизации
Интернет является одним из самых эффективных инструментов ведения бизнеса.
Для создания успешного информационного интернет - бизнеса, нужно сначала построить прочный фундамент, который, как правило, состоит из сайта с большим количеством полезной информации и рассылки, которая выходит на регулярной основе и содержит в себе полезные материалы
Одной из технологий, позволяющей поддерживать онлайн бизнес агентство является создание онлайн ресурса, т.е. сайта. Это даёт огромные преимущества для владельцев туристической фирмы. Кроме очевидных преимуществ в виде отсутствия аренды, необходимости покупки мебели, набора и обучения персонала, существуют еще и ряд других, менее очевидных, но очень важных преимуществ. Сайт позволяет одновременно обслуживать практически неограниченное количество посетителей из любой точки мира, предоставить каждому туристу всю необходимую именно ему информацию и многое другое.
Разрабатываемая система виртуального туристического агентства относится к автоматизированным информационным системам. При разработке информационной системы приходится решать две основные задачи:
- задачу разработки базы данных, предназначенной для хранения информации;
- задачу разработки графического интерфейса пользователя.
Таким образом, под информационной системой обычно понимается система, ориентированная на сбор, хранение, поиск и обработку текстовой информации.
Для реализации задачи необходимо разработать и создать базу данных и интерфейс для работы с ней.
2.1 Теоретическая часть
Web-технологии. Интернет - это общедоступная глобальная компьютерная сеть, которая делится на множество подсетей связывающих между собой компьютеры, и, имеющая набор стандартных правил - протоколы, с помощью которых пользователь может передавать и получать различную информацию. Родоначальником сети интернет, была созданная в 1969 году в США компьютерная сеть ARPAnet, объединяющая компьютерные центры министерства обороны и ряда академических организаций.
HTML - это язык разметки. Интернет состоит из Web-страниц (Web-pages), а эти страницы создаются при помощи языка разметки гипертекста (HyperТext Markup Language, HTML). Используя HTML разметку делаюттекстовый документ, который будет использован при выводе текста на экран монитора.
Зачастую у web-дизайнера возникает необходимость применить в процессе создания html-документа сложное форматирование - от абзаца к абзацу менять шрифт, расположение текста, его цвет, формировать различные таблицы данных. Можно решить эту проблему с помощью стандартных средств HTML: описывать каждый абзац отдельным набором команд, но в этом случае итоговый документ будет иметь большой размер, да и само создание кода становится весьма трудоемкой работой. Можно пойти другим путем: включить в страницу описание CSS или подключить внешний файл, выполненный с стандарте CSS - Cascading Style Sheets (каскадные таблицы стилей), в котором с помощью специального макроязыка один раз жестко задать форматирование страницы. Другими словами, файл CSS выполняет роль некого шаблона, применяемого для форматирования текста, таблиц и иных элементов в документе HTML. Есть возможность подключать один и тот же физический файл CSS к различным web-страницам сайта. CSS можно использовать на любом сервере без каких-либо ограничений, поскольку команды CSS исполняются непосредственно на компьютере пользователя. К недостаткам данной технологии можно только отнести отсутствие поддержки CSS старыми браузерами (Internet Explorer и Nescape Navigator ниже 4-ой версии) и немного разный набор свойств CSS, поддерживаемый последними версиями этих двух браузеров.
DHTML (Dynamic Hyper Text Markup Language, динамический язык разметки гипертекста) является расширением стандарта HTML и позволяет создавать web-страницы, включающие такие интерактивные элементы, как движущийся фон, расположенный под статичным содержимым документа, движущиеся объекты, выпадающие меню, кнопки, подсвечивающиеся при наведении курсора мыши, анимацию, бегущие титры и многое другое. По большому счету DHTML представляет собой "среднее арифметическое" между технологиями HTML и JavaScript. Этот стандарт использует простые сценарии, подготовленные с помощью интерпретируемого макроязыка, обрабатываемого браузером совместно с кодом HTML. Такие сценарии именуются "скриплетами".
Для создания скриплетов используются стандартные расширения DHTML и любой макроязык, поддерживающий директивы интерфейса ActiveX. DHTML распознается браузерами Microsoft Internet Explorer, начиная с версии 4.0 и выше.
PHP - язык создания сценариев, который давно перерос свое название. PHP - это аббревиатура от слов Personal Home Page. Первая версия PHP была создана Расмусом Лердорфом в 1994 г. и представляла собой набор инструментов для отслеживания посетителей Web-страницы. Со временем PHP из набора инструментов превратился в полноценный язык программирования, а его название было изменено как рекурсивное образование PHP HyperText Preprocessor (препроцессор гипертекста PHP). PHP - это серверный язык создания сценариев. Конструкции PHP, вставленные в HTML-текст, выполняются сервером при каждом посещении страницы. Результат их обработки вместе с обычным HTML-текстом передается браузеру.
JavaScript -- объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.
JavaScript по большей части используется как встраиваемый язык для программного доступа к объектам приложений. Особенно широкое использование находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
JavaScript применяется для придания пользовательскому интерфейсу большей интерактивности по сравнению со статическим HTML, он позволяет реализовать: бегущую строку, изменяемые рисунки и т.д.
2.2 Практическая часть
После анализа предметной области и оценки задачи, в качестве реализации была выбрана базы данных MySQL, в качестве языка программирования выбран PHP.
База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми - от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному - как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.
MySQL - это система управления реляционными базами данных. В реляционной базе данных данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.
MySQL - это реляционная СУБД, типа клиент/сервер. СУБД MySQL включает в себя SQL-сервер и программы-клиенты, осуществляющие доступ к серверу, средства администрирования и программный интерфейс для программирования своих собственных программ.
MySQL обладает отличной переносимостью и может с тем же успехом использоваться на дорогих коммерческих операционных системах (таких как Solaris, Irix или Windows) и на любой аппаратуре вплоть до мощных серверов. Более того, так же как и ее более "дорогие соперники", она позволяет обрабатывать большие базы данных, содержащие миллионы записей.
Сравнивая СУБД MySQL с другими базами данных, всегда необходимо помнить о том, какой фактор является самым важным для конкретной разработки. Производительность, поддержка, возможности (соответствие стандартам языка SQL, возможность расширения и т.д.); условия лицензирования и ограничения и, наконец, цена. Принимая во внимание эти соображения, СУБД MySQL обладает многими преимуществами.
ѕ быстродействие. MySQL -- самая быстрая СУБД в мире.
ѕ простота использования. СУБД MySQL является высокопроизводительной и относительно простой в использовании СУБД, которую значительно проще инсталлировать и администрировать, чем многие большие системы.
ѕ цена. СУБД MySQL распространяется бесплатно.
ѕ поддержка языка запросов. MySQL "понимает" команды языка SQL (Structured Query Language -- структурированный язык запросов). Этот язык применяется во всех современных СУБД. MySQL также поддерживает интерфейс ODBC (Open Database Connectivity), протокол интерфейса с базами данных, разработанный компанией Microsoft, что позволяет легко подключить эту базу к любому средству разработки интерфейсов
ѕ возможности. Сервер позволяет одновременно подключаться неограниченному количеству пользователей. Доступ к серверу СУБД MySQL можно осуществить в интерактивном режиме с помощью различных интерфейсов, позволяющих вводить запросы и просматривать полученные результаты: это программы- клиенты, работающие с командной строкой, Web-броузеры или программы-клиенты, работающие в системе X Window. Кроме того, в наличии имеются программные интерфейсы для таких языков, как С, Perl, Java, PHP и Python. Таким образом, можно использовать как готовое клиентское программное обеспечение, так и создавать свое собственное.
ѕ взаимодействие и безопасность. MySQL предназначена для работы в сети и может быть доступна через Internet, таким образом, с данными можно работать в любой точке земного шара. Но при этом СУБД MySQL снабжена развитой системой защиты от несанкционированного доступа.
ѕ переносимость. СУБД MySQL отлично работает как под управлением самых различных версий UNIX, так и под управлением систем, не использующих UNIX, таких как Windows и OS/2. СУБД MySQL работает как на домашних ПК, так и на мощных серверах.
ѕ открытое распространение. Дистрибуция СУБД MySQL легкодоступна. Для этого достаточно воспользоваться Web-браузером.
Приложение будет разработано на языке PHP.
PHP - язык программирования, специально разработанный для написания web-приложений (скриптов, сценариев), исполняющихся на Web-сервере. Синтаксис языка во многом основывается на синтаксисе C, Java и Perl. Он очень похож на С и на Perl, поэтому для профессионального программиста не составит труда его изучить. С другой стороны, язык PHP проще, чем C, и его может освоить веб-мастер, не знающий пока других языков программирования.
Огромным плюсом PHP, в отличие от, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. PHP не зависит от скорости компьютера пользователя или его браузера, он полностью работает на сервере. Пользователь может не знать, получает ли он обычный HTML-файл или результат выполнения скрипта.
Сценарии на языке PHP могут исполняться на сервере в виде отдельных файлов, а так же могут интегрироваться в html страницы.
PHP способен генерировать и преобразовывать не только HTML документы, но и изображения разных форматов - JPEG, GIF, PNG, файлы PDF и FLASH. PHP способен формировать данные в любом текстовом формате, включая XHTML и XML.
PHP - кроссплатформенная технология. Дистрибутив PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix, Microsoft Windows, Mac OS и многих других. PHP поддерживается на большинстве вебсерверов, таких, как Apache, Microsoft Internet Information Server (IIS), Microsoft Personal Web Server и других.
Для большинства серверов PHP поставляется в 2-х вариантах - в качестве модуля и в качестве CGI препроцессора.
PHP поддерживает работу с ODBC и большое количество баз данных: MySQL, MSQL, Oracle, PostgreSQL, SQLite и др.
Язык программирования PHP, особенно в связке с популярнейшей базой данных MySQL - оптимальный вариант для создания интернет-сайтов различной сложности.
Для разработки базы данных для Web-приложения выбрана система управления базами данных MySQL. СУБД MySQL лучше остальных поддерживается PHP.
Приложение будет разработано с использованием языка серверного программирования PHP, а также средств создания web-страниц: HTML,CSS, JAVA SCRIPT.
3. Техническое задание
3.1 Наименование и область применения разработки
Полное наименование проекта:
Web-приложение “Туристическое агентство Ялта-путник”.
3.2 Основание для разработки
Разработка Web-приложения “Туристическое агентство Ялта-путник” ведется на основании задания на курсовой проект по дисциплине «Технология программирования и создание программных продуктов». Задание утверждено на заседании кафедры Программное обеспечение автоматизированных систем зав. кафедрой к.т.н.,доцент Василенко П.Г. и выдано преподавателем кафедры Филимоненковой Т.Н. 15 марта 2011 г.
3.3 Назначение разработки
Разработка является курсовым проектом по дисциплине «Технология программирования и создания программных продуктов».
3.4 Требования к программному продукту
Создать проект, реализующий функцию виртуального туристического агентства. В режиме администрирования сайта необходимо иметь возможность редактирования каталог услуг: маршрут, страна, отели, способ транспортировки, стоимость каждой услуги. В режиме пользователя предусмотреть возможность просматривать сведения по маршрутам, странам, городам, транспортировки и получать расчет стоимости выбранного маршрута и сроков путевки.
3.5 Требования к программной документации
Состав программной документации должен включать следующие разделы:
ѕ описание программы - общая характеристика продукта. Общие требования к программному обеспечению, комплексу технических средств;
ѕ руководство пользователя - включает детальное описание функциональных возможностей и технологии работы с программным продуктом. Данный вид документации ориентирован на конечного пользователя и содержит необходимую информацию для самостоятельного освоения и нормальной работы пользователя (с учетом требуемой квалификации пользователя);
ѕ руководство программиста (оператора) - указывает особенности установки (инсталляции) программного продукта и его внутренней структуры - состав и назначение модулей, правила эксплуатации и обеспечения надежной и качественной работы программного продукта.
Диск с проектом будет содержать файл Readme.txt
3.6 Технические показатели разработки
Web-приложение “Туристическое агентство Ялта-путник” должно корректно работать во всех распространённых программ для просмотра web-страниц. Для правильной работы приложения необходимо в браузере разрешить использование JavaScript (если не заданно по умолчанию). Не рекомендуется использовать программы для просмотра web-страниц компании Microsoft, так как в них не предусмотрена поддержка CSS3.
Минимальные технические требования к компьютеру: 1.0 ГГц Celeron, ОЗУ 128 Мб, 10 Мб свободного места на жестком диске. ОС Windows XP. Microsoft Internet Explorer 7.
3.7 Календарный план
1. Предпроектное обследование объекта автоматизации. Изучение теоретических материалов по теме работы. 15.03.2011 г.
2. Разработка технического задания, определение модели и общей структуры программного приложения. 01.04.2011 г.
3. Разработка технического проекта. 10.04.2011 г.
4. Разработка рабочего проекта. 20.04.2011 г
5. Разработка документации по приложению и инструкции по эксплуатации. 30.04.2011 г
6. Написание отчета (пояснительной записки). 10.05.2011 г.
Представление результатов научному руководителю. 15.05.2011 г. 3.8 Порядок приемки
Приемка проекта должна осуществляться комиссией в составе преподавателей кафедры Программного обеспечения автоматизированных систем в соответствии с графиком защиты курсового проекта, утвержденного на заседании кафедры.
4. Технический проект
4.1 Разработка концептуальной модели базы данных
4.1.1 Концептуальное моделирование структуры данных
Для реализации приложения “Туристическое агентство Ялта-путник”, необходимо разработать модель базы данных.
Принято выделять два уровня представления модели данных - физический и логический.
Логические Модели
В логической модели все данные представлены в виде таблиц . Строки в каждой таблице - это кортеж неструктурированных единиц данных, "атрибутов". Набор кортежей, составляющий таблицу, образует математическое отношение; таким образом, модель данных представляется множеством таблиц-отношений (называемых также R-таблицами)
Атрибуты строк-кортежей (и таблиц-отношений) - это значения из заданных наравне с таблицами областей определения. Разные столбцы в одной и той же или в разных таблицах могут иметь одну и ту же область определения.
Значения атрибутов в таблице-отношении могут иметь только один определенный вид функциональной зависимости друг от друга, а именно, все значения в произвольном кортеже должны по отдельности зависеть только от значений столбца или группы столбцов - одних для всего отношения. Такой столбец или группа столбцов, называются ключевыми, а значения атрибутов в них - ключами.
Физическая модель
При проектировании физической базы данных логическая модель переводится в набор операторов SQL, которые определяют базу данных MySQL.
MySQL - реляционная базаданных, поэтому необходимо перевести логическую модель, подобную описанной, в физическую базу данных MySQL.
Правила перевода из логической модели в физическую
1. Объекты становятся таблицами в физической базе данных.
2. Атрибуты становятся колонками в физической базе данных. Для каждой колонки нужно выбрать подходящий тип данных.
3. Уникальные идентификаторы становятся колонками, не допускающими значение NULL. В физической базе данных они называются первичными ключами (primary keys). По необходимости можно создать уникальный индекс по идентификатору, чтобы обеспечивать уникальность. Отношения моделируются в виде внешних ключей (foreign keys).
В физической схеме из всех названий объектов необходимо удалить пробелы. Это вызвано тем, что названия нужно преобразовать в вызовы SQL, создающие таблицы, поэтому названия таблиц должны удовлетворять правилам SQL для образования имен. Все первичные ключи нужно сделать типа INT. Поскольку эти атрибуты искусственные, нужно приписать им любой индексируемый тип. Для остальных колонок установлен тип TEXT и VARCHAR с длиной от 50 до 255 символов.
4.2 Создание базы данных
Ниже представлены скрипты MySQL для создания таблиц базы данных Web-приложения “ Туристическое агентство Ялта-путник”.
CREATE TABLE `categories` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
CREATE TABLE `comments` ( `id` int(5) NOT NULL auto_increment, `post` int(5) NOT NULL, `author` varchar(100) NOT NULL, `text` text NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=68 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=68 ;
CREATE TABLE `contact_form` ( `id` int(5) NOT NULL auto_increment, `name` varchar(100) NOT NULL, `email` varchar(100) NOT NULL, `themes` varchar(100) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=51 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=51 ;
CREATE TABLE `country` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 AUTO_INCREMENT=29 ;
CREATE TABLE `data` ( `id` int(5) NOT NULL auto_increment, `transporte` int(3) NOT NULL, `cat` int(3) default '0', `meta_d` varchar(255) default NULL, `meta_k` varchar(255) NOT NULL default '', `description` text, `text` text, `view` int(7) NOT NULL default '0', `duration` varchar(100) default NULL, `date` date default NULL, `mini_img` varchar(255) default NULL, `title` varchar(255) character set ucs2 default NULL, `secret` int(1) NOT NULL default '0', `rating` int(10) NOT NULL default '5', `q_vote` int(10) NOT NULL default '1', `isto` varchar(255) NOT NULL, `price1` int(5) default NULL, `price2` int(5) NOT NULL, `price3` int(5) NOT NULL, `price4` int(5) NOT NULL, `price5` int(5) NOT NULL, `country` int(3) default NULL, `rut` int(3) NOT NULL, `city` varchar(150) NOT NULL, `hotel` int(1) default NULL, `photo1` varchar(255) NOT NULL, `photo1_desc` varchar(155) NOT NULL, `photo2` varchar(255) NOT NULL, `photo2_desc` varchar(155) NOT NULL, `photo3` varchar(255) NOT NULL, `photo3_desc` varchar(55) NOT NULL, PRIMARY KEY (`id`), KEY `title` (`title`), KEY `title_2` (`title`), KEY `title_3` (`title`), FULLTEXT KEY `text` (`text`)
) ENGINE=MyISAM AUTO_INCREMENT=98 DEFAULT CHARSET=utf8 AUTO_INCREMENT=98 ;
CREATE TABLE `form_ticket` ( `title` varchar(155) NOT NULL, `id` int(5) NOT NULL auto_increment, `date` varchar(150) NOT NULL, `period` varchar(150) NOT NULL, `price` varchar(150) NOT NULL, `people` varchar(250) NOT NULL, `name` varchar(250) NOT NULL, `email` varchar(250) NOT NULL, `mobile` varchar(250) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=96 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=96 ;
CREATE TABLE `guestbook` ( `id` int(11) NOT NULL auto_increment, `guest` varchar(100) NOT NULL, `text` text NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=21 ;
CREATE TABLE `rutas` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;
CREATE TABLE `settings` ( `id` int(3) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, `page` varchar(255) NOT NULL default '', PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
CREATE TABLE `transporte` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 AUTO_INCREMENT=26 ;
CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `login` varchar(15) NOT NULL default '', `password` varchar(15) NOT NULL default '', PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=30 ;
4.3 Технологическая схема обработки информации
Web-приложение “Туристическое агентство Ялта-путник” имеет два входа: администраторскую зону и зону простого пользователя.
Администраторская часть предназначена для ввода новых путёвок, курортов, маршрутов, стран, видов транспортировки, а так же для редактирования текста главных разделов сайта.
Пользовательская зона - основная часть сайта. Предназначена для просмотра полной информации о путёвках, заказов туров, а так же расчёта стоимости выбранного тура.
Следующие данные необходимы для ввода в таблицы с исходной информацией.
Страницы регистрации пользователей (рис.4.2):
Любой посетитель сайта может зарегистрироваться на сайте. Для успешной регистрации необходимо заполнить поле логин и пароль и нажать кнопку зарегистрироваться.
Логин - это имя пользователя для входа в систему, предназначено для ввода символьной информации, размер не более 30 символов;
Пароль - поле, которое содержит пароль пользователя для входа в систему, предназначено для ввода символьной информации, размер не более 30 символов.
Страница добавления путёвок (рис.4.3). Эта страница доступна только из администраторской зоны. Предназначена для добавления новых туров в базу данных.
Страница добавления типов курортов (рис.4.4). Страница предназначена для добавления новых типов курорта.
Раздел страницы (рис.4.5) создан для удобного управления контентом таких страниц, как главная, о компании.
Страница заказа путёвок (рис.4.6). Создана для заказа путёвок посетителями сайта. Страница полностью автоматизирована.
Пользователю необходимо ввести количество людей и контактные данные. Всё остальное система заполнит автоматически.
5. Робочий проект
5.1 Описание и назначение программного продукта
Web-приложение “Туристическое агентство Ялта-путник” реализует функции виртуального туристического агентства, предлагающее летние/зимние туры, и осуществляющее прием заказов онлайн.
5.2 Описание программных модулей
Файл index.php - главная веб-страница
Файл about.php - страница о компании.
Файл book.php - невидимая страница обработки данных гостевой книги.
Файл comment.php - невидимая страница обработки данных для отзывов.
Файл bus_next.php - невидимая страница обработки данных формы обратной связи.
Файл form_ticket.php - невидимая страница обработки данных заказа выбранного тура.
Файл guestbook.php - гостевая книга.
Файл order_ticket.php - страница заказа выбранного тура.
Файл reg.php - страница регистрации новых пользователей.
Файл saveuser.php - страница обработки регистрации.
Файл send.php - страница уведомления заказов
Файл test_reg.php - страница обработки регистрации.
Файл view_cat.php - страница видов курорта.
Файл view_country.php - страница показа путёвок по выбранной стране.
Файл view_date.php - страница показа путёвок по дате.
Файл view_order.php - страница заказа путёвок.
Файл view_post.php - страница показа полной информации о туре.
Файл view_rut.php - страница показа путёвок по выбранному маршруту.
Файл view_search.php - страница показа результатов поиск.
Файл view_transoprte.php - страница показа путёвок по выбранной транспортировке.
Файл vote_res.php - страница обработки оценок.
Каталог /admin/ - блок для администратора.
Каталог blocks/ - блоки подключения к сайту: bd.php, footer.php, left.php, right.php, top.php, top_2.php.
Файл blur.js- скрипт проверки заполнености формы заказа
Файл count_price.js - расчёт стоимости путёвки.
Файл jquery.js- библиотека jquery.
Файл myscripts.js - файл сценария jQuery для сайта.
Файл style.css - файл стиля сайта.
5.3 Исходные тексты программных модулей
Файл bd.php - отвечает за подключение к базе данных.
<?
$db = mysql_connect ("localhost","user","z45242");
mysql_select_db("moto",$db);
session_start();
?>
Файл index.php - главная страница. В начале в переменную $result_in
Запросом mysql_query заносятся необходимые данные из таблицы settings. Затем идёт проверка на их наличие в базе. Если ничего не найдено, будет выведено сообщение “ Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@misha.com ” и код ошибки.
Данные из таблицы выводятся циклом do while, выводом ptintf.
В MySQL запросе стоит лимит на количество выводимых записей - 10 туров.
<? include ("blocks/bd.php");
$result_in = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);
if (!$result_in)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@misha.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result_in) > 0)
{
$myrow_in = mysql_fetch_array($result_in);
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><? echo $myrow_in["title"]; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
<meta name="description" content="<? echo $myrow_in["meta_d"]; ?>">
<meta name="keywords" content="<? echo $myrow_in["meta_k"]; ?>">
</head>
<body>
<div id="wrap"> <div>
<? include ("blocks/top.php"); ?>
<? include ("blocks/left.php"); ?>
<div class="content">
<p style="line-height:1.4;padding:5px;">
<? echo $myrow_in["text"]; ?>
</p>
<br/>
<div class="left">
<div class="new_les"></div> <?
$result = mysql_query("SELECT * FROM data ORDER BY id DESC LIMIT 10",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код
ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow_in = mysql_fetch_array($result);
do
{
$r = $myrow_in["rating"]/$myrow_in["q_vote"];
$r = intval($r);
$sum= $myrow_in["price1"] + $myrow_in["price2"] + $myrow_in["price3"] + $myrow_in["price4"] + $myrow_in["price5"];
printf ("<div class='side_block'>
<div class='img'><img src='%s'/></div> <div class='c_desc'><div class='c_title'>%s</div> <div>%s</div> <div class='c_price'>Стоимость путёвки: <b>%s $</b></div> </div> <div class='clear'></div> <div class='more'><a href='view_post.php?id=%s'>Подробная информация »</a> </div>
<div style='border-bottom:1px dotted #1C70B5;margin:10px auto 10px auto;'></div></div>",$myrow_in["mini_img"],$myrow_in["title"],$myrow_in["description"],$sum,$myrow_in["id"] );
}
while ($myrow_in = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";
exit();
} ?>
</div>
</div>
<? include ("blocks/right.php"); ?>
</div>
<? include ("blocks/footer.php"); ?>
</body>
</html>
Файл view_cat.php - страница категория туров. Страница отвечает за вывод путёвок по категориям. В Начале файлы запускается сессия <? session_start();?>. Затем осуществляется проверка переменных на наличие методом GET. Далее идёт проверка является ли переменная числом. Если нет, то выводится соответствующее сообщение.
В переменную $result заносятся данные из таблицы категории с условием WHERE, где id тура равняется переменной $cat. Далее данные из таблицы выводятся циклом do while, выводом ptintf.
<? session_start();?>
<? include ("blocks/bd.php");
if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
if (!isset($cat)) {$cat = 1;}
/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $cat)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
$result = mysql_query("SELECT * FROM categories WHERE id='$cat'",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@misha.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow_cat = mysql_fetch_array($result);
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><? echo "$myrow_cat[title]"; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="wrap">
<? include ("blocks/top.php"); ?>
<? include ("blocks/left.php"); ?>
<div class="content">
<div class="nav_post"><a href="">Главная</a> » <a href="">
<? echo "$myrow_cat[title]"; ?></a>
</div>
<br/><br/><br/> <?
$result = mysql_query("SELECT * FROM data WHERE cat='$cat' ORDER BY id",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow_cat = mysql_fetch_array($result);
do
{
$r = $myrow_cat["rating"]/$myrow_cat["q_vote"];
$r = intval($r);
printf ("<div class='side_block'>
<div class='img'><img src='%s'/></div> <div class='c_desc'><div class='c_title'>%s</div> <div>%s</div> <div class='c_price'>Дата вылета: <b>%s </b></div> </div> <div class='clear'></div> <div class='more'><a href='view_post.php?id=%s'>Подробная информация »</a> </div>
<div style='border-bottom:1px dotted #1C70B5;margin:10px auto 10px auto;'></div> </div>",$myrow_cat["mini_img"],$myrow_cat["title"],$myrow_cat["description"],$myrow_cat["date"],$myrow_cat["id"] );
}
while ($myrow_cat = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";
exit();} ?>
</div>
<? include ("blocks/right.php"); ?>
</div>
<? include ("blocks/footer.php"); ?>
</body>
</html>
Файл view_order.php - страница заказа выбранного тура. Предназначен для оформления заказа выбранной пользователем путёвки. В начале файла идёт подключение к базе данных, через файл bd.php. Далее осуществляется проверка переменных на наличие методом GET. Затем условным выражением проверяется формат запроса. Если формат неверный, - будет выведено соответствующее сообщение.
Пользователю доступна форма, которая обрабатывается файлом form_ticket.php, т.е. у которой action='form_ticket.php' . Обработка осуществляется методом post.
<? include ("blocks/bd.php");
if (isset($_GET['id'])) {$id = $_GET['id']; }
if (!isset($id)) {$id = 1;
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
$result = mysql_query("SELECT * FROM data WHERE id='$id'",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору<br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow_post = mysql_fetch_array($result);
$new_view = $myrow_post["view"] + 1;
$update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'",$db);
}
else
{
echo "<p>Информация по запросу не может быть извлечена, в базе нет записей.</p>";
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><? echo "$myrow_post[title]"; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/blur.js" type="text/javascript"></script>
<script src="js/count_price.js" type="text/javascript"></script>
</head>
<body>
<div id="wrap">
<? include ("blocks/top.php"); ?>
<? include ("blocks/left.php"); ?>
<div class="content">
<div class="nav_post"><a href="">Главная</a> » <a href="">
<? echo "$myrow_post[title]"; ?></a>
</div>
<?
$r = $myrow_post["rating"]/$myrow_post["q_vote"];
$r = intval($r);
printf ("<div style=''><p id='post_title'> </p>
</div>");
?>
<br/>
<?
$sum= $myrow_post["price1"] + $myrow_post["price2"] + $myrow_post["price3"] + $myrow_post["price4"] + $myrow_post["price5"];
?>
<div class=''> <div class='view_order'> <form action='form_ticket.php' method='post' name='contFrm'>
<b style='font-size:13px;color:#1C70B5;border-bottom:1px solid #B9C4DA;display:block;padding-bottom:1px;'>Ваш заказ по путёвке <? echo "$myrow_post[title]"; ?></b><br/><br/>
<label><span class='required'>Название тура:</span></label>
<input id='tuor' name='title' type='text' class='box' size='25' value='<? echo "$myrow_post[title]"; ?>' />
<br/><br/>
<label><span class='required'>Дата тура:</span></label>
<input id='date' name='date' type='text' class='box' size='25' value='<? echo "$myrow_post[date]"; ?>'/>
<br/><br/>
<script type='text/javascript'>
</script>
<label><span class='required'>Колличетсво дней:</span></label>
<input name='period' type='text' id='days' class='box' size='25' value='<? echo "$myrow_post[duration]"; ?>' onkeyup='return only_numbers(this);' />
<br/>
<br/>
<label><span class='required'>Суммарная стоимость <b>*</b> :</span></label> <input name='period' type='text' id='days' class='box' size='25' value='<? echo "$sum"; ?> $' onkeyup='return only_numbers(this);' />
<br/>
<br/>
<label><span class='required'>Колличетсво людей: </span></label>
<input id='people' name='people' type='text' class='box' size='25' onkeyup='return only_numbers(this);' />
<br/>
<br/>
<br/><b style='font-size:13px;color:#1C70B5;border-bottom:1px solid #B9C4DA;display:block;padding-bottom:1px;'>Контактная информация</b><br/><br/> <label><span class='required'>Ваше Ф.И.О:</span></label>
<input id='fio' name='name' type='text' class='box' size='25' />
<br/><br/> <label><span class='required'>Контактный Email:</span> </label> <input type='text' name='email' id='email' class='box' size='25' value='Введите ваш email' />
<br/><br/> <label><span class='required'>Моб. телефон:</span> </label> <input name='mobile' id='mobile' type='text' class='box' size='25' onkeyup='return only_numbers(this);' value='Пример: (095)-499-50-42' />
<br/><br/><br/><br/> <b style='font-size:13px;color:#1C70B5;border-bottom:1px solid #B9C4DA;display:block;padding-bottom:1px;'>Дополнительные пожелания </b> <br/><br/> <textarea name='text' class='wishes' ></textarea> <!-- Submit Button--> <input name='ticket_but' type='submit' id='send_b' value='Отправить' /> </form> </div>
<br/>
<?
$r = $myrow_post["rating"]/$myrow_post["q_vote"];
$r = intval($r);
printf ("<div style=''>
<br/>
<div id='price_count'>* подробности о суммарной стоимости ↓</div>
<br/> автоматизация приложение программный
<form id='form_price' name='form1' class='form_sheet'> <br/>
<b style='font-size:13px;color:#1C70B5;border-bottom:1px solid #B9C4DA;display:block;padding-bottom:1px;'>Что входит в суммарную стоимость?</b><br/><br/> <label><span class='required'>Стоимость перелёта:</span></label> <div class='dollar_price'><label>%s долларов</label></div> <br/> <label><span class='required'>Стоимость гостиницы:</span></label> <div class='dollar_price'><label>%s долларов</label></div> <br/> <label><span class='required'>Стоимость питания:</span></label> <div class='dollar_price'><label>%s долларов</label></div> <br/> <label><span class='required'>Экскурсии:</span></label> <div class='dollar_price'><label>%s долларов</label></div>
<br/> <label><span class='required'>Дополнительные услуги:</span></label> <div class='dollar_price'><label>%s долларов</label></div>
<br/> <div></div> <br/> <br/>
<b style='font-size:13px;color:#1C70B5;border-bottom:1px solid #B9C4DA;display:block;padding-bottom:1px;'>Общая стоимость</b><br/><br/> <label><span class='required'>Итого:</span></label> <div class='dollar_price'><label>$sum долларов</label></div> <br/> <br/>
</form>
</div>", $myrow_post["price1"], $myrow_post["price2"], $myrow_post["price3"], $myrow_post["price4"], $myrow_post["price5"] );
?>
</div>
<div class="rating">
<form action="vote_res.php" method="post" name="vv">
<p class="pvote">Оцените путёвку: 1 <input name="score" type="radio" value="1"> 2 <input name="score" type="radio" value="2"> 3 <input name="score" type="radio" value="3"> 4 <input name="score" type="radio" value="4"> 5 <input name="score" type="radio" value="5" checked>
<input class="search_b" name="submit" type="submit" value="Оценить">
<input name="id" type="hidden" value="<?php echo "$id";?>">
</p>
</form>
</div>
<br/>
<?
$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id' ORDER BY id",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow_post3 = mysql_fetch_array($result3);
do
{
printf ("<div class='post_div'><p class='post_comment_add'>Автор: <b>%s</b></p><p class='post_comment_add'> Добавлено: <b>%s</b></p><div class='comments_border'></div>
<p style='color:#464646;line-height:1.4'>%s</p></div>",$myrow_post3["author"], $myrow_post3["date"], $myrow_post3["text"]);
}
while ($myrow_post3 = mysql_fetch_array($result3));
}
$result4 = mysql_query ("SELECT img FROM comments_setting",$db);
$myrow_post4 = mysql_fetch_array($result4);
?>
<div id="show_comments">Оставить отзыв ↓</div>
<div id="form_comments">
<span class="comment_adds">Ваш отзыв</span>
<form action="comment.php" method="post" name="form_com" class="">
<p class='pvote' >
<textarea name="text" class="form_com" ></textarea> <input name="id" type="hidden" value="<? echo $id; ?>"><br/>
<br><input name="sub_com" class="search_b" type="submit" value="Добавить"></p>
</form>
</div>
</div>
<? include ("blocks/right.php"); ?>
</div>
<? include ("blocks/footer.php"); ?>
</body>
</html>
Файл right.php - страница правого блока(авторизация, горящие путёвки, актуальные туры).
Файл состоит из эдентичных блоков, отличающихся практически только SQL запросом.
Форма для авторизации обрабатывается файлом testreg.php методом POST.
Далее идёт вывод “Горящих туров” запросом $result = mysql_query("SELECT * FROM data WHERE secret=1 ORDER BY id DESC LIMIT 5 ",$db);
Актуальные туры запросом $result = mysql_query("SELECT * FROM data ORDER BY view LIMIT 5",$db);
Архив путёвок запросом $result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data WHERE secret=0 ORDER BY month DESC",$db);
<div id="sidebar_r">
<div class="lessons_bl"><? echo "".$_SESSION['login'].""?> <span class="profile" >(Это Вы)</span></div>
<div>
<form action="testreg.php" method="post" class="reg">
<!--**** testreg.php - это адрес обработчика. То есть, после нажатия на кнопку "Войти", данные из полей отправятся на страничку testreg.php методом "post" ***** --> <p> <label>Ваш логин:<br></label> <input class="login" name="login" type="text" onblur="this.value=(this.value=='') ? 'Логин' : this.value;" onfocus="this.value=(this.value=='Логин') ? '' : this.value;" value="Логин" size="20" maxlength="25"> </p>
<!--**** В текстовое поле (name="login" type="text") пользователь вводит свой логин ***** --> <p><br/> <label>Пароль:<br></label> <input class="parol" name="password" type="password" onblur="this.value=(this.value=='') ? 'Пароль' : this.value;" onfocus="this.value=(this.value=='Пароль') ? '' : this.value;" value="Пароль" size="20" maxlength="25"> </p>
<!--**** В поле для паролей (name="password" type="password") пользователь вводит свой пароль ***** -->
<p>
<input type="submit" name="submit" value="Войти" class="login_b">
<!--**** Кнопочка (type="submit") отправляет данные на страничку testreg.php ***** -->
<br>
<!--**** ссылка на регистрацию, ведь как-то же должны гости туда попадать ***** -->
<div style='margin:7px 0 10px 0;'><a href="reg.php">Зарегистрироваться</a></div>
</p></form>
<?php
// Проверяем, пусты ли пересменные логина и id пользователя
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
// Если пусты, то мы не выводим ссылку
echo "<span class='log'>Вы вошли на сайт, как <b>гость</b>.</span>";
}
?>
<div class="lessons_bl">Горящие путёвки</div>
<?
$result = mysql_query("SELECT * FROM data WHERE secret=1 ORDER BY id DESC LIMIT 5 ",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do {
$r = $myrow["rating"]/$myrow["q_vote"];
$r = intval($r);
printf ("<div class='side_block'>
<div class='l_img'><img src='%s'></div>
<div class='s_title'><a href='view_post.php?id=%s'>%s</a></div>
<div class='s_desc'>%s</div>
<div class='s_date'>Дата вылета: %s </div>
</div>",$myrow["mini_img"],$myrow["id"],$myrow["title"],$myrow["description"],$myrow["date"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";
} ?>
<div class="lessons_bl">5 актуальных туров</div>
<?
$result = mysql_query("SELECT * FROM data ORDER BY view LIMIT 5",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
$r = $myrow["rating"]/$myrow["q_vote"];
$r = intval($r);
printf ("<div class='side_block'>
<div class='l_img'><img src='%s'></div>
<div class='s_title'><a href='view_post.php?id=%s'>%s</a></div>
<div class='s_desc'>%s</div>
<div class='s_date'>Дата вылета: %s </div>
</div>",$myrow["mini_img"],$myrow["id"],$myrow["title"],$myrow["description"],$myrow["date"]);
}
while ($myrow = mysql_fetch_array($result))
}
else
{
echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";
exit();
}?>
<div class="lessons_bl">Архив путёвок</div>
<? $result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data WHERE secret=0 ORDER BY month DESC",$db);
if (!$result4)
{
echo "<p>Неизвестная ошибка. напишите администартору m1ke.partenit@rambler.com. <br> <strong>Ошибка номер:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result4) > 0)
{
$myrow4 = mysql_fetch_array($result4);
do
{
printf ("<span class='nav_link'><ul class='side_menu'><li><a href='view_date.php?date=%s'>%s</a></li></ul></span>",$myrow4["month"],$myrow4["month"]);
}
while ($myrow4 = mysql_fetch_array($result4));
}
else
{
echo "<p>Информация остутствует.</p>";
exit();
}
</div>
Файл view_post.php - страница описания выбранного тура.
Описание практически эдентичны с файлом index.php. Отличается запросом mysql_query("SELECT * FROM data WHERE id='$id'",$db);
Html блоками и стилями CSS.
<? include ("blocks/bd.php");
if (isset($_GET['id'])) {$id = $_GET['id']; }
if (!isset($id)) {$id = 1;}
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
$result = mysql_query("SELECT * FROM data WHERE id='$id'",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору<br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow_post = mysql_fetch_array($result);
$new_view = $myrow_post["view"] + 1;
$update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'",$db);
}
else
{
echo "<p>Информация по запросу не может быть извлечена, в базе нет записей.</p>";
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Подобные документы
Проектирование баз данных и заполнение таблиц: сбор данных, составление логической модели, определение ключевых полей. Создание форм для ввода данных. Отбор записей с помощью запросов. Настройка параметров приложения ACCESS, его командный интерфейс.
отчет по практике [6,7 M], добавлен 13.09.2012Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.
дипломная работа [1,4 M], добавлен 03.06.2014Требования к программному средству. Спецификация качества программного обеспечения. Требования к эргономике и технической эстетики. Стадии и этапы разработки, порядок контроля и приемки. Проектирование архитектуры приложения, руководство пользователя.
курсовая работа [381,6 K], добавлен 20.06.2012Описание процесса разработки информационной системы. Анализ тестирования и выявления ошибок разработанного модуля. Обследование объекта автоматизации и оформление документации по эксплуатации программы. Сущность экспортирования и импортирования данных.
отчет по практике [1,3 M], добавлен 20.05.2017Анализ предметной области и среда функционирования информационной системы "Туристическое агентство". Разработка и сопровождение баз данных средствами Enterprise Manager в среде SQL Server 2008. Принципы создания таблиц, запросы, хранимые процедуры.
курсовая работа [2,1 M], добавлен 11.12.2013Описание платформы NET Framework. База данных Microsoft Access. Разработка Windows приложения. Модель программирования Windows Forms. Функциональное назначение программы. Входные и выходные данные. Требования к техническому и программному обеспечению.
курсовая работа [2,2 M], добавлен 15.03.2015Проектирование базы данных для автоматизации деятельности по учету автотранспорта ГИБДД Вяземского района. Выбор инструментария для разработки базы данных и приложения по её ведению. Описание интерфейса и физической структуры приложения баз данных.
курсовая работа [2,2 M], добавлен 28.06.2011Принцип работы регулятора громкости в ОС Windows. Требования к интерфейсу программного продукта, программному и техническому обеспечению. Выбор ядра для разработки приложения. Инсталляция и выполнение программы. Контекстная диаграмма и листинг приложения.
курсовая работа [978,4 K], добавлен 18.06.2015Понятие автоматизированных информационных систем, средства их разработки. Последовательность проектирования и разработки автоматизированной информационной системы "Туристическое агентство". Разработка ядра системы, создание интерфейса, внедрение.
курсовая работа [464,9 K], добавлен 22.04.2015Требования к программному продукту, к задачам и функциям, выполняемым программой, к техническому, программному и организационному обеспечению. Стадии и этапы разработки программного продукта. Простота навигации по программе, присутствие строки подсказки.
курсовая работа [236,7 K], добавлен 09.03.2009