{
CDC *dc = m_grapho.GetDC();
CPen SolidPen;
SolidPen.CreatePen(PS_SOLID,1,RGB(255,255,255));
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
dc->SelectObject(brush);
dc->SelectObject(SolidPen);
dc->Rectangle(350,10,580,30);
double _tmp;
char crds[15];
CString coords;
_tmp=(point.x-36)*1000/kX+_par;
itoa((int)(_tmp),crds,10);
coords=crds;
itoa(ABS((int)(_tmp*100)%100),crds,10);
(ABS((int)(_tmp*100)%100)<10)?coords+=".0":coords+=".";
coords+=crds;
if (function==GAUSSIAN)
gcvt(fuzzy.fisGaussianMf(_tmp,param),2,crds);
else
if (function==TRIANGLE)
gcvt(fuzzy.fisTriangleMf(_tmp,param),2,crds);
else
if (function==TRAPEZOID)
gcvt(fuzzy.fisTrapezoidMf(_tmp,param),2,crds);
else
if (function==GAUSSIAN2)
gcvt(fuzzy.fisGaussian2Mf(_tmp,param),2,crds);
else
if (function==SIGMOID)
gcvt(fuzzy.fisSigmoidMf(_tmp,param),2,crds);
else
crds[0]='\0';
CFont *font = new CFont();
font->CreateFont(14, 10, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Courier");
dc->SelectObject(font);
dc->TextOut(50,10,"Точка x:"+coords+" Степень принадлежности:"+crds);
}
CDialog::OnMouseMove(nFlags, point);
}
Результат выполнения программы изображен на рисунке 4.1. В данном случае построена сигмоидальная функция принадлежности.
Рисунок 4.1 – Результат выполнения программы – сигмоидальная функция принадлежности
ВЫВОДЫ
Результатом работы является исполняемое Win32-приложение, позволяющее строить следующие функции принадлежности:
- треугольную;
- трапециидальную;
- гауссовскую;
- расширенную гауссовскую;
- сигмоидальную.
Так же программа позволяет определять значение степени принадлежности заданной точки x.
В ходе разработки приложения были изучены структура и возможности набора классов MFC, принципы проектирования визуального интерфейса пользователя в операционной среде MS Windows с использованием среды разработки MS Visual Studio. Было замечено, что классы MFC существенно ускоряют процесс создания приложений для операционной системы Microsoft Windows.
Так же были изучены основы теории нечетких множеств, в частности функции принадлежности.
ПЕРЕЧЕНЬ ССЫЛОК
1. Microsoft Developer Network Library April 2003
2. Васильев В.И., Ильясов Б.Г. Интеллектуальные системы управления с использованием нечеткой логики: Учеб. пособие / Уфимск. гос. авиац. техн. ун-т. -Уфа, 1995.
скачать бесплатно Библиотека MFC
Содержание дипломной работы
Идея, лежащая в основе теории нечетких множеств, заключается в том, что человек в своей повседневной жизни мыслит и принимает решения на основе нечетких понятий
Тогда нечетким множеством С называется множество упорядоченных пар вида C={MFc(x)/x}, MFc(x) [0,1]
Последнее, что осталось сделать – построить функции принадлежности для каждого лингвистического терма из базового терм-множества T
Нечеткая нейронная сеть как правило состоит из четырех слоев: слоя фазификации входных переменных, слоя агрегирования значений активации условия, слоя агрегирования нечетких правил и выходного слоя
В отличие от простых когнитивных карт, нечеткие когнитивные карты представляют собой нечеткий ориентированный граф, узлы которого являются нечеткими множествами
Когда MS Windows обнаруживает ресурс окна в программе, она использует команды из этого ресурса для конструирования работающего окна
При перемещении мыши выводится значение точки x (с учетом масштаба) и степень принадлежности (значение данной функции принадлежности) этой точки x
гос
h"
include