📄 disone.h
字号:
// DisOneDoc1.h: interface for the CDisOneDoc class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DISONEDOC1_H__695DA361_00D7_11D4_A665_0080C8E242DA__INCLUDED_)
#define AFX_DISONEDOC1_H__695DA361_00D7_11D4_A665_0080C8E242DA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef MAX
#define MAX 20
#endif
class CDisOne
{
public:
BOOL ReadDataFromFile(char *filename);//从文件中读取决策表的信息
void OnDisOneSave(LPCTSTR lpszPathName); //保存离散化后的结果
// int load_table();//从pStringTable中将属性值从字符型转换成浮点数型存入infotable中
int search(float val, int condition);//返回属性值val在数组att_val的下标
void make_new_table();//根据产生的断点集cut,得到离散化后的决策表new_table
void get_cut(int * pos);//根据pos(cuts)数组中的断点所在列,得到最终的断点集,并存入cut数组中
void findcuts(int rows,int cols);//在新信息表中选取断点,记录下在表中的列号,存入cuts数组中
int init_matrix(int rows);//生成新的信息表,并返回该表的列数,即为总的断点数目,也就是矩阵的列数 failed:return -1
int logic();
//返回决策表中决策属性不同的记录对的个数n,并生成数组formalas,formalas[i][j][k]表示,
//第i个记录对在第j个属性上的第k个候选断点,formalas[i][j][0]表示第i个记录对在第j个属性上
//候选断点的个数
void selectsort(float **val);//对数组val中的值按从小到大的顺序进行排序
int get_rec_num(int att, float *val);
//返回决策表中第att个属性中出现的不同值的个数,并把出现的属性值保存在数组
//val中,val[0]保存了值的个数
int get_att_val();
//保存决策表中所有属性出现的值在数组att_val中,其中att_val[i][j]表示第i个属性的第j
//个出现的值,att_val[i][0]保存第i个属性出现不同值的个数,并根据att_val中的值产生候
//选断点,保存在interval数组中.其中interval[i][j]表示第i个属性的第j个候选断点,
//interval[i][0]保存第i个属性的候选断点的个数
BOOL OnDisOne();//离散化函数
CDisOne();
virtual ~CDisOne();
/////以下几行为增加部分,处理字符串属性
char*** pStrResult;
float** pNonStringTable;//存放非字符串属性值
int** pStringTableResult;
int iStrAttNum,iNonStrAttNum;//存放表中条件属性的数目
BOOL readAttrInfo(FILE* fp); //将属性名称读入pAttName中,数据类型读入pDataType中
BOOL readTable(FILE* fp); //将字符值读入pStringTable中,非字符串值读入pNonStringTable中
void doString();// 处理字符串类型数据
int* strCuts; //字符串属性断点个数
/////////////
public:
char** pDataType;
char** pAttName;
char*** pStringTable;
int iAttNum;
int iRecordNum;
float ** infotable; //信息表
//private:
// BOOL SetDataType(FILE* fp,int count); //将数据类型读入pDataType中
// BOOL SetAttName(FILE* fp,int count); //将属性名称读入pAttName中
// BOOL SetStringTable(FILE* fp,int column,int row); //将字符值读入pStringTable中
// int ** new_table;
int **NewTable; //离散后的新信息表
float ** cut; //断点
int ** matrix; //选择cuts的矩阵
float ** att_val; //信息表中的唯一值
float ** interval; //分界元素值
float *** formulas;
char cStyle[10];
int iStage;
};
#endif // !defined(AFX_DISONEDOC1_H__695DA361_00D7_11D4_A665_0080C8E242DA__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -