Разработка приложения для Windows, представляющего собой работу библиотеки

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 17.01.2018
Размер файла 299,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЕГАЗОВЫЙ УНИВЕРСИТЕТ ИНСТИТУТ НЕФТИ И ГАЗА

Кафедра Кибернетических систем

Специальность «Автоматизация технологических процессов и производств»

Задание на курсовую работу по дисциплине «Программирование и основы алгоритмизации»

Тема: Разработка приложения для Windows, представляющего собой работу библиотеки

Тюмень 2015

Оглавление

Введение

1. Назначение и область применения

2. Технические характеристики

3. Разработка рабочего проекта

3.1 Разработка программы

3.2 Спецификация программы

3.3 Текст программы

3.4 Описание программы

3.5 Тестирование программы

3.6

1. Назначение и область применения

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

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

· регистрировать заявки на авиабилеты (добавление и хранение заявок базе данных mysql);

· редактировать и удалять заявки;

· найти определенную заявку с помощью модуля «поиск» по заданным параметрам;

· просматривать все заявки в порядке убывания уникального номера id;

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

2. Технические характеристики

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

Программа должна:

1. содержать таблицу с удобной и понятной структурой для хранения заявок в mysql;

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

3. Обеспечить безопасность ввода данных, снизить риск sql инъекций с помощью фильтрации данных полученных из глобальных массивов $_POST и $_GET;

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

5. Содержать удобный и интуитивно понятный интерфейс;

6. Выполнять условия поставленной задачи;

Описание алгоритма

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

Блок-схема главного файла программы (index.php):

Блок-схема файла /system/ panel.php (отвечает за вызов определенных модулей программы в зависимости от значения глобального массива $_GET[`module']):

Блок-схема модуля вывода заявок /system/modules/list.php (вывод осуществляется с базы данных mysql циклом while, последующий вызов функции mysql_fetch_row() должен возвратить следующую строку, или false если нет больше колонок в таблице.):

Блок-схема поиска заявок по номеру рейса или дате отбытия /system/modules/search.php:

Блок-схема модуля добавления заявки /system/modules/add_object.php (для модуля редактирования аналогичная, только с предварительным выводом информации из базы данных в соответствующие поля формы):

Организация входных данных и выходных данных:

Входные данные в модуля добавления, редактирования, поиска заявок получены методами POST и GET через форму.

Перед работой с данными, они обработаны, предварительно созданными функциями во избежание sql-инъекций и проверки данных. Функции вызываются из файла /system/class/functions.php.

Выходные данные отображаются с помощью функции echo, предварительно пройдя вставку в макет дизайна сайта (echo $design_begin . $content . $design_end; - в файле index.php).

Выбор состава технических и программных средств:

Для размещения системы необходим компьютер, который обеспечивает возможность работы серверной ОС, SQL-сервер, dns-сервер. Также необходима поддержка php, htaccess. Остальные компьютеры, объединенные в единую сеть, должны быть подсоединены к компьютеру-серверу, который обеспечивает возможность работы серверной ОС браузера.

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

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

Для реализации проекта необходимо наличие на сервере:

- системы управления базами данных SQL Server,

- серверная ОС

На стороне клиентского приложения должны быть установлены:

- серверная ОС

- браузер.

3. Разработка рабочего проекта

3.1 Разработка программы

Для работы с программы необходим компонент, который бы обрабатывал скрипты PHP и преобразовывал бы их в код HTML, понятный браузеру.

Установщик веб-платформы предоставляет собой небольшую программу, предоставляющую доступ к быстрой установке и настройке всего спектра продуктов, которые могут понадобиться для разработки или развертывания веб-сайтов и веб-приложений на базе платформы Windows. Скачать установщик веб-платформы можно на официальном сайте программы http://www.microsoft.com/web/downloads/platform.aspx.

Разработка данной программы производилась в обычном текстовом редакторе - блокноте. Базы данных были созданы в программе phpmyadmin.

3.2 Спецификация программы

Index.php - главный файл проекта (выводит ошибки, проверяет авторизацию, выводит содержимое программы вместе с дизайном, вызывает файл /syste/panel.php)

.htaccess - файл, который можно отредактировать в блокноте (преобразует url адреса для более удобного отображения)

css/style.css - файл с каскадными таблицами стилей (если формат HTML предоставляет информацию о составе документа, то таблицы стилей сообщают как он должен выглядеть)

css/images/ - папка с изображениями для дизайна программы

system/panel.php - Файл проекта (связывает все файлы приложения)

system/class/bd.class.php - Класс, необходимый для работы с базой данных (подключение к mysql базе)

system/class/functions.php - Файл с функциями, созданные для удобства (вызова их в любой части программы)

system/config/bdconfig.php - содержит данные для подключения в базе данных (имя сервера, имя базы, имя пользователя, пароль, кодировка)

system/modules/add_object.php - модуль добавления заявки (добавляет заявку в базу данных)

system/modules/edit_object.php - модуль редактирования заявки (редактирует заявку в базе данных)

system/modules/dell_object.php - модуль удаления заявки (удаляет заявку из базы данных)

system/modules/design.php - файл проекта, содержит дизайн сайта, разделенный на две части (1 часть - начало дизайна, 2 часть - конец дизайн, между ними в файле index.php выводится контент)

system/modules/list.php - модуль вывода списка заявок (выводит циклом заявки из базы данных)

system/modules/ list_date.php - файл проекта для удобного вывода даты в поиске и добавлении заявки (содержит готовые значения в виде списка select для полей даты)

system/modules/ login.php - файл проекта для авторизации (авторизация происходит с помощью сохранения COOKIE в браузере пользователя и дальнейшей их проверки)

system/modules/ main.php - файл проекта для вывода информации на главной странице сайта

system/modules/ search.php - модуль поиска заявок по номеру рейса и дате

3.3 Текст программы

Таблица table_objects базы данных в mysql имеет следующий вид:

Где id - уникальный номер записи. Все остальные поля - текстовые и имеют кодировку cp1251.

Index.php - в начале прописываются строки для вывода ошибок, при их возникновении. Указывается кодировка, которая будет использоваться в программе. Задаем именованную константу с помощью функции define, для исключения возможности самостоятельного выполнения модулей без файла index.php. Файл проверяет, авторизован ли пользователь в программе. В случае если авторизован - запускается файл panel.php, если нет - запускается модуль авторизации. В конце программы происходит вывод переменной $content вместе с частями дизайна.

<?php

@session_start ();

@ob_start ();

@ob_implicit_flush ( 0 );

@error_reporting ( E_ALL ^ E_NOTICE );

@ini_set ( 'display_errors', true );

@ini_set ( 'html_errors', false );

@ini_set ( 'error_reporting', E_ALL ^ E_NOTICE );

header('Content-type: text/html; charset=windows-1251');

define ( 'bigproverka', true );

define ( 'MAINWAY', dirname ( __FILE__ ) );

$login = addslashes( $_COOKIE['login'] );

if( $login == "yes" ) {

require_once MAINWAY.'/system/panel.php';

} else {

require_once MAINWAY.'/system/modules/login.php';

}

echo $design_begin . $content . $design_end;

/*

Программу создали: Бугаев Иван и Ринат Файзуллин

АТПбз-13-1

*/

?>

.htaccess - меняют путь url на более удобный для ввода в браузер.

DirectoryIndex index.php

RewriteEngine On

# Редиректы

RewriteRule ^search$ index.php?module=search [L]

RewriteRule ^list$ index.php?module=list [L]

RewriteRule ^add_object$ index.php?module=add_object [L]

RewriteRule ^edit_object_([0-9]+)$ index.php?module=edit_object&id=$1 [L]

RewriteRule ^dell_object_([0-9]+)$ index.php?module=dell_object&id=$1 [L]

system/panel.php - модуль связывает разные части программы. В начале файла проверяется переменная bigproverka. Это позволяет исключить запуск модуля без файла index.php. Далее программа получает данные о местоположении пользователя на сайте с помощью метода GET. Проверяем, если страница пустая - выводит в верхнюю часть дизайна с помощью переменной $tags - метатег для запрета индексации этой страницы поисковыми системами. Включаем класс для работы с базой данный, модули, содержащие функции и доступ от базы данных. С помощью оператор выбора и полученное ранее переменной $module запускаем нужный модуль. В конце подключаем интерфейс программы.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$module = addslashes( $_GET['module'] );

if( $module == "" AND $_SERVER['REQUEST_URI'] != "/" ) {

$tags = <<<HTML

<meta name="robots" content="noindex">

<title>Страница не доступна</title>

HTML;

}

require_once MAINWAY.'/system/class/bd.class.php';

require_once MAINWAY.'/system/class/functions.php';

require_once MAINWAY.'/system/config/bdconfig.php';

if( $_SERVER['REQUEST_URI'] == "/" ) {

require_once MAINWAY.'/system/modules/main.php';

}

switch ($module) {

case "add_object" :

require_once MAINWAY.'/system/modules/add_object.php';

break;

case "edit_object" :

require_once MAINWAY.'/system/modules/edit_object.php';

break;

case "dell_object" :

require_once MAINWAY.'/system/modules/dell_object.php';

break;

case "list" :

require_once MAINWAY.'/system/modules/list.php';

break;

case "search" :

require_once MAINWAY.'/system/modules/search.php';

break;

}

require_once MAINWAY.'/system/modules/design.php';

?>

System/class/bd.class.php - класс для работы с базой данных

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

/*

Класс создает соединение с базой данных

*/

class DataBase

{

public static $mConnect; // Хранит результат соединения с базой данных

public static $mSelectDB; // Хранит результат выбора базы данных

// Метод создает соединение с базой данных

public static function Connect($host, $user, $pass, $name)

{

// Пробуем создать соединение с базой данных

self::$mConnect = mysql_connect($host, $user, $pass);

// Если подключение не прошло, вывести сообщение об ошибке..

if(!self::$mConnect)

{

echo "<p><b>К сожалению, не удалось подключиться к серверу MySQL</b></p>";

exit();

return false;

}

// Пробуем выбрать базу данных

self::$mSelectDB = mysql_select_db($name, self::$mConnect);

mysql_set_charset(DB_CHARSET);

// Если база данных не выбрана, вывести сообщение об ошибке..

if(!self::$mSelectDB)

{

echo "<p><b>".mysql_error()."</b></p>";

exit();

return false;

}

// Возвращаем результат

return self::$mConnect;

}

// Метод закрывает соединение с базой данных

public static function Close()

{

// Возвращает результат

return mysql_close(self::$mConnect);

}

}

?>

System/class/functions.php - функции написанные для проверки переменных, перед внесением их в базу данных и функция выбора значения select.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

function mysql_check_numbers($param){

$param_result = intval($param);

$param_result = strip_tags($param_result);

return addslashes($param_result);

}

function mysql_check_text($param){

$param_result = strip_tags($param);

return addslashes($param_result);

}

function mysql_check_html($param){

$param_result = htmlspecialchars($param);

return addslashes($param_result);

}

function echo_check_numbers($param){

return stripslashes($param);

}

function echo_check_text($param){

return stripslashes($param);

}

function echo_check_html($param){

$param_result = stripslashes($param);

return htmlspecialchars_decode($param_result);

}

function editor_select_option($option_menu,$select_now){

$option_menu_result=str_replace('value="'.$select_now.'">', 'value="'.$select_now.'" selected="selected">', $option_menu);

return $option_menu_result;

}

?>

System/config/bdconfig.php - данные для подключения к базе данных.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

define('DB_SERVER', 'localhost');

define('DB_DATABASE', 'base_atp');

define('DB_USERNAME', 'base_atp_user');

define('DB_PASSWORD', '******');

define('DB_CHARSET', 'cp1251');

?>

System/modules/add_object.php - модуль добавления заявок. В нижней части находится форма для отправки введенных данных. После получения данных методом POST, они проходят фильтрацию. Если ошибок не возникает - заносятся в базу данных.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$tags = <<<HTML

<title>Новая заявка</title>

HTML;

if( $_POST['form'] == "add" ) {

$sql_final_point = mysql_check_text( $_POST['final_point'] );

$sql_number_flight = mysql_check_text( $_POST['number_flight'] );

$sql_fio = mysql_check_text( $_POST['fio'] );

$sql_date_year = mysql_check_text( $_POST['year'] );

$sql_date_month = mysql_check_text( $_POST['month'] );

$sql_date_day = mysql_check_text( $_POST['day'] );

if( $sql_final_point == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Пункт назначения"</span><br><br>

HTML;

}

if( $sql_number_flight == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Номер рейса"</span><br><br>

HTML;

}

if( $sql_fio == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "ФИО"</span><br><br>

HTML;

}

if( $sql_date_year == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Год"</span><br><br>

HTML;

}

if( $sql_date_month == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Месяц"</span><br><br>

HTML;

}

if( $sql_date_day == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Число"</span><br><br>

HTML;

}

if( $error != "yes" ) {

DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

$query_load = "INSERT INTO table_objects (fio,number_flight,final_point,date_year,date_month,date_day) values ('$sql_fio','$sql_number_flight','$sql_final_point','$sql_date_year','$sql_date_month','$sql_date_day')";

$query = mysql_query($query_load);

DataBase::Close();

$msg = <<<HTML

<span style="color: red;">Заявка добавлена</span><br><br>

HTML;

}

}

$time = time();

$date_year = date( "Y",$time + 3600 );

$date_month = date( "m",$time + 3600 );

$date_day = date( "d",$time + 3600 );

require_once MAINWAY.'/system/modules/list_date.php';

$list_year=str_replace('value="'.$date_year.'">', 'value="'.$date_year.'" selected="selected">', $list_year);

$list_month=str_replace('value="'.$date_month.'">', 'value="'.$date_month.'" selected="selected">', $list_month);

$list_day=str_replace('value="'.$date_day.'">', 'value="'.$date_day.'" selected="selected">', $list_day);

$content = <<<HTML

<h2>Новая заявка</h2>

{$msg}

<div>

<form action="/add_object" method="post">

<input type="hidden" name="form" value="add">

<fieldset>

<dl>

<dt><label for="email">Пункт назначения:</label></dt>

<dd><input type="text" name="final_point" value=""></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<dt><label for="email">Номер рейса:</label></dt>

<dd><input type="text" name="number_flight" value=""></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<dt><label for="email">ФИО:</label></dt>

<dd><textarea name="fio" style="width:300px; height:150px;"></textarea></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<dt><label for="email">Дата вылета:</label></dt>

<dd>{$list_day}{$list_month}{$list_year}</dd>

</dl>

</fieldset>

<fieldset>

<dl>

<input type="submit" value="Добавить">

</dl>

</fieldset>

</form>

</div>

HTML;

?>

System/modules/edit_object.php - содержание аналогичное модулю добавления заявок. Дополнительно здесь выводятся данные в поля перед их выводом в форму и сохранение происходит по уникальному номеру заявки.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$tags = <<<HTML

<title>Редактирование заявки</title>

HTML;

$id = intval($_GET['id']);

if( $_POST['form'] == "edit" ) {

$sql_final_point = mysql_check_text( $_POST['final_point'] );

$sql_number_flight = mysql_check_text( $_POST['number_flight'] );

$sql_fio = mysql_check_text( $_POST['fio'] );

$sql_date_year = mysql_check_text( $_POST['year'] );

$sql_date_month = mysql_check_text( $_POST['month'] );

$sql_date_day = mysql_check_text( $_POST['day'] );

if( $sql_final_point == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Пункт назначения"</span><br><br>

HTML;

}

if( $sql_number_flight == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Номер рейса"</span><br><br>

HTML;

}

if( $sql_fio == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "ФИО"</span><br><br>

HTML;

}

if( $sql_date_year == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Год"</span><br><br>

HTML;

}

if( $sql_date_month == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Месяц"</span><br><br>

HTML;

}

if( $sql_date_day == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Не заполнено поле "Число"</span><br><br>

HTML;

}

if( $error != "yes" ) {

DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

$query_load = "UPDATE table_objects set fio='".$sql_fio."', number_flight='".$sql_number_flight."', final_point='".$sql_final_point."', date_year='".$sql_date_year."', date_month='".$sql_date_month."', date_day='".$sql_date_day."' WHERE id='".$id."'";

$query = mysql_query($query_load);

DataBase::Close();

$msg = <<<HTML

<span style="color: red;">Заявка отредактирована</span><br><br>

HTML;

}

}

DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

$query_sql_echo = "SELECT fio,number_flight,final_point,date_year,date_month,date_day FROM table_objects WHERE id='$id' LIMIT 0, 1";

$query_result_sql_echo = mysql_query($query_sql_echo);

while($row_sql_echo = mysql_fetch_array($query_result_sql_echo)) {

$sql_echo_fio = stripslashes( $row_sql_echo['fio'] );

$sql_echo_number_flight = stripslashes( $row_sql_echo['number_flight'] );

$sql_echo_final_point = stripslashes( $row_sql_echo['final_point'] );

$date_year = stripslashes( $row_sql_echo['date_year'] );

$date_month = stripslashes( $row_sql_echo['date_month'] );

$date_day = stripslashes( $row_sql_echo['date_day'] );

}

DataBase::Close();

require_once MAINWAY.'/system/modules/list_date.php';

$list_year=str_replace('value="'.$date_year.'">', 'value="'.$date_year.'" selected="selected">', $list_year);

$list_month=str_replace('value="'.$date_month.'">', 'value="'.$date_month.'" selected="selected">', $list_month);

$list_day=str_replace('value="'.$date_day.'">', 'value="'.$date_day.'" selected="selected">', $list_day);

$content = <<<HTML

<h2>Новая заявка</h2>

{$msg}

<div>

<form action="/edit_object_{$id}" method="post">

<input type="hidden" name="form" value="edit">

<fieldset>

<dl>

<dt><label for="email">Пункт назначения:</label></dt>

<dd><input type="text" name="final_point" value="{$sql_echo_final_point}"></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<dt><label for="email">Номер рейса:</label></dt>

<dd><input type="text" name="number_flight" value="{$sql_echo_number_flight}"></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<dt><label for="email">ФИО:</label></dt>

<dd><textarea name="fio" style="width:300px; height:150px;">{$sql_echo_fio}</textarea></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<dt><label for="email">Дата вылета:</label></dt>

<dd>{$list_day}{$list_month}{$list_year}</dd>

</dl>

</fieldset>

<fieldset>

<dl>

<input type="submit" value="Изменить">

</dl>

</fieldset>

</form>

</div>

HTML;

?>

System/modules/dell_object.php - модуль удаления заявки. Содержит форму с подтверждением удаления.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$tags = <<<HTML

<title>Удаление заявки</title>

HTML;

$id = intval($_GET['id']);

if( $_POST['dell'] == "yes" ) {

DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

$query_load = "DELETE FROM table_objects WHERE id='$id'";

$query = mysql_query($query_load);

DataBase::Close();

$content = <<<HTML

<h2>Заявка удалена</h2>

HTML;

else {

$content = <<<HTML

<h2>Удаление заявки</h2>

<div>

<form action="/dell_object_{$id}" method="post">

<input type="hidden" name="dell" value="yes">

<input type="hidden" name="form" value="add">

Вы дествительно хотите удалить заявку?

<fieldset>

<dl>

<input type="submit" value="Удалить">

</dl>

</fieldset>

</form>

</div>

HTML;

}

?>

System/modules/design.php - файл с дизайном программы. Дизайн делится на две части, между частями вставляется переменная $content.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$design_begin = <<<HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

{$tags}

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<link rel="stylesheet" type="text/css" href="/css/style.css" />

</head>

<body style="color: #000;">

<div class="main">

<div class="header">

<div class="header_resize">

<div class="menu_nav">

</div>

<div class="logo">

<h1><a href="/"><span>АТПбз-13-1</span></a> <small></small></h1>

</div>

<div class="clr"></div>

</div>

</div>

<div class="content">

<div class="content_resize">

<div class="mainbar">

<div class="article">

HTML;

$design_end = <<<HTML

<br>

</div>

</div>

<div class="sidebar">

<div class="gadget">

<h2 class="star"><span>Меню</h2>

<div class="clr"></div>

<ul class="sb_menu">

<li><a href="/list">Все заявки</a></li>

<li><a href="/add_object">Добавить заявку</a></li>

<li><a href="/search">Поиск заявок по номеру и дате </a></li>

</ul>

</div>

</div>

<div class="clr"></div>

</div>

</div>

<div class="footer">

<div class="footer_resize">

<p class="lf" style="color: #000;">Программу создали: Бугаев Иван и Ринат Файзуллин</p>

<p class="rf" style="color: #000;">АТПбз-13-1</p>

<div class="clr"></div>

</div>

</div>

</div>

</body>

</html>

HTML;

?>

System/modules/list.php Модуль выводит записи из таблицы базы данных с помощью цикла while.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$tags = <<<HTML

<title>Список заявок</title>

HTML;

DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

$query_sql = "SELECT id, fio, number_flight, final_point, date_year, date_month, date_day FROM table_objects ORDER BY id ASC LIMIT 0, 100";

$query_result_sql = mysql_query($query_sql);

while($row_sql = mysql_fetch_array($query_result_sql)) {

$row_sql['fio'] = echo_check_text( $row_sql['fio'] );

$row_sql['number_flight'] = echo_check_text( $row_sql['number_flight'] );

$row_sql['final_point'] = echo_check_text( $row_sql['final_point'] );

$row_sql['date_year'] = echo_check_text( $row_sql['date_year'] );

$row_sql['date_month'] = echo_check_text( $row_sql['date_month'] );

$row_sql['date_day'] = echo_check_text( $row_sql['date_day'] );

$content_object .= <<<HTML

<tr><td>{$row_sql['id']}</td><td>{$row_sql['final_point']}</td><td>{$row_sql['number_flight']}</td><td>{$row_sql['fio']}</td><td>{$row_sql['date_day']}.{$row_sql['date_month']}.{$row_sql['date_year']}</td><td><a href="/edit_object_{$row_sql['id']}">Редактировать</a></td><td><a href="/dell_object_{$row_sql['id']}">Удалить</a></td></tr>

HTML;

}

DataBase::Close();

$content = <<<HTML

<h3>Список заявок</h3>

<table class="simple-little-table" cellspacing="0" style="width: 95%;">

<tr><td>id</td><td>Пункт назначения</td><td>Номер рейса</td><td>ФИО</td><td>Дата вылета</td><td>Редактировать</td><td>Удалить</td></tr>

{$content_object}

</table>

HTML;

?>

System/modules/list_date.php - файл содержит готовые списке с датами.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

header('Content-type: text/html; charset=windows-1251');

$list_year = <<<HTML

<select name="year">

<option value="">Год</option>

<option value="2015">2015</option>

<option value="2016">2016</option>

<option value="2017">2017</option>

</select>

HTML;

$list_month = <<<HTML

<select name="month">

<option value="">Месяц</option>

<option value="01">Январь</option>

<option value="02">Февраль</option>

<option value="03">Март</option>

<option value="04">Апрель</option>

<option value="05">Май</option>

<option value="06">Июнь</option>

<option value="07">Июль</option>

<option value="08">Август</option>

<option value="09">Сентябрь</option>

<option value="10">Октябрь</option>

<option value="11">Ноябрь</option>

<option value="12">Декабрь</option>

</select>

HTML;

$list_day = <<<HTML

<select name="day">

<option value="">День</option>

<option value="01">01</option>

<option value="02">02</option>

<option value="03">03</option>

<option value="04">04</option>

<option value="05">05</option>

<option value="06">06</option>

<option value="07">07</option>

<option value="08">08</option>

<option value="09">09</option>

<option value="10">10</option>

<option value="11">11</option>

<option value="12">12</option>

<option value="13">13</option>

<option value="14">14</option>

<option value="15">15</option>

<option value="16">16</option>

<option value="17">17</option>

<option value="18">18</option>

<option value="19">19</option>

<option value="20">20</option>

<option value="21">21</option>

<option value="22">22</option>

<option value="23">23</option>

<option value="24">24</option>

<option value="25">25</option>

<option value="26">26</option>

<option value="27">27</option>

<option value="28">28</option>

<option value="29">29</option>

<option value="30">30</option>

<option value="31">31</option>

</select>

HTML;

?>

System/modules/login.php - модуль авторизации (если пароли при вводе совпадают - в браузер пользователя сохраняется COOKIE)

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$tags = <<<HTML

<title>Авторизация</title>

HTML;

if( $_POST['form'] == "login" ) {

$password_original = "123456";

$password = addslashes( $_POST['password'] );

if( $password == $password_original ) {

SetCookie("login","yes");

header("Location: /");

}

}

$content = <<<HTML

<h2>Авторизация</h2>

{$msg}

<div>

<form action="/index.php" method="post">

<input type="hidden" name="form" value="login">

<fieldset>

<dl>

<dt><label for="email">Пароль:</label></dt>

<dd><input type="password" name="password" value=""></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<input type="submit" value="Вход">

</dl>

</fieldset>

</form>

</div>

HTML;

?>

System/modules/main.php - файл с описанием главной страницы программы.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$tags = <<<HTML

<title>Главная страница</title>

<meta name="keywords" content="Главная страница" />

<meta name="description" content="Главная страница" />

HTML;

$content = <<<HTML

<p>Данная программа содержит информацию о заявках на авиабилеты. Для начала работы воспользуйтесь меню, расположенным справа.</p>

<img src="/css/images/air.jpg" width="625" height="201" alt="" />

<br>

HTML;

?>

System/modules/search.php - модуль поиска заявок по номеру рейса и дате отбытия. Содержит форму с полями. После отправки - данные, полученные через глобальный массив POST, проходят фильтрацию. С помощью цикла while получаем записи из таблицы базы данных по заданным параметрам.

<?php

if (! defined ( 'bigproverka' )) {

die ( "Ошибка" );

}

$tags = <<<HTML

<title>Поиск заявок</title>

HTML;

$date_year = mysql_check_text( $_POST['year'] );

$date_month = mysql_check_text( $_POST['month'] );

$date_day = mysql_check_text( $_POST['day'] );

$number_flight = mysql_check_text( $_POST['number_flight'] );

if( $_POST['form'] == "search" ) {

if( $number_flight == "" AND $date_year == "" AND $date_month == "" AND $date_day == "" ) {

$error = "yes";

$msg .= <<<HTML

<span style="color: red;">Хотя бы одно из полей должно быть заполнено</span><br><br>

HTML;

}

if( $number_flight != "" ) {

$sql_where .= " AND number_flight='".$number_flight."'";

}

if( $date_year != "" ) {

$sql_where .= " AND date_year='".$date_year."'";

}

if( $date_month != "" ) {

$sql_where .= " AND date_month='".$date_month."'";

}

if( $date_day != "" ) {

$sql_where .= " AND date_day='".$date_day."'";

}

if( $error != "yes" ) {

DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

$query_sql = "SELECT id, fio, number_flight, final_point, date_year, date_month, date_day FROM table_objects WHERE id != '0'".$sql_where." ORDER BY id ASC LIMIT 0, 100";

$query_result_sql = mysql_query($query_sql);

while($row_sql = mysql_fetch_array($query_result_sql)) {

$row_sql['fio'] = echo_check_text( $row_sql['fio'] );

$row_sql['number_flight'] = echo_check_text( $row_sql['number_flight'] );

$row_sql['final_point'] = echo_check_text( $row_sql['final_point'] );

$row_sql['date_year'] = echo_check_text( $row_sql['date_year'] );

$row_sql['date_month'] = echo_check_text( $row_sql['date_month'] );

$row_sql['date_day'] = echo_check_text( $row_sql['date_day'] );

$content_object .= <<<HTML

<tr><td>{$row_sql['id']}</td><td>{$row_sql['final_point']}</td><td>{$row_sql['number_flight']}</td><td>{$row_sql['fio']}</td><td>{$row_sql['date_day']}.{$row_sql['date_month']}.{$row_sql['date_year']}</td><td><a href="/edit_object_{$row_sql['id']}">Редактировать</a></td><td><a href="/dell_object_{$row_sql['id']}">Удалить</a></td></tr>

HTML;

}

DataBase::Close();

}

}

require_once MAINWAY.'/system/modules/list_date.php';

$list_year=str_replace('value="'.$date_year.'">', 'value="'.$date_year.'" selected="selected">', $list_year);

$list_month=str_replace('value="'.$date_month.'">', 'value="'.$date_month.'" selected="selected">', $list_month);

$list_day=str_replace('value="'.$date_day.'">', 'value="'.$date_day.'" selected="selected">', $list_day);

$content = <<<HTML

<h2>Поиск заявок</h2>

{$msg}

<div>

<form action="/search" method="post">

<input type="hidden" name="form" value="search">

<fieldset>

<dl>

<dt><label for="email">Номер рейса:</label></dt>

<dd><input type="text" name="number_flight" value="{$number_flight}"></dd>

</dl>

</fieldset>

<fieldset>

<dl>

<dt><label for="email">Дата вылета:</label></dt>

<dd>{$list_day}{$list_month}{$list_year}</dd>

</dl>

</fieldset>

<fieldset>

<dl>

<input type="submit" value="Поиск">

</dl>

</fieldset>

</form>

</div>

<table class="simple-little-table" cellspacing="0" style="width: 95%;">

<tr><td>id</td><td>Пункт назначения</td><td>Номер рейса</td><td>ФИО</td><td>Дата вылета</td><td>Редактировать</td><td>Удалить</td></tr>

{$content_object}

</table>

HTML;

?>

3.4 Описание программы

Общие сведения о программе

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

Функциональное назначение

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

Программа позволяет сделать процесс учета заявок более простым. Данная программа позволяет.

Пользователь имеет возможность запустить программу с любого устройства с доступом к интернету.

Описание логической структуры

В состав программы входят следующие модули:

- пользовательский интерфейс;

- модуль добавления, редактирования, удаления заявок;

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

- модуль вывода списка заявок;

- модуль построения авторизации;

Используемые технические средства

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

Для реализации проекта необходимо наличие на сервере:

- системы управления базами данных SQL Server,

- серверная ОС

На стороне клиентского приложения должны быть установлены:

- серверная ОС

- браузер.

Вызов и загрузка

Загрузка программы осуществляется набором в строке браузера локального пути или пути до удаленного сервера.

Входные данные

Входными данными для программы является текстовые поля, отправляемые методом POST.

Выходные данные

Выходными данными являются выводимые в браузере страницы;

Выходные данные отображаются с помощью функции echo, предварительно пройдя вставку в макет дизайна сайта (echo $design_begin . $content . $design_end; - в файле index.php).

3.5 Тестирование программы

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

Для создания и тестирования использовался удаленный виртуальный сервер vps. На сервере установлены isp панель, phpmyadmin.

В index.php были прописаны следующие строки для вывода ошибок, в случае их возникнования:

@ini_set ( 'display_errors', true );

@ini_set ( 'html_errors', false );

@ini_set ( 'error_reporting', E_ALL ^ E_NOTICE );

Была проверена отправка форм методом post и загрузка страниц с помощью передачи данных через глобальных массив $_GET.

Пример работы модуля вывода списка заявок:

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [475,8 K], добавлен 18.07.2012

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

    курсовая работа [700,6 K], добавлен 26.01.2010

  • Разработка программы для сбора и анализа информации об автобусах на парковке. Назначение и область применения. Алгоритм в словесной форме. Состав технических и программных средств. Разработка приложения в среде визуального программирования C++Builder 6.

    курсовая работа [1,5 M], добавлен 06.09.2014

  • Выбор состава технических и программных средств для создания данного приложения "Экзаменатор", использование среды разработки Borland Delphi. Основные компоненты и спецификация программы. Используемые технические средства, описание и запуск программы.

    курсовая работа [540,8 K], добавлен 18.07.2012

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

    курсовая работа [61,9 K], добавлен 12.05.2015

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

    курсовая работа [3,0 M], добавлен 22.12.2014

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

    курсовая работа [2,1 M], добавлен 16.02.2015

  • Разработка в среде Delphi приложения "Записная книжка" для ввода и корректировки информации, поиска данных. Выбор состава технических и программных средств. Текст программы, ее описание и тестирование. Основные условия программы, требования к компьютеру.

    курсовая работа [565,7 K], добавлен 08.12.2011

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

    курсовая работа [159,8 K], добавлен 26.01.2010

  • Разработка базы данных учета и хранения заявок пользователя. Создание программного средства на основе клиент/серверной технологии. Описание возможностей платформы Tandem Framework. Апробация программы автоматизации процессов подачи и обработки заявок.

    дипломная работа [3,6 M], добавлен 08.03.2013

  • Разработка эскизного и технического проектов программы, ее назначение и область применения, технические характеристики. Организация входных и выходных данных, выбор состава технических и программных средств. Текст программы, ее описание и тестирование.

    курсовая работа [1,3 M], добавлен 15.11.2009

  • Создание баз данных с использованием Database Desktop. Проведение автоматизации рабочего места кассира. Описание входной и выходной информации. Выбор среды реализации, состава и параметров технических средств. Проектирование интерфейса программы.

    курсовая работа [1021,5 K], добавлен 22.01.2015

  • Разработка эскизного и технического проектов программы "Шифр Цезаря": назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка, тест и внедрение программы.

    курсовая работа [563,7 K], добавлен 15.07.2012

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

    курсовая работа [693,4 K], добавлен 19.05.2014

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

    курсовая работа [675,2 K], добавлен 16.09.2017

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

    курсовая работа [3,7 M], добавлен 04.12.2014

  • Создание программы "MP3 Player", воспроизводящей аудио файлы формата MP3 для работы в операционной системе Windows с использованием языка программирования Delphi. Разработка интерфейса, алгоритма и документации к разработанному программному продукту.

    курсовая работа [625,0 K], добавлен 18.07.2012

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

    курсовая работа [460,1 K], добавлен 26.06.2015

  • Описание платформы NET Framework. База данных Microsoft Access. Разработка Windows приложения. Модель программирования Windows Forms. Функциональное назначение программы. Входные и выходные данные. Требования к техническому и программному обеспечению.

    курсовая работа [2,2 M], добавлен 15.03.2015

  • Технические характеристики игрового приложения для операционной системы Microsoft Windows. Обоснование выбора состава технических и программных средств. Характеристика процесса разработки программы "Угадайка", ее спецификация, описание и тестирование.

    курсовая работа [422,4 K], добавлен 10.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.