📄 yyzincompleteis3.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 + -