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

📄 preparedata.cpp

📁 一个含有朴素贝耶斯分类方法和决策树分类方法的源代码
💻 CPP
字号:
//********************************************//
//     程序员:巨少辉                          //
//     日期: 2005年11月20日                  //
//     PrepareData.cpp : 实现样本记录分层     //
//********************************************//



#include "stdafx.h"
#include "HeartDM.h"
#include "PrepareData.h"


#include "UserRecordSet.h"
#include "PrepareRecordSet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPrepareData

IMPLEMENT_DYNCREATE(CPrepareData, CListView)

CPrepareData::CPrepareData()
{

}

CPrepareData::~CPrepareData()
{
}


BEGIN_MESSAGE_MAP(CPrepareData, CListView)
	//{{AFX_MSG_MAP(CPrepareData)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPrepareData drawing

void CPrepareData::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CPrepareData diagnostics

#ifdef _DEBUG
void CPrepareData::AssertValid() const
{
	CListView::AssertValid();
}

void CPrepareData::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CPrepareData message handlers
//实现样本记录分层,并导入表pheart中
void CPrepareData::PrepareData()
{
	//创建CUserRecordSet的实例
	CUserRecordSet m_UserRecordSet;
	//创建CPrepareRecordSet的实例
	CPrepareRecordSet m_PrepareRecordSet;

	try
	{
		if(m_UserRecordSet.IsOpen())
			m_UserRecordSet.Close();
		if(m_PrepareRecordSet.IsOpen())
			m_PrepareRecordSet.Close();

		m_UserRecordSet.Open(CRecordset::snapshot,_T("select * from heart"));
		m_UserRecordSet.MoveFirst();
		m_PrepareRecordSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
		//记录分层
		while(!m_UserRecordSet.IsEOF())
		{
			m_PrepareRecordSet.AddNew();
			//age分作三层
			if(m_UserRecordSet.m_age<=40)
			{
				m_PrepareRecordSet.m_page="<=40";

			}
			else if(m_UserRecordSet.m_age>40&&m_UserRecordSet.m_age<60)
			{
				m_PrepareRecordSet.m_page="40..60";

			}
			else
			{
				m_PrepareRecordSet.m_page=">=60";
			}
			

			//sex直接分作两层
			m_PrepareRecordSet.m_psex=m_UserRecordSet.m_sex;

			//cpt分层
			if(m_UserRecordSet.m_cpt>4)
			{

				m_PrepareRecordSet.m_pcpt=4;			

			}
			else if(m_UserRecordSet.m_cpt<1)
			{

				m_PrepareRecordSet.m_pcpt=1;

			}
			else
				m_PrepareRecordSet.m_pcpt=m_UserRecordSet.m_cpt;
			//rbp分层
			if(m_UserRecordSet.m_rbp<=120)
			{
				m_PrepareRecordSet.m_prbp="<=120";

			}
			else if(m_UserRecordSet.m_rbp>120&&m_UserRecordSet.m_rbp<=140)
			{
				m_PrepareRecordSet.m_prbp="120..140";

			}
			else if(m_UserRecordSet.m_rbp>140&&m_UserRecordSet.m_rbp<=160)
			{
				m_PrepareRecordSet.m_prbp="140..160";
			}
			else if(m_UserRecordSet.m_rbp>160&&m_UserRecordSet.m_rbp<180)
			{
				m_PrepareRecordSet.m_prbp="160..180";
			}
			else
			{
				m_PrepareRecordSet.m_prbp=">=180";
			}

			//sci分层
			if(m_UserRecordSet.m_sci<=205)
			{
				m_PrepareRecordSet.m_psci="<=205";
			}
			else if(m_UserRecordSet.m_sci>205&&m_UserRecordSet.m_sci<=270)
			{
				m_PrepareRecordSet.m_psci="205..270";

			}
			else if(m_UserRecordSet.m_sci>270&&m_UserRecordSet.m_sci<340)
			{
				m_PrepareRecordSet.m_psci="270..340";

			}
			else
			{
				m_PrepareRecordSet.m_psci="<=340";
			}
			//fbu分层
			m_PrepareRecordSet.m_pfbu=m_UserRecordSet.m_fbu;
			//rer分层
			m_PrepareRecordSet.m_prer=m_UserRecordSet.m_rer;
			//mhra分层
			if(m_UserRecordSet.m_mhra<=95)
			{
				m_PrepareRecordSet.m_pmhra="<=95";

			}
			else if(m_UserRecordSet.m_mhra>95&&m_UserRecordSet.m_mhra<=120)
			{
				m_PrepareRecordSet.m_pmhra="90..120";

			}
			else if(m_UserRecordSet.m_mhra>120&&m_UserRecordSet.m_mhra<=144)
			{
				m_PrepareRecordSet.m_pmhra="120..144";

			}
			else if(m_UserRecordSet.m_mhra>144&&m_UserRecordSet.m_mhra<168)
			{
				m_PrepareRecordSet.m_pmhra="144..168";

			}
			else
			{
				m_PrepareRecordSet.m_pmhra=">=168";

			}
			//eia分层
			m_PrepareRecordSet.m_peia=m_UserRecordSet.m_eia;
			//op分层
			if(m_UserRecordSet.m_op<=2)
			{
				m_PrepareRecordSet.m_pop="<=2";

			}
			else if(m_UserRecordSet.m_op>2&&m_UserRecordSet.m_op<4)
			{
				m_PrepareRecordSet.m_pop="2..4";

			}
			else
			{
				m_PrepareRecordSet.m_pop=">=4";

			}
			//sope分层
			if(m_UserRecordSet.m_sope<=1.6)
			{
				
				m_PrepareRecordSet.m_psope="1";

			}
			else if(m_UserRecordSet.m_sope<2.3&&m_UserRecordSet.m_sope>1.6)
			{
				m_PrepareRecordSet.m_psope="2";
			}
			else
			{
				m_PrepareRecordSet.m_psope="3";
			}
			//nomv分层
			if(m_UserRecordSet.m_nomv<=0.75)
			{
				m_PrepareRecordSet.m_pnomv="0";

			}
			else if(m_UserRecordSet.m_nomv>0.75&&m_UserRecordSet.m_nomv<=1.5)
			{
				m_PrepareRecordSet.m_pnomv="1";

			}
			else if(m_UserRecordSet.m_nomv>1.5&&m_UserRecordSet.m_nomv<2.25)
			{
				m_PrepareRecordSet.m_pnomv="2";			
			}
			else
			{
				m_PrepareRecordSet.m_pnomv="3";			
			}
			//thal分层
			m_PrepareRecordSet.m_pthal=m_UserRecordSet.m_thal;
			//y_n分层
			m_PrepareRecordSet.m_py_n=m_UserRecordSet.m_y_n;
			if(m_PrepareRecordSet.CanUpdate())
			{
				m_PrepareRecordSet.Update();
			}
			m_UserRecordSet.MoveNext();
			m_PrepareRecordSet.Requery();
		}
		if(m_UserRecordSet.IsOpen())
		{
			m_UserRecordSet.Close();
		}
		if(m_PrepareRecordSet.IsOpen())
		{
			m_PrepareRecordSet.Close();
		}
	}
	catch(CDBException *e)
	{
		e->ReportError();
		return;
	}
	AfxMessageBox("预处理成功!");

}

⌨️ 快捷键说明

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