Добавлен: 03.07.2023
Просмотров: 236
Скачиваний: 3
СОДЕРЖАНИЕ
1. Технико-экономическая характеристика предметной области и предприятия
1.1. Характеристика предприятия и его деятельности
1.2. Организационная структура управления предприятием
1.3. Выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов
2. Информационное обеспечение задачи
2.1. Информационная модель и ее описание
2.2. Используемые классификаторы и системы кодирования
2.3. Характеристика нормативно-справочной, входной и оперативной информации
2.4. Характеристика результатной информации
3. Программное обеспечение задачи
3.1. Общее положение (дерево функций и сценарий диалога)
3.2. Характеристика базы данных
3.3. Структурная схема пакета (дерево вызова программных модулей)
3.4. Описание программных модулей
Рисунок 13 - дерево функций
В проекте построена следующая схема иерархии функций управления и обработки данных, которая призвана автоматизировать разрабатываемый программный продукт. При всём этом возможно выделить и детализировать одно подмножество функций: реализующих основные функции управления и обработки данных: ввода первичной информации, обработки, ведения информации, ответов на запросы и др.
3.2. Характеристика базы данных
СУБД MySQL. Всего три таблицы: пользователи, клиенты и спектакли.
Чуть ниже изображены их структуры.
Таблица 3
Пример фрагмента описания структуры записей таблицы «Пользователи»
|
Наименование поля |
Идентификатор поля |
Тип поля |
Длина поля |
Прочее |
|---|---|---|---|---|
|
Код пользователя |
User_id |
число |
11 |
ключевое поле |
|
Имя пользователя |
User_login |
строка |
30 |
|
|
Пароль пользователя |
User_password |
строка |
32 |
|
|
Хэш пользователя |
User_hash |
строка |
32 |
|
|
IP пользователя |
User_ip |
число |
10 |
Код пользователя – это ключевое поле, идентификатор пользователя.
Имя пользователя – логин для авторизации.
Пароль пользователя – пароль для авторизации.
Хэш пользователя – уникальный ключ сессии.
IP пользователя – IP пользователя.
Таблица 4
Пример фрагмента описания структуры записей таблицы «Клиенты»
|
Наименование поля |
Идентификатор поля |
Тип поля |
Длина поля |
Прочее |
|---|---|---|---|---|
|
Код клиента |
id |
число |
11 |
ключевое поле |
|
ФИО клиента |
name |
строка |
32 |
|
|
Количество билетов |
quantity |
число |
11 |
|
|
Цена билета |
price |
число |
11 |
|
|
Итог |
itog |
число |
11 |
|
|
ID спектакля |
Show_id |
число |
11 |
Код клиента — это ключевое поле, идентификатор клиента.
ФИО клиента – ФИО клиента.
Количество билетов – количество купленных билетов клиентом.
Цена билета – цена одного биллета.
Итог – общая сумма за все биллеты.
ID спектакля – id спектакля из таблицы «Спектакли»
Таблица 5
Пример фрагмента описания структуры записей таблицы «Спектакли»
|
Наименование поля |
Идентификатор поля |
Тип поля |
Длина поля |
Прочее |
|---|---|---|---|---|
|
Код спектакля |
id |
число |
11 |
ключевое поле |
|
Название спектакля |
name |
строка |
32 |
|
|
Количество доступных билетов |
quantity |
число |
11 |
|
|
Цена билета |
price |
число |
11 |
|
|
Дата и время спектакля |
datet |
Датавремя |
Код спектакля – это ключевое поле, идентификатор спектакля.
Название спектакля – название спектакля.
Количество доступных билетов – количество свободных мест на спектакль.
Цена билета – цена одного билета.
Дата и время спектакля – дата и время спектакля.
На рисунке номер 14 изображен сценарий диалога.
Рисунок 14 - сценарий диалога
На рисунке номер 15 изображена ER модель.
Рисунок 15 - ER модель
3.3. Структурная схема пакета (дерево вызова программных модулей)
В таблице номер 6 описаны модули.
Таблица 6
описания функций модулей
|
№ п/п |
Наименование модуля |
Функции модуля |
|---|---|---|
|
1. |
Модуль авторизации |
Процедура авторизации в ИС |
|
2. |
Модуль отчёта |
Страница с отчётом проданных билетов |
|
3. |
Модуль клиентов |
Страница со списком клиентов |
|
4. |
Модуль добавления клиентов |
Всплывающие окно с добавлением клиента |
|
5. |
Модуль редактирование клиента |
Всплывающие окно с редактированием клиента |
|
6. |
Модуль удаления клиента |
Кнопка для удаления клиента из базы |
|
7. |
Модуль спектакли |
Страница со списком спектаклей |
|
8. |
Модуль добавления спектакля |
Всплывающие окно с добавлением спектакля |
|
9. |
Модуль редактирование спектакля |
Всплывающие окно с редактированием спектакля |
|
10. |
Модуль удаления спектакля |
Кнопка для удаления спектакля из базы |
3.4. Описание программных модулей
Модуль авторизации состоит из двух функций: авторизация и проверка авторизации.
Код проверки авторизации.
public function check(){
if (isset($_COOKIE['id']) and isset($_COOKIE['hash'])){
$query = $this->db->getRow("SELECT *,INET_NTOA(user_ip) FROM users WHERE user_id = ?s LIMIT 1", intval($_COOKIE['id']));
$userdata = $query;
if(($userdata['user_hash'] !== $_COOKIE['hash']) or ($userdata['user_id'] !== $_COOKIE['id'])){
setcookie("id", "", time() - 3600*24*30*12, "/");
setcookie("hash", "", time() - 3600*24*30*12, "/");
return false;
}else{
return true;
}
}else{
return false;
}
}
Данная функция проверяет наличие кук и совпадение хэша и функция вызывается на каждой странице.
Код авторизации.
public function auth($name, $password){
$query = $this->db->getRow("SELECT user_id, user_password FROM users WHERE user_login='".$name."' LIMIT 1");
$data = $query;
if($data['user_password'] === md5(md5($password))){
$hash = md5($this->generateCode(10));
$this->db->query("UPDATE users SET user_hash='".$hash."' WHERE user_id='".$data['user_id']."'");
setcookie("id", $data['user_id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);
return true;
}else{
return false;
}
}
Данная функция проверяет логин, пароль. Если данные введены правильно, то устанавливает куки и генерирует хэш.
Модуль отчёта, это страница, где отображаются продажи. Функция получает данные с продажами и суммирует их. Код функции.
public function getstat(){
$data = $this->engine->getDB()->getOne("SELECT SUM(itog) FROM clients");
$out = json_encode(array('status'=>true, 'data'=>$data));
return $out;
}
Модуль клиентов, это получение данных из таблицы клиентов. Код функции.
public function getCli(){
$clients = $this->db->getAll("SELECT * FROM clients");
foreach ($clients as $key => $client) {
$clients[$key]['show_name'] = $this->db->getOne("SELECT name FROM shows WHERE id =?s", $client['show_id']);
}
return $clients;
}
Модуль добавления клиентов, это ввод данных в таблицу клиенты. Код функции.
public function addCli($name,$tet,$quantity,$price,$itog){
$qw = $this->engine->getDB()->getOne("SELECT quantity FROM shows WHERE id=?s", $tet);
if($qw > $quantity) {
$this->engine->getDB()->query("INSERT INTO clients (name,quantity,price,itog,show_id) VALUES (?s,?s,?s,?s,?s)", $name,$quantity,$price,$itog,$tet);
$this->engine->getDB()->query("UPDATE shows SET quantity = quantity - ?s WHERE id = ?s", $quantity,$tet);
$dat = "Добавлен";
} else {
$dat = "Нет такого количества билетов";
}
$out = json_encode(array('status'=>true, 'data'=>$dat));
return $out;
}
Модуль редактирования клиентов, это изменения данных в таблице клиенты. Код функции.
public function edCli2($id,$name,$tet,$quantity,$quantity2,$price,$itog){
$q = $quantity2-$quantity;
$check = $this->engine->getDB()->getOne("SELECT quantity FROM shows WHERE id =?s",$tet);
if ($check <= $q) {
$data = "Нет билетов";
} else {
$this->engine->getDB()->query("UPDATE clients SET name=?s,quantity=?s,price=?s,itog=?s,show_id=?s WHERE id =?s",$name,$quantity,$price,$itog,$tet,$id);
$this->engine->getDB()->query("UPDATE shows SET quantity = quantity + ?s WHERE id =?s", $q,$tet);
$data = "Обновленно";
}
$out = json_encode(array('status'=>true, 'data'=>$data));
return $out;
}
Модуль удаления клиентов, это удаление клиента из таблицы клиентов. Код функции.
public function delCli($id,$quantity,$tet){
$this->engine->getDB()->query("DELETE FROM clients WHERE id =?s", $id);
$this->engine->getDB()->query("UPDATE shows SET quantity = quantity + ?s WHERE id = ?s", $quantity,$tet);
$out = json_encode(array('status'=>true, 'data'=>"Удалено"));
return $out;
}
Модуль спектаклей, это получение данных из таблицы спектакли. Код функции.
public function getTet(){
$shows = $this->db->getAll("SELECT * FROM shows");
return $shows;
}
Модуль редактирования спектаклей, это изменение данных в таблице спектакли. Код функции.
public function edTet2($id,$name,$quantity,$price,$date){
$data = $this->engine->getDB()->query("UPDATE shows SET name=?s, quantity=?s, price=?s, datet=?s WHERE id =?s", $name,$quantity,$price,$date,$id);
$out = json_encode(array('status'=>true, 'data'=>"Обновленно"));
return $out;
}
Модуль удаления спектаклей, это удаление спектакля из таблицы спектакли. Код функции.
public function delTet($id){
$this->engine->getDB()->query("DELETE FROM shows WHERE id =?s", $id);
$out = json_encode(array('status'=>true, 'data'=>"Удалено"));
return $out;
}
4. Контрольный пример реализации и его описание
Заходим на сайт https://ivantest.aristov.biz/. Перед нами появляется окно авторизации. Вводим логин test и пароль 123456. Рисунок номер 16.
Рисунок 16 - форма входа
Затем перед нами появляется статистика продаж, рисунок номер 17.
Рисунок 17 - статистика продаж
И слева есть меню. Переходим к списку спектаклей, рисунок номер 18.
Рисунок 18 - список спектаклей
Добавим новый спектакль. Нажав кнопку «Добавить спектакль». Появится всплывающие окно для заполнения нового спектакля. Рисунок номер 19.
Рисунок 19 - Добавление спектакля
После заполнения полей, нажимаем добавить и обновляем страницу, рисунок номер 20.
Рисунок 20 - добавлен новый спектакль
Теперь добавим нового клиента. Нажимаем в меню на «Список клиентов». Откроется список клиентов рисунок номер 21.
Рисунок 21 - список клиентов
Нажимам на кнопку «Добавить клиента» и заполняем форму.
Рисунок 22 - форма добавления клиента
После заполнения полей нажимаем добавить и обновляем страницу, рисунок номер 23. А также при добавлении, редактировании и удалении клиента меняется количество билетов в спектакле, в зависимости от изменения количества билетов.
Рисунок 23 - добавлен клиент
Заключение
В данном курсовом проекте я выполнил оптимизацию некоторых процедур процесса продажи билетов. Основная цель была достигнута, а именно создание информационной системы с помощью которой можно автоматизировать организацию работ, а также облегчить ввод данных и получения нужной информации.
В проекте были приведены и спроектированы несколько видов работ:
Характеристика предприятия;
Была рассмотрена сама компания, ее описание и деятельность.
Организационная структура;
Информационная модель и ее описание;
Была спроектирована информационная модель, представляющая собой процесс обработки данных в информационной системе.
Программное обеспечение задачи;
В данном разделе было составлено дерево функций, сценарий диалога и описание и характеристики базы данных.
Контрольный пример реализации проекта.
Были предоставлены тестовые данные таблиц и экранные формы программного средства по управлению базой данных.
Список использованной литературы
- Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с
- Методы и средства проектирования информационных систем и технологий : учебное пособие / авт.-сост. Е.В. Крахоткина. - Ставрополь: СКФУ, 2015. - 152 с. - режим доступа http:// biblioclub.ru
- Митина, О.А. Методы и средства проектирования информационных систем и технологий: курс лекций / О.А. Митина. - Москва: Альтаир : МГАВТ, 2016. - 76 с. - режим доступа http:// biblioclub.ru
- Методология функционального моделирования IDEF0, Руководящий документ, Госстандарт России
- ГОСТ Р ИСО/МЭК 12207-2010 - Процессы жизненного цикла программных средств
- ГОСТ Р ИСО/МЭК ТО 15271-2002- Руководство по применению ГОСТ Р ИСО/МЭК 12207-2010
- ПР 50-733-99 – Правила по стандартизации. Основные положения единой системы классификации и кодирования технико-экономической и социальной информации унифицированных систем документации российской федерации.
- ГОСТ 34.602-89 - Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы.
- ГОСТ 34.601-90 - Автоматизированные Системы. Стадии создания
- РД 2000 «Методология функционального моделирования IDEF0»
- Абрамова Л.В. Инструментальные средства информационных систем: учебное пособие. - Архангельск: САФУ, 2013. - 118 с. - режим доступа http:// biblioclub.ru
- Заботина Н.Н.Проектирование информационных систем: учебное пособие. – М.: ИНФРА-М, 2013. - 331с.
- Золотов С.Ю. Проектирование информационных систем: учебное пособие. - Томск : Эль Контент, 2013. - 88 с. – режим доступа http:// biblioclub.ru
- Методы и средства проектирования информационных систем и технологий: учебное пособие / авт.-сост. Е.В. Крахоткина. - Ставрополь: СКФУ, 2015. - 152 с.
- Проектирование информационных систем. Проектный практикум: учебное пособие / А.В. Платёнкин, И.П. Рак, А.В. Терехов, В.Н. Чернышов. - Тамбов: Издательство ФГБОУ ВПО «ТГТУ», 2015. - 81 с. - режим доступа http:// biblioclub.ru
- Проектирование информационных систем. Проектный практикум: учебное пособие / А.В. Платёнкин, И.П. Рак, А.В. Терехов, В.Н. Чернышов. - Тамбов: Издательство ФГБОУ ВПО «ТГТУ», 2015. - 81 с. - режим доступа http:// biblioclub.ru
- Советов Б.Я. Базы данных: учебник / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовский. – 2-е изд., перераб. и доп. - М.: Юрайт, 2015. - 463с.