⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yyzincompleteis3.cpp

📁 某个实验事编写粗糙集智能信息处理的程序
💻 CPP
字号:
// YyzIncompleteIS3.cpp: implementation of the CYyzIncompleteIS3 class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "YyzIncompleteIS3.h"
#include "globe3.h"
#include <iostream.h>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
using namespace globe3;
CYyzIncompleteIS3::CYyzIncompleteIS3()
{
	pNum=new int[2];

}

CYyzIncompleteIS3::~CYyzIncompleteIS3()
{
	int i,j;
	for(i=0;i<Rec_Num;i++)
	{
		for(j=0;j<ConAttrNum;j++)
			delete [] ISTable[i][j];
		delete [] ISTable[i];
	}
	delete [] ISTable;
	for(i=0;i<Rec_Num;i++){
		delete[] pIS[i];
	}
	delete[] pIS;
	delete[] pDecis;
	delete[] pNum;
	for(int m=0;m<ConAttrNum+1;m++)
	{
		delete[] ConName[m];
		delete[] ConType[m];
	}
	delete[] ConType;
	delete[] ConName;

//	delete[] FileName;
}


void CYyzIncompleteIS3::InitIS(char* filename)
{//初始化信息表
	int j;
	In_File=filename;
	ReadRecConNum(filename,pNum);
	Rec_Num=pNum[1];
    ConAttrNum=pNum[0];
//	delete[] pNum;
	ISTable=new char **[Rec_Num];//Initial ISTable
	for(i=0;i<Rec_Num;i++)
	{
		ISTable[i]=new char*[ConAttrNum];
		for(j=0;j<ConAttrNum;j++)
			ISTable[i][j]=new char [1000];
	}
    pIS=new  float * [Rec_Num];
	for(i=0;i<Rec_Num;i++)
	{
		pIS[i]=new float [ConAttrNum];
	}
    pConAttr=new int[ConAttrNum];// condition attribut sets
	for(i=0;i<ConAttrNum;i++){// condition attribut sets
		pConAttr[i]=i;// condition attribut sets
	}
	ConAttrSet.SetParameter (pConAttr,ConAttrNum);// condition attribut sets
	delete[] pConAttr;
	pDecis=new int[Rec_Num];
	ConName= new char*[ConAttrNum+1];
	ConType= new char*[ConAttrNum+1];
	for(i=0;i<ConAttrNum+1;i++)
	{
		ConName[i]=new char[20];
		ConType[i]=new char[20];
	}
	InputInfSys(filename,pIS,ISTable,pDecis,ConName,ConType);
}

bool CYyzIncompleteIS3::perform()
{

///////////////select conditon attributs///////////////////////////////////////////////////////////////////////////////
 	float Criterion;
	int RecNum=Rec_Num;
    bool bAllAsterisk=true;
	int i,j;
	for(i=0;i<RecNum;i++){
		for(j=0;j<ConAttrSet.GetCard ();j++){
			if(pIS[i][j]!=-1){
                  bAllAsterisk=false;
				  break;
			}
		}
	}
	if(bAllAsterisk){
		AfxMessageBox(" 没有意义的数据集");
		return false;
	}

	Criterion =float(CardofPosRegion(pIS,ISTable,pDecis,RecNum,ConAttrSet))/RecNum;
    SelConAttrSet(Criterion,Rset, pIS, ISTable,RecNum,ConAttrSet, pDecis);
	return true;
}

void CYyzIncompleteIS3::WriteFile(char *filename)
{
//	cout<<"generate rules!"<<endl;
	GenerateRules(In_File,filename,pIS,ISTable,pDecis,Rset,Rec_Num,ConAttrNum,ConName,ConType);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -