📄 baocomplete.h
字号:
// BaoComplete.h: interface for the CBaoComplete class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BAOCOMPLETE_H__64D6FBA1_03BD_11D4_9208_0080C8E21834__INCLUDED_)
#define AFX_BAOCOMPLETE_H__64D6FBA1_03BD_11D4_9208_0080C8E21834__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define MAX 30
class CBaoComplete
{
public:
// char ** pDecDigital;
int iStage;
char cStyle[MAX];
BOOL SaveFile(LPCTSTR lpszPathName);
char** pDataType;
char*** pStringTable;
int iAttNum;
int iRecordNum;
BOOL bIncompletion;
//用于标记表中是否存在遗漏的属性值,存在为true,不存在
//为false,通过执行函数GetIncompletion来判断
struct itab //具体存储决策表中每个属性值的数据结构,第一个字段表示类型
{ //后三个字段只有一个有效,由mark字段决定到底填充到那个字段
int mark; //标记该属性值的类型:1-Integer、2-Float、3-String
int intnub; //若属性值为整型,则写入该字段,此时其余两个字段无效
float fltnub;//若属性值为实型,则写入该字段,此时其余两个字段无效
char chnub[MAX]; //若属性值为字符串型,则写入该字段,此时其余两个字段无效
};
struct itab** ii; //具体存储决策表中的属性值的表
struct itab **itemp;//补齐时使用的临时表,用于和ii的比较
int* t; //用于表示每一个属性的数据类型:1-整型、2-实型、3-字符串型
int pl; //记录数,就是iRecordNum,具体分配存储空间时使用
int bl; //属性数,就是iAttNum+1,具体分配存储空间时使用
char** pAttName;
BOOL ReadDataFromFile(LPCTSTR lpszPathName);
//从文件中读取相关数据,并初次检查是否存在遗漏属性值,通过调用下面4个函数实现
BOOL SetAttName(FILE* fp, int count);
//从输入文件中读取属性名到pAttName中
BOOL SetDataType(FILE *fp, int count);
//从输入文件中读取每个属性的类型到pDataType中
BOOL SetStringTable(FILE* fp, int column, int row);
//从输入文件中读取属性值到决策表中,暂时全部作为字符串型数据
int CBaoComplete::GetIncompletion();
//检查表中是否存在遗漏的属性值,若存在返回1,否则返回0
BOOL InitTable(); //把pStringTable中的数据具体的转化成其本身的类型
BOOL Remedy(); //具体算法的执行函数,在此完成补齐
CBaoComplete();
virtual ~CBaoComplete(); //析构函数,负责所有指针的释放
};
#endif // !defined(AFX_BAOCOMPLETE_H__64D6FBA1_03BD_11D4_9208_0080C8E21834__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -