Оценка состояния сложных технических объектов
Разработка программного комплекса формирования обобщенной оценки состояния сложных технических объектов на основе обработки событий. Методы мониторинга состояния объектов инфраструктуры. Реализация программного комплекса на языке программирования С++.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 08.10.2018 |
Размер файла | 6,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
eventHumidityValue = q1.value(2).toInt();
// QMessageBox::information(this,"", QString("Объект - %1 Темп1 - %2 Темп2 - %3 ")
// .arg(objects.at(i))
// .arg(eventTemperatureValue)
// .arg(eventHumidityValue));
int stateID = 0;
QString stateName;
query = QString("SELECT stateID, stateName "
"FROM state "
"WHERE "
"(%1 >= stateTemperatureMin AND %1 <= stateTemperatureMax) "
"AND (%2 >= stateHumidityMin AND %2 <= stateHumidityMax) ")
.arg(eventTemperatureValue)
.arg(eventHumidityValue);
if (q2.exec(query)) {
while (q2.next()) {
stateID = q2.value(0).toInt();
stateName = q2.value(1).toString();
}
query = QString("UPDATE journal "
"SET stateID = %1 "
"WHERE eventID = %2 ")
.arg(stateID)
.arg(journalID);
//QMessageBox::information(this,"", query);
if (q3.exec(query)) {
switch (i) {
case 0:
ui->lblObject1->setText(objectNames.at(i));
ui->lblState1->setText(stateName);
break;
case 1:
ui->lblObject2->setText(objectNames.at(i));
ui->lblState2->setText(stateName);
break;
case 2:
ui->lblObject3->setText(objectNames.at(i));
ui->lblState3->setText(stateName);
break;
}
}
}
//To Do.....
}
}
else {
QMessageBox::information(this,"", q1.lastError().text());
}
}
}
else {
QMessageBox::information(this, "", q.lastError().text());
}
}
else {
QMessageBox::information(this, "", db.lastError().text());
}
}
objects.cpp
#include "objects.h"
#include "ui_objects.h"
Objects::Objects(QWidget *parent) :
QDialog(parent),
ui(new Ui::Objects)
{
ui->setupUi(this);
model = new QSqlTableModel(0,db);
model->setTable("OBJECT");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("№"));
model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Объект"));
model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Адрес"));
view = ui->tableView;
view->setModel(model);
view->setAlternatingRowColors(true); // Подсветка строк разными цветами
view->resizeRowsToContents();
view->resizeColumnsToContents();
view->setSortingEnabled(true); // Сортировка таблицы
view->sortByColumn(0,Qt::AscendingOrder); // Порядок сортировки по умолчанию
}
Objects::~Objects()
{
delete ui;
}
void Objects::on_btnSaveExit_clicked()
{
close();
}
void Objects::on_btnInsert_clicked()
{
QString Object, Address;
Object = ui->txtObject->text();
Address = ui->txtAddress->text();
QSqlQuery qry;
qry.prepare("INSERT INTO OBJECT (objectName,objectAddress) VALUES ('"+Object+"','"+Address+"')");
if (ui->txtObject->text() == "" || ui->txtAddress->text() == "")
{
QMessageBox::warning(this, "Ошибка!",
"Вы не заполнили одно из полей, перепроверьте информацию.");
return;
}
else
{
if(qry.exec())
{
QMessageBox::critical(this,tr("Сохранение"),tr("Запись сохранена."));
model->select();
}
else
{
QMessageBox::critical(this,tr("Ошибка!"),qry.lastError().text());
}
}
ui->txtObject->setText("");
ui->txtAddress->setText("");
}
void Objects::on_btnDelete_clicked()
{
QMessageBox::StandardButton stButtonYes;
stButtonYes = QMessageBox::question(this, "Подтверждение удаления",
"Вы действительно хотите удалить строку?",
QMessageBox::Yes | QMessageBox::No);
if(stButtonYes == QMessageBox::Yes)
{
model->removeRow(ui->tableView->currentIndex().row());
model->select();
}
}
parametry.cpp
#include "parametry.h"
#include "ui_parametry.h"
Parametry::Parametry(QWidget *parent) :
QDialog(parent),
ui(new Ui::Parametry)
{
ui->setupUi(this);
model = new QSqlTableModel(0,db);
model->setTable("PARAMETER");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("№"));
model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Параметр"));
model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Размерность"));
view = ui->tableView;
view->setModel(model);
view->setAlternatingRowColors(true); // Подсветка строк разными цветами
view->resizeRowsToContents();
view->resizeColumnsToContents();
view->setSortingEnabled(true); // Сортировка таблицы
view->sortByColumn(0,Qt::AscendingOrder); // Порядок сортировки по умолчанию
}
Parametry::~Parametry()
{
delete ui;
}
void Parametry::on_btnSaveExit_clicked()
{
close();
}
void Parametry::on_btnInsert_clicked()
{
QString Parameter, Razmernost;
Parameter = ui->txtPar->text();
Razmernost = ui->txtRaz->text();
QSqlQuery qry;
qry.prepare("INSERT INTO PARAMETER (parameterName,parameterDimension) VALUES ('"+Parameter+"','"+Razmernost+"')");
if (ui->txtPar->text() == "" || ui->txtRaz->text() == "")
{
QMessageBox::warning(this, "Ошибка!",
"Вы не заполнили одно из полей, перепроверьте информацию.");
return;
}
else
{
if(qry.exec())
{
QMessageBox::critical(this,tr("Сохранение"),tr("Запись сохранена."));
model->select();
}
else
{
QMessageBox::critical(this,tr("Ошибка!"),qry.lastError().text());
}
}
ui->txtPar->setText("");
ui->txtRaz->setText("");
}
void Parametry::on_btnDelete_clicked()
{
QMessageBox::StandardButton stButtonYes;
stButtonYes = QMessageBox::question(this, "Подтверждение удаления",
"Вы действительно хотите удалить строку?",
QMessageBox::Yes | QMessageBox::No);
if(stButtonYes == QMessageBox::Yes)
{
model->removeRow(ui->tableView->currentIndex().row());
model->select();
}
}
polzovateli.cpp
#include "polzovateli.h"
#include "ui_polzovateli.h"
Polzovateli::Polzovateli(QWidget *parent) :
QDialog(parent),
ui(new Ui::Polzovateli)
{
ui->setupUi(this);
model = new QSqlTableModel(0,db);
model->setTable("USER");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("№"));
model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Логин"));
model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Пароль"));
model->setHeaderData(3, Qt::Horizontal, QObject::trUtf8("Роль"));
view = ui->tableView;
view->setModel(model);
view->setAlternatingRowColors(true); // Подсветка строк разными цветами
view->resizeRowsToContents();
view->resizeColumnsToContents();
view->setSortingEnabled(true); // Сортировка таблицы
view->sortByColumn(0,Qt::AscendingOrder); // Порядок сортировки по умолчанию
}
Polzovateli::~Polzovateli()
{
delete ui;
}
void Polzovateli::on_btnInsert_clicked()
{
QString Username, Password, Role;
Username = ui->txtUser->text();
Password = ui->txtPass->text();
Role = ui->txtRole->text();
QSqlQuery qry;
qry.prepare("INSERT INTO USERS (userUsername,userPassword,userRole) VALUES ('"+Username+"','"+Password+"','"+Role+"')");
if (ui->txtUser->text() == "" || ui->txtPass->text() == "" || ui->txtRole->text() == "")
{
QMessageBox::warning(this, "Ошибка!",
"Вы не заполнили одно из полей, перепроверьте информацию.");
return;
}
else
{
if(qry.exec())
{
QMessageBox::critical(this,tr("Сохранение"),tr("Запись сохранена."));
model->select();
}
else
{
QMessageBox::critical(this,tr("Ошибка!"),qry.lastError().text());
}
}
ui->txtUser->setText("");
ui->txtPass->setText("");
ui->txtRole->setText("");
}
void Polzovateli::on_btnDelete_clicked()
{
// Создаем окно с выбором вариантов действий
// создаем переменную ответа
QMessageBox::StandardButton stButtonYes;
// присваиваем значение, которое выберет пользователь: "Да" или "Нет"
stButtonYes = QMessageBox::question(this, "Подтверждение удаления",
"Вы действительно хотите удалить строку?",
QMessageBox::Yes | QMessageBox::No);
// проверяем нажата ли кнопка "Yes"
if(stButtonYes == QMessageBox::Yes)
{
// если нажата, то удаляем выбранную строку
model->removeRow(ui->tableView->currentIndex().row());
// обновляем модель
model->select();
}
}
void Polzovateli::on_btnSaveExit_clicked()
{
close();
}
sostoyaniya.cpp
#include "sostoyaniya.h"
#include "ui_sostoyaniya.h"
Sostoyaniya::Sostoyaniya(QWidget *parent) :
QDialog(parent),
ui(new Ui::Sostoyaniya)
{
ui->setupUi(this);
model = new QSqlTableModel(0,db);
model->setTable("STATE");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("№"));
model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Состояние"));
model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Мин. температура"));
model->setHeaderData(3, Qt::Horizontal, QObject::trUtf8("Макс. температура"));
model->setHeaderData(4, Qt::Horizontal, QObject::trUtf8("Мин. влажность"));
model->setHeaderData(5, Qt::Horizontal, QObject::trUtf8("Макс. влажность"));
view = ui->tableView;
view->setModel(model);
view->setAlternatingRowColors(true); // Подсветка строк разными цветами
view->resizeRowsToContents();
view->resizeColumnsToContents();
view->setSortingEnabled(true); // Сортировка таблицы
view->sortByColumn(0,Qt::AscendingOrder); // Порядок сортировки по умолчанию
}
Sostoyaniya::~Sostoyaniya()
{
delete ui;
}
void Sostoyaniya::on_btnSaveExit_clicked()
{
close();
}
void Sostoyaniya::on_btnInsert_clicked()
{
QString Sostoyanie, MinTemp, MaxTemp, MinVlag, MaxVlag;
Sostoyanie = ui->txtSostoyanie->text();
MinTemp = ui->txtMinTemp->text();
MaxTemp = ui->txtMaxTemp->text();
MinVlag = ui->txtMinVlag->text();
MaxVlag = ui->txtMaxVlag->text();
QSqlQuery qry;
qry.prepare("INSERT INTO STATES (stateName,stateTemperatureMin,stateTemperatureMax,stateHumidityMin,stateHumidityMax) VALUES ('"+Sostoyanie+"','"+MinTemp+"','"+MaxTemp+"','"+MinVlag+"','"+MaxVlag+"')");
if (ui->txtSostoyanie->text() == "" || ui->txtMinTemp->text() == "" || ui->txtMaxTemp->text() == "" || ui->txtMinVlag->text() == "" || ui->txtMaxVlag->text() == "" )
{
QMessageBox::warning(this, "Ошибка!",
"Вы не заполнили одно из полей, перепроверьте информацию.");
return;
}
else
{
if(qry.exec())
{
QMessageBox::critical(this,tr("Сохранение"),tr("Запись сохранена."));
model->select();
}
else
{
QMessageBox::critical(this,tr("Ошибка!"),qry.lastError().text());
}
}
ui->txtSostoyanie->setText("");
ui->txtMinTemp->setText("");
ui->txtMaxTemp->setText("");
ui->txtMinVlag->setText("");
ui->txtMaxVlag->setText("");
}
void Sostoyaniya::on_btnDelete_clicked()
{
QMessageBox::StandardButton stButtonYes;
stButtonYes = QMessageBox::question(this, "Подтверждение удаления",
"Вы действительно хотите удалить строку?",
QMessageBox::Yes | QMessageBox::No);
if(stButtonYes == QMessageBox::Yes)
{
model->removeRow(ui->tableView->currentIndex().row());
model->select();
}
}
spravka.cpp
#include "spravka.h"
#include "ui_spravka.h"
Spravka::Spravka(QWidget *parent) :
QDialog(parent),
ui(new Ui::Spravka)
{
ui->setupUi(this);
}
Spravka::~Spravka()
{
delete ui;
}
void Spravka::on_pushButton_clicked()
{
close();
}
spravochniki.cpp
#include "spravochniki.h"
#include "ui_spravochniki.h"
#include "polzovateli.h"
#include "parametry.h"
#include "sostoyaniya.h"
#include "objects.h"
Spravochniki::Spravochniki(QWidget *parent) :
QDialog(parent),
ui(new Ui::Spravochniki)
{
ui->setupUi(this);
}
Spravochniki::~Spravochniki()
{
delete ui;
}
void Spravochniki::on_btnBack_clicked()
{
close();
}
void Spravochniki::on_btnSpravPol_clicked()
{
Polzovateli polzovateli;
polzovateli.setModal(true);
polzovateli.exec();
}
void Spravochniki::on_btnSpravPar_clicked()
{
Parametry parametry;
parametry.setModal(true);
parametry.exec();
}
void Spravochniki::on_btnSpravSost_clicked()
{
Sostoyaniya sostoyaniya;
sostoyaniya.setModal(true);
sostoyaniya.exec();
}
void Spravochniki::on_pushButton_clicked()
{
Objects objects;
objects.setModal(true);
objects.exec();
}
Размещено на Allbest.ru
Подобные документы
Разработка аппаратно-программного комплекса для осуществления идентификации объектов управления на основе вещественного интерполяционного метода. Анализ работоспособности аппаратно-программного комплекса, пример идентификации объекта управления.
магистерская работа [2,2 M], добавлен 11.11.2013Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
курсовая работа [782,4 K], добавлен 26.05.2014Разработка программного обеспечения для автоматизированной системы калибровки и поверки комплекса технических средств ПАДК "Луг-1". Аналитический обзор аналогов. Проектирование пользовательского интерфейса. Средства разработки программного обеспечения.
дипломная работа [1,4 M], добавлен 17.12.2014Разработка для ОАО "КБ "Луч" технологического программного обеспечения комплекса технических средств радиосвязи С-диапазона. Предназначение комплекса для контроля и управления аппаратурой посредством внешних интерфейсов через порты Ethernet и COM.
презентация [577,1 K], добавлен 14.07.2012Проектирование программного комплекса на языке С++ с использованием принципов объектно-ориентированного программирования. Разработка разных меню, помогающих пользователю работать с программой. Описание процесса формирования статистики по памятникам.
курсовая работа [799,9 K], добавлен 01.12.2016Основы метода Монте-Карло и его применение. Разработка и тестирование программного модуля для ПК BRAND, позволяющего строить двумерные и трехмерные изображения для сложных геометрических объектов для обеспечения контроля за качеством сборки конструкций.
дипломная работа [5,2 M], добавлен 10.10.2015Разработка и реализация программы расчета заданных функций на языке программирования VBA. Математическая модель, параметры и характеристики задачи, критерии оценки эффективности созданного модуля. Разработка алгоритма и тестирование программного модуля.
курсовая работа [488,7 K], добавлен 08.09.2010Преимущества выбора программного комплекса АВК-5. Создание списка строек, учетные реквизиты и значения ряда новых параметров. Способ расчета прибыли. Создание объектов строительства, проектирование локальной сметы. Заполнение графы "Виды работ и затрат".
дипломная работа [2,9 M], добавлен 14.08.2013Проектирование серверного компонента, исполняющегося на узле кластера EMC Centera. Протокол взаимодействия компонентов, способный восстанавливаться после разрыва соединения между компонентами. Графический интерфейс пользователя для программного комплекса.
дипломная работа [1,1 M], добавлен 18.07.2014Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013