ВКР Нартова (1195826), страница 6
Текст из файла (страница 6)
Задача разработки интерфейса пользователя базы данных для предприятия по пошиву детской одежды является актуальной на сегодняшний день, так как практически любое предприятие использует информационную систему для ведения учета продажи товаров и услуг, материалов, хранения информации о клиентах и сотрудниках.
В ходе данной выпускной квалификационной работы проведено исследование программных продуктов, представленных на рынке программного обеспечения, рассмотрены критерии дизайна, стандарты и рекомендации по проектированию пользовательского интерфейса, изучены методы оценки качества интерфейса. В практической части данной работы разработано программное средство для предприятия по пошиву детской одежды, также проведено анкетирование пользователей с целью проверить, удовлетворяет ли созданное приложение ожиданиям пользователей.
Также следует отметить, что информационная система на предприятии значительно упрощает ведение учета на предприятии, ускоряет работу сотрудников, автоматизирует процесс хранения, поиска информации, что позволяет контролировать многие процессы, происходящие на предприятие, а именно, количество готовых изделий, количество материалов, хранимых на складе, помогает упростить бухгалтерские расчеты и многое другое.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Гопкало В.Н. Выпускная квалификационная работа. Общие требования и правила оформления: методическое пособие / В.Н. Гопкало, О.А. Графский – Хабаровск : Изд-во ДВГУПС, 2010. – 82 с.
2 Программа для ателье [Электронный ресурс] / Универсальная Система Учета / Москва, 2017. – Режим доступа: http://ususoft.ru/atelye.php
3 Formulasoft [Электронный ресурс] / Программна управления швейным бизнесом / Москва, 2006 – 2017. – Режим доступа: http://www.vcformula.ru/
4 Простой софт – «Ателье» [Электронный ресурс] / Конфигурация «Ателье» / Санкт-Петербург, 2007 – 2017. – Режим доступа: http://prostoysoft.ru/
5 ГОСТ Р ИСО 9241-210 Эргономика взаимодействия человек – система: Человеко-ориентированное проектирование интерактивных систем / Москва: Изд-во Стандартинформ, 2016. – 30 с.
6 ГОСТ Р ИСО 9241-110 Эргономика взаимодействия человек – система: Принципы организации диалога / Москва: Изд-во Стандартинформ, 2016. – 24 с.
7 Пономарев И.А. Разработка моделей и алгоритмов для многокритериальной оценки качества графического пользовательского интерфейса / И.А.Пономарев – Москва: Изд-во Просвещение – 2006. – 185 с.
8 Microsoft [Электронный ресурс] / How to design a great user experience for desktop applications / Microsoft, 2017. – Режим доступа: https://msdn.microsoft.com/ru-ru/library/windows/desktop/dn742462(v=vs.85).aspx
9 Microsoft [Электронный ресурс] / UX checklist for desktop applications / Microsoft, 2017. – Режим доступа: https://msdn.microsoft.com/library/windows/desktop/dn742479.aspx
10 Microsoft [Электронный ресурс] / Implementing Model-View-Controller in ASP.NET / Microsoft, 2017. – Режим доступа: https://msdn.microsoft.com/ru-ru/library/ms998540(en-us).aspx
11 MySQL [Электронный ресурс] / MySQL Editions / Oracle Corporation, 2017. – Режим доступа: https://www.mysql.com/
12 Qt [Электронный ресурс] / Qt for Application Development / The Qt Company, 2017. – Режим доступа: https://www.qt.io/
13 Даниляк В.И. Человеческий фактор в управлении качеством: инновационный подход к управлению эргономичностью: учебное пособие / В. И. Даниляк – M: Логос, 2011. – 336 с.
14 Куренкова В.П. Методические указания к выполнению экономической части выпускной квалификационной работы / В. П. Куренкова – Уфа: Логос, 2010. – 42 с.
15 ГОСТ Р ИСО 9241-161 Эргономика взаимодействия человек – система: Элементы графического пользовательского интерфейса / Москва: Изд-во Стандартинформ, 2016. – 54 с.
16 Пирогов В.Ю. Информационные системы и базы данных: организация и проектирование: учебное пособие / В.Ю. Пирогов – СПб.: БХВ-Петербург, 2009. – 528 с.
17 Избачков Ю.С. Информационные системы: Учебник для вузов. 3-е изд. / Ю.С. Избачков, В.Н. Петров, А.А. Васильев, И.С. Телина – СПб.: Питер, 2011. – 544 с.
18 Беркун С. Искусство управления IT-проектами, 2-е изд. / С. Беркун – СПб.: Питер, 2011. – 432 с.
19 Саак А.Э. Информационные технологии управления: Учебник для вузов. 2-е изд. (+CD) / А.Э. Саак, Е.В. Пахомов, В.Н. Тюшняков – СПб.: Питер, 2013. – 320 с.
20 Смирнова Г.Н. Проектирование экономических информационных систем / Г. Н. Смирнова, А.А. Сорокин, Ю.Ф. Тельнов – Москва: Изд-во М., 2003. – 512 с.
21 Персианов В.В Информационные системы: Учебно-методическое пособие / В.В. Персианов, Е.И. Логвинова – Москва-Берлин: Директ-Медиа, 2016. – 191 с.
22 Рудикова Л.В. База данных. Разработка приложений / Л.В. Рудикова – СПб.: БХВ-Петербург, 2006. – 496 с.
23 Леви Д. UX-стратегия. Чего хотят пользователи и как им это дать / Д. Леви – СПб.: Питер, 2017. – 304 с.
24 Randolph G. Bias, Deborah J. Mayhew Cost-Justifying Usability, Second Edition: An Update for the Internet Age, Second Edition – Morgan Kaufmann, 2005. – 640 с.
25 Торрес Роберт Дж. Практическое руководство по проектированию и разработке пользовательского интерфейса: Пер. с англ. / Роберт Дж. Торрес – М.: Издательский дом «Вильямс», 2002. – 400 с.
26 Баканов А.С. Эргономика пользовательского интерфейса: от проектирования к моделированию человеко-компьютерного взаимодействия / А.С. Баканов – Москва: Изд-во М., 2011. – 175 с.
27 Магдануров Г.И. ASP.NET MVC Framework / Г.И. Магдануров, В.А. Юнев – СПб.: БХВ-Петербург, 2010. – 320 с.
28 Шлее М. Qt 5.3. Профессиональное программирование на C++ / М. Шлее – СПб.: БХВ-Петербург, 2015. – 928 с.
29 Кузнецов М.В. MySQL 5 / М.В. Кузнецов, И.В. Симдянов – СПб.: БХВ-Петербург, 2006. – 1024 с.
30 MySQL [Электронный ресурс] / MySQL Documentation / Oracle Corporation, 2017. – Режим доступа: https://dev.mysql.com/doc/
ПРИЛОЖЕНИЕ А
(рекомендуемое)
Связь базы данных со средой разработки
bool DB::conection(const QString &s)
{
db_ = new QSqlDatabase;
*db_ = QSqlDatabase::addDatabase("QMYSQL");
db_->setHostName("127.0.0.1");
db_->setPort(3306);
db_->setDatabaseName(s);
db_->setUserName("root");
db_->setPassword("vista937");
return db_->open();
}
bool DB::reconection(const QString &s)
{
db_->close();
db_->setDatabaseName(s);
return db_->open();
}
bool DB::disconection()
{
db_->close();
return true;
}
ПРИЛОЖЕНИЕ Б
(рекомендуемое)
Модель
void AddressModel::refresh()
{
QString queryStr = " SELECT IDaddress, CityName, StreetName, HouseNumber, FlatNumber, CityID, StreetID"
" FROM address"
" INNER JOIN city "
" On address.CityID = city.IDcity "
" INNER JOIN street "
" On address.StreetID = street.IDstreet "
" ;";
setQuery(queryStr, DB::db());
qDebug() << "Ошибка обновления address: " << lastError().text();
}
bool AddressModel::insert(const QSqlRecord &rc)
{
QString queryStr = "INSERT INTO address ( "
"CityID, StreetID, HouseNumber, FlatNumber ) "
"VALUES ( ? , ? , ? , ? );";
QSqlQuery query(DB::db());
query.prepare(queryStr);
query.addBindValue(rc.value("CityID").toInt());
query.addBindValue(rc.value("StreetID").toInt());
query.addBindValue(rc.value("HouseNumber").toInt());
query.addBindValue(rc.value("FlatNumber").toInt());
bool r = query.exec();
qDebug() << "Ошибка вставки в address: " << query.lastError().text();
return r;
}
bool AddressModel::edit(const QSqlRecord &rc)
{
QString queryStr = "UPDATE address SET "
"CityID = ?, "
"StreetID = ?, "
"HouseNumber = ?, "
"FlatNumber = ? "
"WHERE IDaddress = ?; ";
QSqlQuery query(DB::db());
query.prepare(queryStr);
query.addBindValue(rc.value("CityID").toInt());
query.addBindValue(rc.value("StreetID").toInt());
query.addBindValue(rc.value("HouseNumber").toInt());
query.addBindValue(rc.value("FlatNumber").toInt());
query.addBindValue(rc.value("IDaddress").toInt());
bool r = query.exec();
qDebug() << "Ошибка изменения address: " << query.lastError().text();
return r;
}
bool AddressModel::remove(int id)
{
QString queryStr = " DELETE FROM address "
" WHERE IDaddress = ? ; ";
QSqlQuery query(DB::db());
query.prepare(queryStr);
query.addBindValue(record(id).value("IDaddress").toInt());
return query.exec();
}
ПРИЛОЖЕНИЕ В
(рекомендуемое)
Код отображения записи
ShowAddress::ShowAddress(QWidget *parent) :
QDialog(parent),
ui(new Ui::ShowAddress)
{
ui->setupUi(this);
model_ = new AddressModel(this);
model_->refresh();
ui->tableView->setModel(model_);
ui->tableView->setColumnHidden(0, true);
model_->setHeaderData(1,Qt::Horizontal, tr("Населенный пункт"));
model_->setHeaderData(2,Qt::Horizontal, tr("Улица"));
model_->setHeaderData(3,Qt::Horizontal, tr("Номер дома"));
model_->setHeaderData(4,Qt::Horizontal, tr("Номер квартиры"));
ui->tableView->setColumnHidden(5, true);
ui->tableView->setColumnHidden(6, true);
}
void ShowAddress::on_addButton_clicked()
{
EditAddress *editDialog = new EditAddress(model_->record(), this);
if(editDialog->exec() == QDialog::Accepted) {
model_->insert(editDialog->data());
model_->refresh();
}
}
void ShowAddress::on_editeButton_clicked()
{
EditAddress *editDialog = new EditAddress(model_->record(ui->tableView->currentIndex().row()), this);
if(editDialog->exec() == QDialog::Accepted) {
model_->edit(editDialog->data());
model_->refresh();
}
}
void ShowAddress::on_deleteButton_clicked()
{
model_->remove(ui->tableView->currentIndex().row());
model_->refresh();
}
ПРИЛОЖЕНИЕ Г
(рекомендуемое)
Код редактирования записи
EditAddress::EditAddress(const QSqlRecord &r, QWidget *parent) :
QDialog(parent),
ui(new Ui::EditAddress),
data_(r)
{
ui->setupUi(this);
ui->leFlatNumber->setText(data_.value("FlatNumber").toString());
ui->leHouseNumber->setText(data_.value("HouseNumber").toString());
CityModel cityModel;
cityModel.refresh();
for(int i = 0; i < cityModel.rowCount(); ++i){
QSqlRecord sqlRc = cityModel.record(i);
ui->cbCity->insertItem(i,sqlRc.value("CityName").toString(), sqlRc.value("IDcity"));
}
ui->cbCity->setCurrentIndex(ui->cbCity->findText(data_.value("CityName").toString()));
StreetModel streetModel;
streetModel.refresh();
for(int i = 0; i < streetModel.rowCount(); ++i){
QSqlRecord sqlRc = streetModel.record(i);
ui->cbStreet->insertItem(i,sqlRc.value("StreetName").toString(), sqlRc.value("IDstreet"));
}
ui->cbStreet->setCurrentIndex(ui->cbStreet->findText(data_.value("StreetName").toString()));
}
QSqlRecord &EditAddress::data()
{
data_.setValue("FlatNumber", ui->leFlatNumber->text());
data_.setValue("HouseNumber", ui->leHouseNumber->text());
data_.setValue("CityID", ui->cbCity->currentData());
data_.setValue("StreetID", ui->cbStreet->currentData());
return data_;
}














