Деятельность отдела работы с рынками города при мэрии города Томска

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное  учреждение высшего профессионального  образования

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ  УНИВЕРСИТЕТ»

 

 

Институт  - ИДО

Специальность - прикладная информатика (в экономике)

Кафедра  - ОСУ

 

 

 

 

Пояснительная записка

Курсового проекта по теме:

«Деятельность отдела работы с рынками города

при мэрии города Томска»

по дисциплине: Проектирование информационных систем»

 

 

 

 

 

 

Студент     гр.________            ___________________            Д. С. Тихомиров

 (номер группы)   (подпись)

      ___________________

   (дата)

Руководитель                ____________________             Е. Е. Мокина

(подпись)

      ___________________

(дата)

 

 

 

 

 

 

 

Томск 2013

 

Оглавление

 

Задание

к курсовому проекту

 

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

1. Выполнить  предварительное описание информационной  системы.

2. Выполнить  предварительный анализ проблем.

3. Выполнить  полный анализ проектируемой  информационной системы.

4. Разработать  проект системы.

5. Реализовать  систему.

 

Реферат

Данная пояснительная записка описывает этапы и результаты курсовой работы.

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

Предметная  область: Продуктовые рынки города Томска.

На раннем этапе  исследования используются диаграммы: DFD, IDEF0, IDEF1X.

Затем разрабатывается  структура баз данных.

Реализация  проекта на основе языков программирования: HTML, PHP, JS. Без использования SQL.

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

 

Введение

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

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

Проблема:

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

Цель  курсовой работы:

Реализовать необходимую  информационную систему.

Актуальность:

  1. Поступило указание «сверху».
  2. При стабильном доступе к ресурсу и минимальном донесении сведений о данном ресурсе до населения информационная система будет пользоваться спросом.

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

 

Предварительный анализ

Характеристика организации

Организация:

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

Является не коммерческой организацией.

Функции ИС

Хранение информации о:

- продуктовых  рынках;

- единицах измерения  продуктов;

- поступающих документах;

- ценах на  продукты;

- существующих  продуктах.

Поддержка внесения вышеописанных данных в ИС.

Поиск цен на продукт по его наименованию или  его части.

Пользователи системы и их информационные потребности

Население –  получение исчерпывающей информации по искомому продукту.

Администратор – Внесение всех данных. Изменение  всех данных.

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

Администратору для выполнения поставленных задач требуется компьютер с широкополосным доступом в интернет и любой современный браузер: Chrome, IE6+, Mozilla, Firefox и т.д.

Формулировка проблем  и определение масштабов системы

Проблемы:

- Трудоемкость  ручной сортировки и анализа входящей документации;

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

Для эффективной  работы необходимо:

- Ввести электронный  способ хранения всей поступающей информации;

- Организовать  интерфейс администратора для  своевременного занесения информации;

- Организовать  удобную систему поиска по  уже существующей информации.

 

Формирование требований к ИС

Моделирование процессов (IDEF0)

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

Уровень A0 описывает связи и внешние факторы отдела.

 

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

 

 


 

 

Обработка запроса  пользователя, с точки зрения IDEF0, в дальнейшей проработке не нуждается.

Работа администратора разбивается на следующие этапы.

 

 

 

Диаграмма потока данных (DFD)

Потоки данных, сопутствующие работе отдела, можно описать следующим образом.



 



 

 

 

 

Информационная  система содержит четыре подсистемы:

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

- подсистема  работы со справочниками;

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

- подсистема  обработки запроса пользователя.

 

 

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

 

 

 

 

 

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

 

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

 

 
 Подсистема внесения данных отчета с рынка отвечает за основную работу администратора:

- создание / редактирование  внутреннего документа;

- создание / редактирование  записи внутри документа.

 

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

 

 
 Построение модели данных по методологии IDEF1X

 

 

Генерация базы данных

Генерация составляющих базы данных будет происходить в  следующих файлах.

dustup.txt - Хранилище Логин/Пароль;

izm.txt – Единица измерения;

goods.txt – Товар;

markets.txt – Рынок;

documents.txt – Документ;

main.txt – Документ-товар.

 

В качестве сепараторов выбраны  следующие строки.

«{}» – между записями;

«;;;» - между данными в  записи.

 

Описание интерфейса и  диалогов ИС

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


 

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

 

Структура переходов и способов ветвления ИС

Для максимального  удобства и защиты ИС применим ModRewrite. Для этого в конфигурационном файле сервера .htacccess пропишем следующие строки.

 

RewriteEngine on

Options +FollowSymlinks

RewriteRule !^.*(gif|jpg|png|css|zip|exe|xls)$ index.php

 

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

 

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

 
 Для примера приведем способ работы со справочником «рынки». Аналогичным образом происходит работа с другими справочниками.

 

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

 
Реализация ветвления ИС

Необходимые модули будут подгружаться в основной при помощи PHP функции file(). При помощи этой же функции будет происходить считывание данных из базы. Запись в базу будет организована при помощи функции fputs(). Обработка и сортировка будут происходить в самих модулях.

Для примера  приведем часть модуля izms.php.

 

Считывание  и преобразование в массив.

$izm1=file("izm.txt");

$izm2=explode("{}",$izm1[0]);

 

Открытие файла  на запись и сохранение данных.

$f=fopen("izm.txt","w");

fputs($f,$izputs);

fclose($f);

 

Внутренняя переадресация

Интерфейс пользователя.

 


 

 


 

 


 

 

 

 

Интерфейс администратора.

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

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

 
Алгоритм поиска по базе

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

 

$content = '<FORM METHOD=POST id="mainf" onSubmit ="javascript: form_submit()">

<input  id="serch1" TYPE="text" size="20" value="'.$serch.'" autofocus>

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

<script type="text/javascript">

function form_submit()

{

document.getElementById(\'mainf\').action = "'.$serv.'"+document.forms["mainf"].elements["serch1"].value;

document.getElementById(\'mainf\').submit();

}

</script>

';

 

Форма поиска не отправляет данные на сервер. При нажатии  кнопки «Поиск» происходит переадресация  на адрес – root/«искомый товар». Затем программа вычленяет «искомый товар» из адресной строки и с ним работает.

 

$arr = explode( '/' , $_SERVER['REQUEST_URI'] );

$serch=iconv('UTF-8', 'CP1251', urldecode($arr[1]));

 

Формат вывода данных можно описать таблицей IxJ. Где I это список товаров подходящих по поиску. J список рынков, существующих в базе данных.

 

    1. Считываем необходимые базы данных.

$goods1=file("goods.txt");

$goods2=explode("{}",$goods1[0]);

$izm1=file("izm.txt");

$izm2=explode("{}",$izm1[0]);

$doc1=file("documents.txt");

$doc2=explode("{}",$doc1[0]);

$main1=file("main.txt");

$main2=explode("{}",$main1[0]);

$markets1=file("markets.txt");

$markets2=explode("{}",$markets1[0]);

 

  1. Генерация I составляющей.

for ($i1=0;$i1<sizeof($goods2);$i1++){

$goods3=explode(";;;",$goods2[$i1]);

$temp=substr_count($goods3[1],$serch);

if($temp>0){

for ($i2=0;$i2<sizeof($izm2);$i2++){

$izm3=explode(";;;",$izm2[$i2]);

if ($goods3[2]==$izm3[0]){$goods3[2]=$izm3[2];break;}

}

$result1[]=$goods3;

}

}

 

  1. Генерация J составляющей.

for ($i3=0;$i3<sizeof($markets2);$i3++){

$markets3=explode(";;;",$markets2[$i3]);

$result2[]=$markets3;

}

 

  1. Задаем каркас. Заполняем его символами пропуска.

for ($i4=0;$i4<sizeof($result1);$i4++){

for ($i5=0;$i5<sizeof($result2);$i5++){

$result3[$i4][$i5]="-";

}

}

 

 

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

 

$main3=array_reverse($main2);

for ($i6=0;$i6<sizeof($main3);$i6++){

$main4=explode(";;;",$main3[$i6]);

for ($i7=0;$i7<sizeof($doc2);$i7++){

$doc3=explode(";;;",$doc2[$i7]);

if($main4[1]==$doc3[0]){$main4[1]=$doc3[1];break;}

}

for ($i8=0;$i8<sizeof($result1);$i8++){

if($main4[2]==$result1[$i8][0]){

for ($i9=0;$i9<sizeof($result2);$i9++){

if($main4[1]==$result2[$i9][0]){

if ($result3[$i8][$i9]=="-"){

$result3[$i8][$i9]=$main4[3];

$msize = $msize - 1;

}

break;

}

}

break;

}

}

if($msize="0"){break;}

}

 

  1. Выводим на экран.

 

$content = $content.'<table border="1"><tr><td></td>';

for ($i10=0;$i10<sizeof($result2)-1;$i10++){

$content = $content.'<td>'.$result2[$i10][1].'<br>'.$result2[$i10][2].'</td>';}

$content = $content.'</tr>';

for ($i11=0;$i11<sizeof($result1);$i11++){

$content = $content.'<tr><td>'.$result1[$i11][1].'<hr>Ед. Изм.: '.$result1[$i11][2].'<br>Описание:'.$result1[$i11][3].'</td>';

for ($i12=0;$i12<sizeof($result2)-1;$i12++){

$content = $content.'<td>'.$result3[$i11][$i12];

if($result3[$i11][$i12]=="-"){$content = $content.'</td>';}else{$content = $content.' руб.</td>';}

}

$content = $content.'</tr>';

}

$content = $content.'</table>';

 

Заключение

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

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


Деятельность отдела работы с рынками города при мэрии города Томска