Разработка имитационной модели процесса управления искусственным кровообращением

Объектно-ориентированный подход в вычислительной математике и имитационном моделировании. Разработка системы по методологии UML на языке программирования C++ в среде Qt. Исследование биологического объекта управления. Функциональные возможности системы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 08.10.2018
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Изучить методики выявления креативности личности

Выбрать материалы для изучения проблемы усиления творческой сост-щей

Обсуждение с В.М.Радомским полученной системы тестов.Исправление ошибок и недочётов,если таковые имеются.

10

Поиск и анализ данных для чернового проекта программы

Подобрать подходящую методику, отвечающую критериям задания

Скачать из Интернета книгу Альтшуллера "Как стать гением"

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

11

Систематизация данных по патентам и занесение их в программу

Скачать из Интернета книгу Альтшуллера "Как стать гением"

Описать вопросы выбора Достойной цели; как добиться выполнения критериев: "Новизна", "Полезность", "Значимость", "Практичность".

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

12

Отладка программы

На основе выбранной методики составить программу-тест

Закончить программу. Делать пояснительную записку.

Создать тесты с помощью Web-сервиса

Представить основные критерии для занесения данных в БД.

13

Завершение работы над программой (проверка работоспособности)

Продемонстрировать работу системы тестов руководителю и/или преподавателю

Создать БД проекта, внести данные

Разработать БД проекта для внесения в неё данных.

14

Отработать программу и представить руководителю

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

Отработать программу и представить руководителю

Отработать программу на VBA (систему тестов) и представить руководителю

15

оптимизация работы программы

Структурировать полученные программой результаты после тестирования

Структурировать полученные результаты обработки БД программой

Структурировать полученные результаты и на их основе создать БД.

16

Подготовить реферат и презентацию

Подготовить реферат и презентацию

Готовиться к сдаче диплома.

Подготовить реферат и презентацию

Подготовить реферат и презентацию

17

Защита работы

Защита работы

Защита работы

Защита работы

5.2 Перечень публикаций

Луканов А.В. Имитационное моделирование процесса управления искусственным кровообращением/ А. В. Луканов, В. М. Радомский // Инновационные технологии в работе с одарённой молодёжью: Сборник статей (2015 г., г. Самара). - 2015. - С. 450 - 453.

5.3 Перечень участия в конференциях

· Поволжская конференция " Творческий потенциал - 2013, осень" г. Самара, СГАСУ

· Международная научно-практическая конференция с элементами научной школы для молодежи "Творческий потенциал - 2014" г. Самара, СГАСУ

5.4 Перечень выполненных в период обучения курсовых работ и проектов

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

Таблица 9 - Перечень курсовых работ

Курс

Дисциплина

Семестр

Тема

1

Технология профессиональной деятельности

Осенний семестр 2011 года

Обзор методов принятия сложных многокритериальных решений

1

Технология профессиональной деятельности

Весенний семестр 2012 года

Кластеризация студенческого коллектива

2

Технология профессиональной деятельности

Осенний семестр 2012 года

Разработка аппроксимационной линейной модели работы компонентов творческой квалификации

2

Технология профессиональной деятельности

Весенний семестр 2013 года

Разработка программной поддержки деятельности преподавателя в системе мониторинга НИРС.

3

Технология профессиональной деятельности

Осенний семестр 2013 года

Реализация семестровой модели развития компетенций и исследование закономерностей путем многократного моделирования

3

Технология профессиональной деятельности

Весенний семестр 2014 года

Модельная система поддержки изобретательской деятельности на основе геометрических эффектов

4

Технология профессиональной деятельности

Осенний семестр 2014 года

Имитационное моделирование процесса управления искусственным кровообращением

4

Технология профессиональной деятельности

Весенний семестр 2015 года

Программный комплекс моделирования процесса управления искусственным кровообращением

5.5 Портфолио

Ф.И.О: Луканов Алексей Вячеславович 23.10.1992 г.р.

Год поступления: 2011 год

Год окончания:2015 год

E-mail: Loid44715@yandex.ru

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

Рисунок 22 - портфолио

ЗАКЛЮЧЕНИЕ

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

Было произведено исследование, в котором было ясно показано, что на пациентов с разной массой тела, препарат действует разное количество времени .

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Радомский В.М. К вопросу определения полей корневых траекторий аналитической самонастраивающейся системы управления артериальным давлением[Текст] /В.М Радомский/ В сб. трудов научно- технической конференции "Механика, теплоэнергетика, автоматика". - Куйбышев, 1971.

2. Луканов А.В. Имитационное моделирование процесса управления искусственным кровообращением[Текст]/ А. В. Луканов, В. М. Радомский // Инновационные технологии в работе с одарённой молодёжью: Сборник статей (2015 г., г. Самара). - 2015. - С. 450 - 453

3. Wiki. Физиология [Электронный ресурс] // Режим доступа: http://ru-wiki.org/wiki/Физиология.

4. Евдокимов А.В Объектно-ориентированный подход в вычислительной математике и имитационном моделирование[Текст] / А.В Евдокимов.

5. Традиция. UML [Электронный ресурс] // Режим доступа: http://traditio-ru.org/wiki/UML

6. Википедия. Windows 7 [Электронный ресурс] // Режим доступа: http://ru.wikipedia.org/ Winwows_7

7. Википедия. Qt [Электронный ресурс] // Режим доступа: http://ru.wikipedia.org/wiki/Qt.

8. Википедия. C++ [Электронный ресурс] // Режим доступа: http://ru.wikipedia.org/wiki/C%2B%2B.

ПРИЛОЖЕНИЕ А

Руководство оператора

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ

УНИВЕРСИТЕТ» (СГАСУ)

«УТВЕРЖДАЮ»

Зав. кафедрой ПМиВТ

__________ С.А.Пиявский

«____»___________2015 г.

ПК МОДЕЛИРОВАНИЯ ПРОЦЕССА УПРАВЛЕНИЯ ИСКУССТВЕННЫМ КРОВООБРАЩЕНИЕМ.

Руководство оператора

ЛИСТ УТВЕРЖДЕНИЯ

02068389.50100.008 И3.01.1 ЛУ

Листов 1

Руководитель разработки:

__________ Радомский В.М.

Разработчик:

Студент группы ГИП-111

__________ Луканов А.В.

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ

УНИВЕРСИТЕТ» (СГАСУ)

УТВЕРЖДЕНО

02068389.50100.008 И3.01.1 ЛУ

ПК МОДЕЛИРОВАНИЯ ПРОЦЕССА УПРАВЛЕНИЯ ИСКУССТВЕННЫМ КРОВООБРАЩЕНИЕМ

Руководство оператора

02068389.50100.008 И3.01.1

Листов 3

А1. Введение

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

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

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

Пользователь программы должны иметь навыки работы с персональным компьютером. Также им необходимо быть знакомым с предметной областью.

А2. Назначение и условия применения

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

Работа с системой доступна всем пользователям.

Минимальные требования к техническому и программному обеспечению. Требования к процессору определяются требованиями ОС.

Минимальные требования к клиенту:

- процессор класса Pentium с тактовой частотой 1 ГГц и выше;

- объем свободного дискового пространства не менее 1 Гб;

- объем оперативной памяти не менее 2 Гб;

- любая ОС (для примера требования написаны для ОС Windows 7 Home Basic);

- манипулятор типа «мышь»;

- монитор с разрешением 1280x1024.

Условия работы

- температура окружающего воздуха -15 - +25 °С;

- относительная влажность - 45-75%.

- содержание вредных веществ, пыли и подвижного воздуха в рабочей зоне соответствует нормам ГОСТ 12.1.005, 12.1.007; комплекс должен удовлетворять санитарным правилам и нормам СанПиН 2.2.2/2.4.1340-03.

А3. Подготовка к работе

Руководство пользователя имитационной модели системы искусственного кровообращения , разрабатывалось в соответствии с РД 50-34.698- 90. В нем регламентировались правила оформления руководства пользователя, порядок и расположение пунктов в тексте, описывающем работу с программным комплексом, размеры и положение рисунков.

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

А4. Описание операций

Введение сосудосужающих и сосудорасширяющих препаратов.

Во время работы программы, когда она имитирует работу системы кровообращения, могут возникнуть ошибки.

Русунок А.1 - Работа программы

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

Рисунок А.2 - Расширение сосудов

Рисунок А.3 - Сужение сосудов

ПРИЛОЖЕНИЕ Б

Руководство программиста

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ

УНИВЕРСИТЕТ» (СГАСУ)

«УТВЕРЖДАЮ»

Зав. кафедрой ПМиВТ

__________ С.А.Пиявский

«____»___________2015 г.

ПК МОДЕЛИРОВАНИЯ ПРОЦЕССА УПРАВЛЕНИЯ ИСКУССТВЕННЫМ КРОВООБРАЩЕНИЕМ.

Руководство программиста.

ЛИСТ УТВЕРЖДЕНИЯ

02068389.50100.008 И3.01.1 ЛУ

Листов 1

Руководитель разработки:

__________ Радомский В.М.

Разработчик:

Студент группы ГИП-111

__________ Луканов А.В.

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

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ

УНИВЕРСИТЕТ» (СГАСУ)

УТВЕРЖДЕНО

02068389.50100.008 И3.01.1 ЛУ

ПК МОДЕЛИРОВАНИЯ ПРОЦЕССА УПРАВЛЕНИЯ ИСКУССТВЕННЫМ КРОВООБРАЩЕНИЕМ.

Руководство программиста.

02068389.50100.008 И3.01.1

Листов 6

АННОТАЦИЯ

В данном программном документе приведено руководство программиста по использованию программы "Model.exe", предназначенной для получения медицинских экспериментальных данных.

В данном программном документе, в разделе «Назначение и условия применения программы» указаны назначение и функции, выполняемые программой, условия, необходимые для выполнения программы (объем оперативной памяти, требования к составу и параметрам периферийных устройств, требования к программному обеспечению и т.п.).

В разделе «Характеристика программы» приведено описание основных характеристик и особенностей программы (режим работы, средства контроля правильности выполнения и т.п.).

В данном программном документе, в разделе «Входные и выходные данные» приведено описание организации используемой входной и выходной информации.

В разделе «Сообщения» указаны тексты сообщений, выдаваемых программисту или оператору в ходе выполнения программы, описание их содержания и действий, которые необходимо предпринять по этим сообщениям.

Оформление программного документа «Руководство программиста» произведено по требованиям ЕСПД (ГОСТ 19.101-77 1), ГОСТ 19.103-77 2), ГОСТ 19.104-78* 3), ГОСТ 19.105-78* 4), ГОСТ 19.106-78* 5), ГОСТ 19.504-79* 6), ГОСТ 19.604-78* 7)).

Б1. НАЗННАЧЕНИЕ И УСЛОВИЕ ПРИМЕНЕНИЯ ПРОГРАММЫ

Б1.1 Назначение программы

Не всегда есть возможность дать все нужные данные по работе с системой искусственного кровообращения, и то как на неё действуют сосудосужающие и сосудорасширяющие препараты. Данная программа помогает это продемонстрировать в любое время, не прибегая к реальным опытам.

Б1.2 Функции, выполняемые программой

Основной функцией программы "Model.exe" является имитация системы искусственного кровообращения, и то как на неё действуют сосудосужающие и сосудорасширяющие препараты.

Программа Model реализует следующие функции:

* Постройка графиков, по реальным значениям данных биологического объекта.

* Показывает, как на эти данные, действует сосудосужающий препарат.

* Показывает, как на эти данные, действует сосудорасширяющий препарат.

Б1.3 Условия, необходимые для выполнения программы

Б1.3.1 Объем оперативной памяти

Для выполнения своих функций, программе «Model.exe» достаточно 100 Мб оперативной памяти. Но, исходя из того, что для функционирования операционной системы необходимо минимум 32 Мб оперативной памяти, то рекомендуется использовать программу «Model.exe» на ПК, имеющем ОЗУ более 512 Мб.

Б1.3.2 Требования к составу периферийных устройств

Никаких требований к составу периферийных устройств, программа «Model.exe» не предъявляет.

Б1.3.3 Требования к параметрам периферийных устройств

Никаких требований к параметрам периферийных устройств, программа «Model.exe» не предъявляет.

Б1.3.4 Требования к программному обеспечению

Системные программные средства, используемые программой Model.exe, должны быть представлены локализованной версией операционной системы Windows 8 или Windows 7.

Программа «Model.exe» не предназначена для самостоятельной работы, она работает тогда, когда её запускает пользователь. Программа Model может быть установлена в любое удобное для пользователя место. Для установки данной программы достаточно скопировать перечисленные ниже файлы в указанную папку на компьютере пользователя. Каких-либо настроек после копирования программы Model не требуется.

Список необходимых файлов программы Model:

* Model 314 572 800 байт

Б1.3.5 Требования к персоналу (программисту)

Программист должен иметь минимум среднее техническое образование и должен быть аттестован минимум на II квалификационную группу по электробезопасности (для работы с конторским оборудованием)

В перечень задач, выполняемых программистом, должны входить:

а) задача поддержания работоспособности технических средств;

б) задача поддержания работоспособности системных программных средств - операционной системы.

Б2. ХАРАКТЕРИСТИКА ПРОГРАММЫ

Б2.1 Описание основных характеристик программы

Б2.1.1 Режим работы программы

Режим работы программы Model.exe круглосуточный непрерывный.

Б2.1.2 Контроль правильности выполнения программы

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

Б2.2 Описание основных особенностей программы

Программа Model.exe не имеет пользовательского интерфейса и не предоставляет конечному пользователю возможности настройки и изменения своих параметров.

Б3. ОБРАЩЕНИЕ К ПРОГРАММЕ

Б3.1 Загрузка и запуск программы

Загрузка и запуск программы «Model.exe» осуществляется способами, детальные сведения о которых изложены в "Руководстве пользователя" программным комплексом.

Б3.2 Выполнение программы

Б3.2.1 Выполнение функции программы

Выполнение функций программы «Model.exe» осуществляется способами, детальные сведения о которых изложены в "Руководстве пользователя" программным комплексом.

Б3.3 Завершение работы программы

Программа «Model.exe» выключается простейшим нажатием на кнопку "Выход".

Б4. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ

Б4.1 Организация используемой входной информации

Программа «Model.exe» в ходе своей работы не использует входных данных которые можно ввести. Все входные данные уже внесены и появляются исключительно как подсказка в работе.

Б4.2 Организация используемой выходной информации

Программа «Model.exe» в ходе своей работы все выходные данные выдаёт как обозначение на графиках.

Б5. СООБЩЕНИЯ

Б5.1 Сообщение о вводе препаратов

Программа «Model.exe» выдает сообщение о вводе сосудосужающего препарата, показанное на рисунке 1 и о вводе сосудорасширяющего препарата на рисунке 2.

Рисунок Б1 - Ввод сосудосужающего препарата

Рисунок Б2 - Ввод сосудорасширяющего препарата

Всё связанное с дальнейшими действиями описано в "Руководстве пользователя" программным комплексом.

Приложение В

Листинг основных программных модулей

Листинг основных программных модулей:

main.cpp

#include "mainwindow.h"

#include <QApplication>

#include "mainn.h"

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

MainWindow w;

w.setWindowTitle("Программный комплекс моделирования процесса управления искусственным кровообращением");

w.show();

return a.exec();

}

mainwindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <qwt_plot.h>

#include <qwt_plot_grid.h>

#include <qwt_legend.h>

#include <qwt_plot_curve.h>

#include <qwt_symbol.h>

#include <qwt_plot_magnifier.h>

#include <qwt_plot_panner.h>

#include <qwt_plot_picker.h>

#include <qwt_picker_machine.h>

#include<QVBoxLayout>

#include "realtimeplot.h"

#include <QMessageBox>

#include "mainn.h"

QVector <double> q1;

QVector <double> q11;

QVector <double> q111;

QVector <double> q2;

QVector <double> q21;

QVector <double> q211;

QVector <double> q3;

QVector <double> q31;

QVector <double> q311;

bool f = true;

bool d = true;

int t;

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

//ui->label_8->setHidden(1);

//ui->label_10->setHidden(1);

//ui->lineEdit_4->setHidden(1);

//ui->label_6->setHidden(1)

ui->pushButton_2->setHidden(1);

ui->pushButton_3->setHidden(1);

ui->Qwt_Widget->setAxisScale(QwtPlot::yLeft, 0, 3);

ui->Qwt_Widget->setAxisScale(QwtPlot::xBottom, 0, 100);

ui->Qwt_Widget2->setAxisScale(QwtPlot::yLeft, 0, 120);

ui->Qwt_Widget2->setAxisScale(QwtPlot::xBottom, 0, 100);

ui->Qwt_Widget3->setAxisScale(QwtPlot::yLeft, 0, 120);

ui->Qwt_Widget3->setAxisScale(QwtPlot::xBottom, 0, 100);

}

int i =1;

bool r= true;

bool s= true;

double a;

int fq = 1;

int fq2 = 1;

void MainWindow::gogo2(){

if (ui->lineEdit_5->text().toDouble()<0 || ui->lineEdit_5->text().toDouble() > 200|| ui->lineEdit_5->text()==""|| (ui->lineEdit_5->text().toDouble()/2 == 0))

{

QMessageBox::information(this, "Ошибка", "Некоректное значение веса пациента");

timer->stop();

}

else

{

QwtPlotGrid *grid = new QwtPlotGrid();

QwtPlotGrid *grid2 = new QwtPlotGrid();

QwtPlotGrid *grid3 = new QwtPlotGrid();

if(r == true && s == true)

{

// q11.append(1);

// q111.append(2);

// q21.append(10);

// q211.append(90);

q31.append(10);

q311.append(90);

double ee = 1.1 + double(rand()) / RAND_MAX * (2.0 - 1.1); // менять тута!!!!!!!!!!!!!!!!!!!!!!!!!

double e = 11 + double(rand()) / RAND_MAX * (120.1 - 11);

a =e/ee;

q1.append(ee);

q2.append(e);

q3.append(a);

QString str1 = QString::number(ee);

QString str2 = QString::number(e);

QString str3 = QString::number(a);

ui->lineEdit->setText(str1);

ui->lineEdit_2->setText(str2);

ui->lineEdit_3->setText(str3);

}

else

{

if (r == false)

{

if (fq==1) {

rr = ((ui->lineEdit_5->text().toInt())*2*0.8);

fq =0;

}

ui->lineEdit_4->setText(QString::number(rr));

rr--;

if (rr==0)

{

r = true;

fq = 1;

QMessageBox::information(this, "Информация", "Действие сосудосужающего приепората закночено!");

}

double ee = 1 + double(rand()) / RAND_MAX * (2.0 - 1); // менять тута!!!!!!!!!!!!!!!!!!!!!!!!!

double e = 22 + double(rand()) / RAND_MAX * (88 - 22);

a =e/ee;

q1.append(ee);

q2.append(e);

q3.append(a);

// q11.append(1);

// q111.append(2);

// q21.append(10);

// q211.append(90);

q31.append(10);

q311.append(90);

// r = true;

// s = true;

QString str1 = QString::number(ee);

QString str2 = QString::number(e);

QString str3 = QString::number(a);

ui->lineEdit->setText(str1);

ui->lineEdit_2->setText(str2);

ui->lineEdit_3->setText(str3);

}

if (s == false)

{

if (fq2==1) {

rr2 = ((ui->lineEdit_5->text().toInt())*2*0.7);

fq2 =0;

}

ui->lineEdit_6->setText(QString::number(rr2));

rr2--;

if (rr2==0)

{

s = true;

fq2 = 1;

QMessageBox::information(this, "Информация", "Действие сосудорасшеряющего приепората закночено!");

}

double ee = 1 + double(rand()) / RAND_MAX * (2.0 - 1); // менять тута!!!!!!!!!!!!!!!!!!!!!!!!!

double e = 22 + double(rand()) / RAND_MAX * (88 - 22);

a =e/ee;

q1.append(ee);

q2.append(e);

q3.append(a);

// q11.append(1);

// q111.append(2);

// q21.append(10);

// q211.append(90);

q31.append(10);

q311.append(90);

// r = true;

// s = true;

QString str1 = QString::number(ee);

QString str2 = QString::number(e);

QString str3 = QString::number(a);

ui->lineEdit->setText(str1);

ui->lineEdit_2->setText(str2);

ui->lineEdit_3->setText(str3);;

}

}

// #include <qwt_plot.h>

ui->Qwt_Widget->setTitle( "Скорость кровотока" );

ui->Qwt_Widget->setCanvasBackground( Qt::white );

// Параметры осей координат

ui->Qwt_Widget->setAxisTitle(QwtPlot::yLeft, "Q");

ui->Qwt_Widget->setAxisTitle(QwtPlot::xBottom, "t");

ui->Qwt_Widget->insertLegend( new QwtLegend() );

// ui->Qwt_Widget->setAxisScale(QwtPlot::xBottom, 0, 10);

ui->Qwt_Widget->setAxisScale(QwtPlot::yLeft, 0, 4);

// #include <qwt_plot.h>

ui->Qwt_Widget2->setTitle( "Артериальное давление" );

ui->Qwt_Widget2->setCanvasBackground( Qt::white );

// ui->Qwt_Widget2->setAxisScale(QwtPlot::xBottom, 0, 10);

ui->Qwt_Widget2->setAxisScale(QwtPlot::yLeft, 0, 160);

// Параметры осей координат

ui->Qwt_Widget2->setAxisTitle(QwtPlot::yLeft, "Ра");

ui->Qwt_Widget2->setAxisTitle(QwtPlot::xBottom, "t");

ui->Qwt_Widget2->insertLegend( new QwtLegend() );

// #include <qwt_plot.h>

ui->Qwt_Widget3->setTitle( "Периферическое сопротивление" );

ui->Qwt_Widget3->setCanvasBackground( Qt::white );

// ui->Qwt_Widget3->setAxisScale(QwtPlot::xBottom, 0, 10);

ui->Qwt_Widget3->setAxisScale(QwtPlot::yLeft, 0, 100);

// Параметры осей координат

ui->Qwt_Widget3->setAxisTitle(QwtPlot::yLeft, "Коб");

ui->Qwt_Widget3->setAxisTitle(QwtPlot::xBottom, "t");

ui->Qwt_Widget3->insertLegend( new QwtLegend() );

curve = new QwtPlotCurve();

grid->setMajorPen(QPen( Qt::gray, 2 )); // цвет линий и толщина

grid->attach( ui->Qwt_Widget );

grid2->setMajorPen(QPen( Qt::gray, 2 )); // цвет линий и толщина

grid2->attach( ui->Qwt_Widget2 );

grid3->setMajorPen(QPen( Qt::gray, 1 )); // цвет линий и толщина

grid3->attach( ui->Qwt_Widget3 );

QwtSymbol *symbol = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::red, 3 ), QSize( 1, 1 ) );

curve->setSymbol( symbol );

for (int i = 0; i < q1.size(); i++) {

points << QPointF( q1.size(), q1.at(q1.size()-1) ); // произвольное заполнение

}

curve->setSamples( points ); // ассоциировать набор точек с кривой

curve->attach( ui->Qwt_Widget ); // отобразить кривую на графике

curve11 = new QwtPlotCurve();

QwtSymbol *symbol12 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::green, 1 ), QSize( 1, 1 ) );

curve11->setSymbol( symbol12 );

for (int i = 0; i < q11.size(); i++) {

points11 << QPointF( q11.size(), q11.at(q11.size()-1) ); // произвольное заполнение

}

curve11->setSamples( points11 ); // ассоциировать набор точек с кривой

curve11->attach( ui->Qwt_Widget ); // отобразить кривую на графике

curve111 = new QwtPlotCurve();

QwtSymbol *symbol112 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::green, 1 ), QSize( 1, 1 ) );

curve111->setSymbol( symbol112 );

for (int i = 0; i < q111.size(); i++) {

points111 << QPointF( q111.size(), q111.at(q111.size()-1) ); // произвольное заполнение

}

curve111->setSamples( points111 ); // ассоциировать набор точек с кривой

curve111->attach( ui->Qwt_Widget ); // отобразить кривую на графике

//#include <qwt_plot_curve.h>

curve2 = new QwtPlotCurve();

QwtSymbol *symbol2 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::red, 3 ), QSize( 1, 1 ) );

curve2->setSymbol( symbol2 );

for (int i = 0; i < q2.size(); i++) {

points2 << QPointF( q2.size(), q2.at(q2.size()-1)); // произвольное заполнение

}

curve2->setSamples( points2 ); // ассоциировать набор точек с кривой

curve2->attach( ui->Qwt_Widget2 ); // отобразить кривую на графике

curve21 = new QwtPlotCurve();

QwtSymbol *symbol21 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::green, 1 ), QSize( 1, 1 ) );

curve21->setSymbol( symbol21 );

for (int i = 0; i < q21.size(); i++) {

points21 << QPointF( q21.size(), q21.at(q21.size()-1) ); // произвольное заполнение

}

curve21->setSamples( points21 ); // ассоциировать набор точек с кривой

curve21->attach( ui->Qwt_Widget2 ); // отобразить кривую на графике

curve211 = new QwtPlotCurve();

QwtSymbol *symbol1211 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::green, 1 ), QSize( 1, 1 ) );

curve211->setSymbol( symbol1211 );

for (int i = 0; i < q21.size(); i++) {

points211 << QPointF( q211.size(), q211.at(q211.size()-1) ); // произвольное заполнение

}

curve211->setSamples( points211 ); // ассоциировать набор точек с кривой

curve211->attach( ui->Qwt_Widget2 ); // отобразить кривую на графике

//#include <qwt_plot_curve.h>

curve3 = new QwtPlotCurve();

// curve3->setTitle( "" );

//curve3->setPen( Qt::blue, 1 ); // цвет и толщина кривой

// Маркеры кривой

// #include <qwt_symbol.h>

QwtSymbol *symbol3 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::red, 3 ), QSize( 1, 1 ) );

curve3->setSymbol( symbol3 );

for (int i = 0; i < q3.size(); i++) {

points3 << QPointF( q3.size(), q3.at(q3.size()-1)); // произвольное заполнение

qDebug()<<q3.at(q3.size()-1);

}

curve3->setSamples( points3 ); // ассоциировать набор точек с кривой

curve3->attach( ui->Qwt_Widget3 ); // отобразить кривую на графике

curve31 = new QwtPlotCurve();

QwtSymbol *symbol31 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::green, 1 ), QSize( 1, 1 ) );

curve31->setSymbol( symbol31 );

for (int i = 0; i < q31.size(); i++) {

points31 << QPointF( q31.size(), q31.at(q31.size()-1) ); // произвольное заполнение

}

curve31->setSamples( points31 ); // ассоциировать набор точек с кривой

curve31->attach( ui->Qwt_Widget3 ); // отобразить кривую на графике

curve311 = new QwtPlotCurve();

QwtSymbol *symbol1311 = new QwtSymbol( QwtSymbol::Ellipse,

QBrush( Qt::yellow ), QPen( Qt::green, 1 ), QSize( 1, 1 ) );

curve311->setSymbol( symbol1311 );

for (int i = 0; i < q311.size(); i++) {

points311 << QPointF( q311.size(), q311.at(q311.size()-1) ); // произвольное заполнение

}

curve311->setSamples( points311 ); // ассоциировать набор точек с кривой

curve311->attach( ui->Qwt_Widget3 ); // отобразить кривую на графике

// #include <qwt_plot_magnifier.h>

QwtPlotMagnifier *magnifier =

new QwtPlotMagnifier(ui->Qwt_Widget->canvas());

// клавиша, активирующая приближение/удаление

magnifier->setMouseButton(Qt::MidButton);

// #include <qwt_plot_magnifier.h>

QwtPlotMagnifier *magnifier2 =

new QwtPlotMagnifier(ui->Qwt_Widget2->canvas());

// клавиша, активирующая приближение/удаление

magnifier2->setMouseButton(Qt::MidButton);

// #include <qwt_plot_magnifier.h>

QwtPlotMagnifier *magnifier3 =

new QwtPlotMagnifier(ui->Qwt_Widget3->canvas());

// клавиша, активирующая приближение/удаление

magnifier3->setMouseButton(Qt::MidButton);

QwtPlotPanner *d_panner = new QwtPlotPanner( ui->Qwt_Widget->canvas() );

// клавиша, активирующая перемещение

d_panner->setMouseButton( Qt::RightButton );

// #include <qwt_plot_panner.h>

QwtPlotPanner *d_panner2 = new QwtPlotPanner( ui->Qwt_Widget2->canvas() );

// клавиша, активирующая перемещение

d_panner2->setMouseButton( Qt::RightButton );

// #include <qwt_plot_panner.h>

QwtPlotPanner *d_panner3 = new QwtPlotPanner( ui->Qwt_Widget3->canvas() );

// клавиша, активирующая перемещение

d_panner3->setMouseButton( Qt::RightButton );

QwtPlotPicker *d_picker =

new QwtPlotPicker(

QwtPlot::xBottom, QwtPlot::yLeft, // ассоциация с осями

QwtPlotPicker::CrossRubberBand, // стиль перпендикулярных линий

QwtPicker::AlwaysOn, // всегда включен

ui->Qwt_Widget->canvas() ); // ассоциация с полем

// Цвет перпендикулярных линий

d_picker->setRubberBandPen( QColor( Qt::red ) );

// цвет координат положения указателя

d_picker->setTrackerPen( QColor( Qt::black ) );

// непосредственное включение вышеописанных функций

d_picker->setStateMachine( new QwtPickerDragPointMachine() );

QwtPlotPicker *d_picker2 =

new QwtPlotPicker(

QwtPlot::xBottom, QwtPlot::yLeft, // ассоциация с осями

QwtPlotPicker::CrossRubberBand, // стиль перпендикулярных линий

QwtPicker::AlwaysOn, // всегда включен

ui->Qwt_Widget2->canvas() ); // ассоциация с полем

// Цвет перпендикулярных линий

d_picker2->setRubberBandPen( QColor( Qt::red ) );

// цвет координат положения указателя

d_picker2->setTrackerPen( QColor( Qt::black ) );

// непосредственное включение вышеописанных функций

d_picker2->setStateMachine( new QwtPickerDragPointMachine() );

QwtPlotPicker *d_picker3 =

new QwtPlotPicker(

QwtPlot::xBottom, QwtPlot::yLeft, // ассоциация с осями

QwtPlotPicker::CrossRubberBand, // стиль перпендикулярных линий

QwtPicker::AlwaysOn, // всегда включен

ui->Qwt_Widget3->canvas() ); // ассоциация с полем

// Цвет перпендикулярных линий

d_picker3->setRubberBandPen( QColor( Qt::red ) );

// цвет координат положения указателя

d_picker3->setTrackerPen( QColor( Qt::black ) );

// непосредственное включение вышеописанных функций

d_picker3->setStateMachine( new QwtPickerDragPointMachine() );

// ui->Qwt_Widget->close();

// ui->Qwt_Widget2->close();

// ui->Qwt_Widget3->close();

// ui->Qwt_Widget->show();

// ui->Qwt_Widget2->show();

// ui->Qwt_Widget3->show();

ui->Qwt_Widget->resize(500+i,300);

ui->Qwt_Widget2->resize(500+i,300);

ui->Qwt_Widget3->resize(500+i,300);

i++;

if(a<10)

{

QMessageBox::information(this, "Ошибка!", "Периферическое сопротивление не в пределе нормы! Сосуды сужены! Введите сосудорасширяющий препорат!");

// QMessageBox::StandardButton reply;

// reply = QMessageBox::question(this, "Внимание!", "Периферическое сопротивление не в пределе нормы! Сосуды сужены! Введите сосудорасширяющий препорат!",

// QMessageBox::Yes|QMessageBox::No);

// if (reply == QMessageBox::Yes) {

// s = false;

// }

s = false;

// QwtSymbol *symbol4 = new QwtSymbol( QwtSymbol::Ellipse,

// QBrush( Qt::yellow ), QPen( Qt::red, 3 ), QSize( 9, 9 ) );

// curve3->setSymbol( symbol4 );

}

if(a>90)

{

QMessageBox::information(this, "Ошибка!", "Периферическое сопротивление не в пределе нормы! Сосуды расширены! Введите сосудосужающий препорат!");

// QMessageBox::StandardButton reply;

// reply = QMessageBox::question(this, "Внимание!", "Периферическое сопротивление не в пределе нормы! Сосуды расширены! Введите сосудосужающий препорат!",

// QMessageBox::Yes|QMessageBox::No);

// if (reply == QMessageBox::Yes) {

// r = false;

// }

r = false;

// QwtSymbol *symbol4 = new QwtSymbol( QwtSymbol::Ellipse,

// QBrush( Qt::yellow ), QPen( Qt::red, 3 ), QSize( 9, 9 ) );

// curve3->setSymbol( symbol4 );

}

}

}

void MainWindow::on_pushButton_clicked()

{

r = true;

s = true;

ui->pushButton_2->setHidden(0);

ui->pushButton_3->setHidden(0);

d = false;

//gogo();

//QTimer *timer;

timer = new QTimer(this);

connect(timer,SIGNAL(timeout()),this,SLOT(gogo2()));

timer->start(1000);

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::on_pushButton_2_clicked()

{

points31.clear();

points311.clear();

points21.clear();

points211.clear();

points111.clear();

//q1.clear();

//q2.clear();

//q3.clear();

points11.clear();

points.clear();

points2.clear();

points3.clear();

timer->stop();

// ui->Qwt_Widget->removeItem();

// ui->Qwt_Widget2->removeItem();

// ui->Qwt_Widget3->removeItem();

}

void MainWindow::on_pushButton_3_clicked()

{

q31.clear();

q311.clear();

points31.clear();

points311.clear();

q21.clear();

q211.clear();

points21.clear();

points211.clear();

points21.clear();

q1.clear();

q2.clear();

q3.clear();

q11.clear();

q111.clear();

points11.clear();

points111.clear();

points.clear();

points2.clear();

points3.clear();

if(d==false){ timer->stop();}

d= true;

MainWindow *w2 = new MainWindow ();

w2->show();

close();

}

void MainWindow::on_pushButton_4_clicked()

{

q21.clear();

q211.clear();

points21.clear();

points211.clear();

points21.clear();

points111.clear();

q31.clear();

q311.clear();

points31.clear();

points311.clear();

points31.clear();

points311.clear();

q1.clear();

q2.clear();

q3.clear();

q11.clear();

q111.clear();

points11.clear();

points.clear();

points2.clear();

points3.clear();

if(d==false){ timer->stop();}

d= true;

// mainn *w2 = new mainn();

// w2->show();

close();

}

Размещено на Allbest.ru

...

Подобные документы

  • Упрощенное регулирование системы управления персоналом и автоматизация её функций. Разработка объектно-ориентированной модели средствами Rational Rose. Разработка функциональной модели системы средствами BPwin. Функциональные возможности системы.

    курсовая работа [940,1 K], добавлен 06.06.2015

  • Создание математической модели системы массового обслуживания на примере банка. Разработка имитационной модели на языке программирования С++. Блок-схема программы, перевод модели на язык программирования. Верификация и валидация имитационной модели.

    курсовая работа [630,5 K], добавлен 01.06.2015

  • C# как объектно-ориентированный язык программирования. Объектно-ориентированный анализ и проектирование системы на языке UML. Сущность программы "Учёт пациентов в регистратуре поликлиники", ее достоинства и недостатки, пошаговая инструкция пользователя.

    курсовая работа [1,5 M], добавлен 17.02.2013

  • Разработка операторского интерфейса системы мониторинга и управления объекта, обладающего инерционными свойствами. Создание программного обеспечения для отображения данных системы в среде программирования ST. Моделирование имитаторов объекта управления.

    курсовая работа [3,1 M], добавлен 14.02.2016

  • Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.

    курсовая работа [275,9 K], добавлен 22.12.2011

  • История развития, характеристика, предназначение и особенности языка программирования Delphi. Разработка проекта создания кроссворда на объектно-ориентированном языке Delphi, который состоит из 19 вопросов по горизонтали и 16 вопросов по вертикали.

    курсовая работа [970,5 K], добавлен 15.05.2014

  • Изучение базовых понятий объектно-ориентированного программирования. Исследование принципов работы с классами и объектами. Построение системы классов для описания плоских геометрических фигур. Анализ методов создания объектов, перемещения на плоскости.

    лабораторная работа [212,0 K], добавлен 10.03.2013

  • Переходная и импульсная характеристики объекта управления. Передаточная функция и переходная характеристика замкнутой системы. Оценка качества переходного процесса в среде LabView. Сравнение частотных характеристик объекта управления и замкнутой системы.

    курсовая работа [1,1 M], добавлен 27.05.2014

  • Даталогическая и инфологическая модели системы управления базой данных футбольного клуба. Обоснование выбора даталогической модели данных. Разработка структуры и системы управления базой данных. Выбор системы программирования, создание форм ввода.

    курсовая работа [406,0 K], добавлен 24.12.2014

  • Понятие стратегического планирования, разработка схем программных блоков и основной программы. Структурная схема имитационной модели, создание модели на языке моделирования General Purpose Simulation System. Математическое описание моделируемой системы.

    дипломная работа [2,6 M], добавлен 12.08.2017

  • Основные понятия объектно-ориентированного программирования в PHP5. Структурный и объектно-ориентированный подход. Класс как абстрактный тип. Реализация класса. Конструкторы и деструкторы. Функция l_visited_style изменение стиля посещенных ссылок.

    курсовая работа [433,2 K], добавлен 13.06.2008

  • Разработка объектно-ориентированной модели информационной подсистемы учета студентов университета во время экзаменационной сессии с помощью программы Rational Rose 2000, с использованием языка UML. Порядок генерации программного кода на языке С++.

    курсовая работа [689,9 K], добавлен 21.06.2011

  • Разработка электронной модели таблицы результатов соревнований по лыжному забегу с помощью объектно-ориентированный языка Паскаль. Схема связи главной формы с подчиненными формами. Разработка пользовательского интерфейса в среде программирования Delphi 7.

    курсовая работа [2,1 M], добавлен 21.01.2013

  • Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.

    курсовая работа [782,4 K], добавлен 26.05.2014

  • Процесс моделирования имитационной модели функционирования класса персональных компьютеров на языке GPSS World. Поиск линейной зависимости и оценка полученного уравнения. Отчет по результатам работы имитационной модели. Листинг разработанной программы.

    курсовая работа [49,2 K], добавлен 07.09.2012

  • Исследование основных динамических характеристик предприятия по заданному каналу управления, результаты которого достаточны для синтеза управляющей системы (СУ). Построение математической модели объекта управления. Анализ частотных характеристик СУ.

    курсовая работа [2,1 M], добавлен 14.07.2012

  • Моделирование вариантов объектно-ориентированных программных систем. Проектирование статический структуры, интерфейса, диаграмм компонентов и архитектуры приложения для разработки имитационной модели информационной системы "Центр обслуживания абонентов".

    дипломная работа [951,4 K], добавлен 24.10.2010

  • Направления деятельности ООО "Тирион" и разработка модели "AS-IS" функционирования магазина по обслуживанию покупателей. Возможности табличного процессора MS Excel. Описание интерфейса и физической структуры программного обеспечения имитационной модели.

    курсовая работа [990,6 K], добавлен 13.12.2011

  • Представление системы управления конфликтными потоками как системы массового обслуживания с переменной структурой. Вероятностные свойства процесса управления. Построение имитационной модели системы массового обслуживания, математический аппарат.

    дипломная работа [1,4 M], добавлен 27.01.2016

  • Разработка модели, которая способна отобразить все функциональные возможности библиотеки. Субъекты модели публичной библиотеки. Диаграммы классов в соответствии с направлениями развития. Распечатка, зал ожидания для посетителей, продление пользования.

    реферат [962,5 K], добавлен 31.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.