Разработка информационной системы для ООО "ОйлТрейдГрупп"
Назначение и область применения информационной системы, особенности их классификации. Выбор и проектирование базы данных и системы управления базами данных. Разработка клиентского приложения. Выбор языка программирования. Разработка интерфейса системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Если учитывать выбранные ранее средства разработки, рассмотри физическую реализацию структуры данных для СУБД SQLite.
Таблица 2.1. Структура таблицы "Товар на складе" (TovarNaSklade)
Название поля |
Описание |
Тип поля |
Дополнительно |
|
id |
Уникальный идентификатор |
Integer |
Автоинкремент, первичный ключ |
|
id_t |
Артикул |
Text |
Вторичный ключ |
|
Current |
Кол-во имеющегося товара |
Integer |
||
Required |
Кол-во необходимого товара |
Integer |
CREATE TABLE `TovarNaSklade` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`Id_t` TEXT NOT NULL,
`Current` INTEGER NOT NULL,
`Required` INTEGER NOT NULL,
FOREIGN KEY (`Id_t`) REFERENCES `Tovar` (`id`)
);
Таблица 2.2. Структура таблицы "Изготовитель" (Manufacturer)
Название поля |
Описание |
Тип поля |
Дополнительно |
|
id |
Уникальный идентификатор |
Integer |
Автоинкремент, первичный ключ |
|
name_m |
Название фирмы изготовителя |
Text |
CREATE TABLE `Manufacturer` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name_m` TEXT NOT NULL
);
Таблица 2.3. Структура таблицы "Тип" (ProductType)
Название поля |
Описание |
Тип поля |
Дополнительно |
|
id |
Уникальный идентификатор |
Integer |
Автоинкремент, первичный ключ |
|
type_tov |
Тип товара |
Text |
CREATE TABLE `ProductType` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`type_tov` TEXT NOT NULL
);
Таблица 2.4. Структура таблицы "Накладная" (Nakladnaya)
Название поля |
Описание |
Тип поля |
Дополнительно |
|
id |
Уникальный идентификатор |
Integer |
Автоинкремент, первичный ключ |
|
type_n |
Тип накладной |
Integer |
||
file |
Файл в котором хранится накладная |
Text |
||
date |
Дата |
Text |
CREATE TABLE `Nakladnaya` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`type_n` INTEGER NOT NULL,
`file` TEXT NOT NULL,
`date` TEXT NOT NULL
);
Таблица 2.5. Структура таблицы "Товар накладной" (TovarNakladn)
Название поля |
Описание |
Тип поля |
Дополнительно |
|
id |
Уникальный идентификатор |
Integer |
Автоинкремент, первичный ключ |
|
id_n |
Номер накладной |
Integer |
Вторичный ключ |
|
id_t |
Артикул |
Text |
Вторичный ключ |
|
kolvo |
Количество товара в накладной |
Text |
CREATE TABLE `TovarNakladn` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`id_n` INTEGER NOT NULL,
`id_t` TEXT NOT NULL,
`kolvo` INTEGER NOT NULL,
FOREIGN KEY (`id_n`) REFERENCES `Nakladnaya` (`id`),
FOREIGN KEY (`id_t`) REFERENCES `Tovar` (`id`)
);
Таблица 2.6. Структура таблицы "Товар" (Tovar)
Название поля |
Описание |
Тип поля |
Дополнительно |
|
id |
Уникальный идентификатор |
Integer |
Автоинкремент, первичный ключ |
|
name |
Название товара |
Text |
||
id_type |
Номер типа |
Integer |
Вторичный ключ |
|
id_m |
Номер изготовителя |
Integer |
Вторичный ключ |
|
price |
Цена |
Integer |
||
unit |
Единицы измерения |
Integer |
CREATE TABLE `Tovar` (
`id` TEXT NOT NULL,
`name` TEXT NOT NULL,
`id_type` INTEGER NOT NULL,
`id_m` INTEGER NOT NULL,
`price` INTEGER NOT NULL,
`unit` INTEGER NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`id_type`) REFERENCES `ProductType` (`id`),
FOREIGN KEY (`id_m`) REFERENCES `Manufacturer` (`id`)
);
Представленная на (Рис.2.2) физическая модель базы данных построена на основе логической модели базы данных.
Рис.2.2 - Физическая модель базы данных
3. Разработка клиентского приложения
3.1 Выбор языка программирования
Для реализации системы был выбран язык Python и интегрированная среда разработки Geany. Среда разработки имеет множество достоинств:
– Текстовый редактор Geany обладает большой производительность, быстро открывая большие текстовые файлы.
– Реализована подсветка синтаксиса, которая непременно будет полезна разного рода программистам и вебмастерам.
– Базовый функционал программы можно расширить большим количеством модулей
– Geany можно установить на большинство всех популярных ОС: Linux, Windows, MacOS.
В качестве языка программирования был выбран язык Python. Язык программирования - формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно - ЭВМ) под её управлением. Python - это язык программирования общего назначения, распространяемый с открытыми исходными текстами (open source). Он оптимизирован для создания качественного программного обеспечения, высокой производительности труда разработчиков, переносимости программ и интеграции компонентов.
Преимущества Python:
– открытая разработка;
– довольно прост в изучении, особенно на начальном этапе;
– особенности синтаксиса стимулируют программиста писать хорошо читаемый код;
– предоставляет средства быстрого прототипирования и динамической семантики;
– множество полезных библиотек и расширений языка можно легко использовать в своих проектах благодаря предельно унифицированному механизму импорта и программным интерфейсам;
– механизмы модульности хорошо продуманы и могут быть легко использованы;
3.2 История языка Python
Создание Python было начато Гвидо ван Россумом (Guido van Rossum) в 1991 году, когда он работал над распределенной ОС Амеба. Ему требовался расширяемый язык, который бы обеспечил поддержку системных вызовов. За основу были взяты ABC и Модула-3. В качестве названия он выбрал Python в честь комедийных серий BBC "Летающий цирк Монти-Питона", а вовсе не по названию змеи. С тех пор Python развивался при поддержке тех организаций, в которых Гвидо работал. Особенно активно язык совершенствуется в настоящее время, когда над ним работает не только команда создателей, но и целое сообщество программистов со всего мира. И все-таки последнее слово о направлении развития языка остается за Гвидо ван Россумом.
Язык Python используется сотнями тысяч разработчиков по всему миру в таких областях, как создание веб-сценариев, системное программирование, создание пользовательских интерфейсов, настройка программных продуктов под пользователя и в других.
Среди прочих достоинств, Python отличается удивительной простотой, удобочитаемостью и простым синтаксисом; он легко интегрируется с внешними компонентами, написанными на других языках программирования; имеет мультипарадигменную архитектуру и поддерживает объектно-ориентированное, функциональное и модульное программирование; обладает обширной коллекцией уже запрограммированных интерфейсов и утилит. Набор встроенных инструментальных средств делает его необычайно гибким и динамичным языком программирования, идеально подходящим не только для быстрого решения тактических задач, но и для разработки перспективных стратегических решений. Несмотря на свое общее назначение, Python часто называют языком сценариев, так как он позволяет легко и просто использовать другие программные компоненты и управлять ими. Самым большим достоинством Python является, пожалуй, то, что с его помощью разработка программного обеспечения становится более быстрой и приятной.
3.3 Разработка информационной системы
При создании проекта был использован язык программирования Python и IDE Geany.
Файл main. py:
Подключение библиотек (библиотека виджетов qt, библиотеки SQL qt, системные библиотеки):
from PyQt5. QtWidgets import *
from prihodRashod import *
from product import *
from PyQt5. QtSql import *
import sys
class Main (QMainWindow):
def __init__ (self):
super (Main, self). __init__ ()
self. init ()
Класс QMainWindow служит для создания главного окна приложения. Он позволяет создавать скелет классического приложения с меню и панелями. Здесь происходит инициализация Main.
def init (self):
db = QSqlDatabase. addDatabase ('QSQLITE')
db. setDatabaseName ('BD1. db')
Подключение базы данных:
def init (self):
db = QSqlDatabase. addDatabase ('QSQLITE')
db. setDatabaseName ('BD1. db')
Добавление вкладок "Товар", "Приход/Расход":
tab = QTabWidget ()
Обновление таблицы при переключении вкладок "Товар", "Приход/Расход":
def updateTab (self):
self. productW. updateTable ()
self. prihodRashodW. updateTable ()
if __name__ == '__main__':
app = QApplication (sys. argv)
ex = Main ()
sys. exit (app. exec_ ())
QApplication класс управляет основными настройками и управлением потоком приложения с графическим интерфейсом. Он содержит главный цикл обработки событий, внутри которого события, генерируемые элементами окна и другие источники обрабатываются и пересылаются. Он также работает в масштабах всей системы и приложений в масштабах всей установки.
class ProductWidget (QWidget):
def __init__ (self, db):
super (ProductWidget, self). __init__ ()
self. db_ = db
self. init ()
QWidget класс является базовым классом для всех объектов пользовательского интерфейса. Инициализируется родитель ProductWidget, которым является класс QWidget. Сохранение полученной базы данных.
Файл product. py:
Подключаем библиотеки (библотека виджетов qt, библиотека SQL qt, библиотека для работы с принтером, библиотека для взаимодействий с виджетами пользовательского интерфейса, системные библиотеки)
from PyQt5. QtWidgets import *
from PyQt5. QtSql import *
from PyQt5. QtPrintSupport import *
from PyQt5. QtGui import *
from PyQt5. Qt import *
import sys
Инициализация таблицы и включение сортировки:
def init (self):
self. table = QTableWidget ()
self. table. setSortingEnabled (True)
Создание кнопок "Печать" и "Заявка":
self. lineEdit = QLineEdit ()
self. lineEdit. textEdited. connect (self. shear)
buttonPrint = QPushButton ('Печать')
buttonPrint. clicked. connect (self. printed)
buttonZ = QPushButton ('Заявка')
buttonZ. clicked. connect (self. application)
Размещение виджетов по горизонтали и вертикали:
hbox = QHBoxLayout ()
hbox. addWidget (self. lineEdit)
hbox. addWidget (buttonPrint)
hbox. addWidget (buttonZ)
vbox = QVBoxLayout ()
vbox. addWidget (self. table)
vbox. addLayout (hbox)
Обновление таблицы:
def updateTable (self):
self. db_. open ()
self. table. clear ()
Запрос класса QSqlQuery. Класс имеет функциональные возможности для выполнения и манипулирования командами SQL. Оба DDL и DML типы SQL запросов могут быть выполнены.
query = QSqlQuery (self. db_)
Метод в классе exec_ (), которая принимает в качестве аргумента строку, содержащую инструкцию SQL для выполнения.
j = 0
query. exec ('SELECT id '
'FROM TovarNaSklade')
while query. next ():
j += 1
self. table. setColumnCount (8)
self. table. setRowCount (j)
self. table. setHorizontalHeaderLabels (
['ID', 'Название', 'Тип товара', 'Изготовитель', 'Цена', 'За ед. измерения', 'В наличии', 'Необходимо'])
Выбираем поля из родительской таблицы, которые будем объединять в дочерней:
query. exec (
'SELECT TovarNaSklade. id, Tovar. name, ProductType. type_tov, Manufacturer. name_m, Tovar. price, Tovar. unit, TovarNaSklade. Current, TovarNaSklade. Required '
'FROM TovarNaSklade '
'INNER JOIN Tovar On Tovar. id = TovarNaSklade. Id_t '
'INNER JOIN ProductType ON ProductType. id = Tovar. id_type'
'INNER JOIN Manufacturer ON Manufacturer. id = Tovar. id_m')
Создание поиска:
def shear (self):
В этом методе добавляем функцию печати таблицы:
def printed (self):
Добавляем возможность создания заявок:
def application (self):
Файл prihodRashod. py:
Подключаем библиотеки (библиотека виджетов qt, библиотека для работы с принтером, библиотека для взаимодействий с виджетами пользовательского интерфейса)
from PyQt5. QtWidgets import *
from naklad import *
from PyQt5. QtPrintSupport import *
from PyQt5. QtGui import *
Инициализация PrihodRashod:
class PrihodRashod (QWidget):
def __init__ (self, db):
super (PrihodRashod, self). __init__ ()
self. db_ = db
self. init ()
Подключаем БД с накладными:
self. naklad = Naklad (self. db_)
Обновление таблицы при добавлении накладной:
def add (self):
self. naklad. exec ()
self. updateTable ()
Очищаем таблицу:
def updateTable (self):
self. db_. open ()
self. tableRashod. clear ()
self. tablePrihod. clear ()
Класс QPrinter предоставляет установленный в системе принтер. Создание экземпляра класса и диалогового окна:
def printed (self):
Файл naklad. py:
Подключаем библиотеки (библиотека виджетов qt, библиотека SQL qt, библиотека даты и времени)
from PyQt5. QtWidgets import *
from PyQt5. QtSql import *
from datetime import *
QGridLayout объект класса GridLayout представляет с сеткой ячеек, расположенных в строках и столбцах. Любой виджет может быть добавлен путем указания количества строк и столбцов ячейки. QComboBox предоставляет выпадающий список элементов, чтобы выбрать из. Размещаем элементы в ячейки:
def init (self):
gridBox = QGridLayout ()
self. copy = []
self.comboBox = QComboBox ()
self.comboBox. addItems (['Приход', 'Расход'])
label = QLabel ('Файл')
labelType = QLabel ('Тип накладной')
Выбираем и добавляем файл накладной:
def openFile (self):
self. listTovar. clear ()
fileName = QFileDialog. getOpenFileName (self,
'Открыть накладную',
filter='*. txt') [0]
self. lineEdit. setText (fileName)
file = open (fileName, 'r')
for l in file:
self. copy. append (l. strip ())
self. listTovar. addItem (l. strip ())
file. close ()
3.3 Разработка интерфейса системы
Интерфейс вкладки "Товар" представлен ниже (Рис.3.1).
Рис.3.1 - Вкладка со списком товаров на скдаде
В данной вкладке отображается весь товар, имеющийся на складе, и информация о нем. Также здесь присутствует строка поиска, кнопки "Печать" (Рис.3.2) и "Заявка". "Печать" позволяет нам распечатать таблицу имеющегося товара, "Заявка" создает файл со списком товара, которого не хватает на складе. Вкладка "Приход/Расход" реализует переход в другой раздел.
Рис.3.2 - Всплывающее окно для работы с печатью
Раздел "Приход/Расход" (Рис.3.3) выводит список всех оформленных накладных. Вкладка также включает в себя кнопки "Добавить" и "Распечатать".
Рис.3.3 - Вкладка со списками накладных
"Добавить" (Рис.3.4) позволяет нам добавить новую накладную, кнопка "Распечатать" дает нам возможность распечатать выбранную накладную.
Рис.3.4 - Всплывающее окно добавление накладной
В разделе Приход/Расход (Рис.3.5) также можно распечатать выбранную накладную.
Рис.3.5 - Всплывающее окно для работы с печатью
Заключение
В данной бакалаврской работе осуществлено проектирование и разработка информационной системы автоматизации складского учета на предприятии ООО "ОйлТрейд Групп". Необходимостью её разработки послужила работа с большим объемом бумаг на складе. Были достигнуты поставленные цели, и данная система отвечает заявленным требованиям.
Данная система разработана с использованием инструментов с открытым исходным кодом. К достоинствам системы можно отнести то, что её конечную реализацию и функционирование можно задействовать на любой современной операционной системе. Интерфейс системы получился интуитивно понятным и простым. Для освоения данной системы потребуется немного времени.
Разработанная система имеет следующие возможности:
– Поиск по категориям "ID", "Название", "Тип товара", "Изготовитель", "Цена", "За ед. измерения" и сортировка.
– Пользователь может добавлять, удалять и редактировать информацию о товаре.
– Отображение данных организованно в виде списка, что удобно для работы с данными.
Размещено на Allbest.ru
...Подобные документы
Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014Разработка базы данных для информационной системы "Библиотека". Системный анализ, инфологическое, даталогическое и физическое проектирование. Программирование бизнес-логики, разработка клиентского приложения. Создание web-приложения, web-доступ.
курсовая работа [3,3 M], добавлен 15.09.2014Выбор, обоснование и особенности работы СУБД. Характеристика языков программирования. Разработка структурной и функциональной модели информационной системы аптеки. Проектирование программной среды АИС и ее интерфейса. Построение модели базы данных.
курсовая работа [442,3 K], добавлен 21.04.2012Выявление информационных объектов баз данных и требований целостности к данным. Построение результирующей ER диаграммы. Даталогическое проектирование и разработка сценариев работы информационной системы. Выбор средства реализации клиентского приложения.
курсовая работа [2,7 M], добавлен 28.08.2012Технические средства обеспечения функционирования информационной системы. Проектирование базы данных информационной системы. Разработка веб-приложения – справочно-информационной системы для предприятия. Организация записи информации в базу данных.
дипломная работа [4,4 M], добавлен 16.05.2022Цели проектирования базы данных "Аэропорт": обработка информации о рейсах, расписании самолетов и билетах. Анализ предметной области. Принцип работы модели. Особенности реализации информационной системы. Среда программирования клиентского приложения.
лабораторная работа [2,4 M], добавлен 07.01.2014Создание концептуальной модели информационной системы, включающей в себя данные по магазинам, персоналу, владельцу и поставщикам - "Сеть магазинов". Выбор системы управления базами данных. Разработка клиентского приложения и интерфейса пользователя.
курсовая работа [525,9 K], добавлен 12.04.2015Разработка информационной системы ресторана, определение ее границ для реализации базы данных. Перечень запросов, отчетов и операций по вводу информации в информационной системе "Ресторан". Проектирование базы данных, выбор средств ее реализации.
курсовая работа [7,6 M], добавлен 27.04.2011Анализ входной информации и процессов, уровня автоматизации на предприятии. Выявление объекта и задачи автоматизации. Разработка концепции построения информационной модели информационной системы. Разработка структуры базы данных и клиентского приложения.
дипломная работа [2,0 M], добавлен 22.11.2015Классификация систем управления базами данных. Выбор операционной системы, языка программирования, среды разработки (IDE) и дополнительных компонент. Разработка интерфейса и функций программы по управлению складом, её тестирование и исходный код файлов.
курсовая работа [487,3 K], добавлен 25.12.2015Выбор языка и среды программирования, технологий доступа и взаимодействия с источниками данных. Требования к разработке информационной системы. Проектирование базы данных информационной системы учета и взаимодействующего с ней приложения .NET Framework.
курсовая работа [1,3 M], добавлен 17.05.2013Автоматизация учёта поступления и обучения детей в "Доме детского творчества". Проектирование программного продукта ИС; выбор системы управления базы данных, языка программирования. Разработка концептуальной, логической и физической моделей данных.
дипломная работа [1,5 M], добавлен 10.10.2015Анализ информационных потоков. Разработка структуры таблиц базы данных. Выбор CASE-средства для проектирования информационной системы и среды программирования. Разработка программных модулей (программного обеспечения). Подготовка справочных баз данных.
дипломная работа [6,8 M], добавлен 19.11.2013Системный анализ предметной области. Построение концептуальной и даталогичной модели базы данных. Физическое проектирование базы данных. Описание функциональной модели системы управления базами данных. Разработка экранных форм ввода-вывода и отчета.
курсовая работа [1,1 M], добавлен 09.12.2014Разработка информационной системы, выбор языка программирования, физическое описание базы данных, выбор типа и описание таблиц базы данных. Техническое проектирование, ограничения и значения по умолчанию, представления, хранимые процедуры и триггеры.
курсовая работа [519,8 K], добавлен 25.05.2010Главные составные части среды программирования. Требование к надежности, к составу и параметрам технических средств. Табличные базы данных. Выбор и обоснование выбора системы управления базами данных. Высокопроизводительный компилятор в машинный код.
курсовая работа [793,5 K], добавлен 31.01.2016Разработка системы хранения и обработки данных, интерфейса. Использование технологии Xamarin.Forms для организации заполнения путевых листов. Выбор операционной системы, языка и среды программирования. Аппаратная интеграция информационной системы.
дипломная работа [1,7 M], добавлен 09.07.2017Проектирование многопользовательской информационной системы для автоматизации работы диспетчера отдела грузоперевозок. Выбор среды программирования. Разработка программного обеспечения, таблиц базы данных АСОИ. Построение диаграмм классов и деятельности.
курсовая работа [298,1 K], добавлен 03.06.2014Проектирование модели данных и ее реализация средствами СУБД Microsoft Access. Разработка приложения "Комиссионное вознаграждение". Выполение интерфейса информационной базы средствами системы управления данными. Создание запросов и отчетных форм.
курсовая работа [5,8 M], добавлен 25.09.2013Создание базы данных, построение на ее основе информационной системы в виде веб-сайта. Обоснование и выбор системы управления базой данных. Датологическое проектирование, разработка алгоритма решения задачи, создание форм. Результаты обработки данных.
отчет по практике [904,1 K], добавлен 13.04.2015