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

📄 disone.h

📁 某个实验事编写粗糙集智能信息处理的程序
💻 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 + -