📄 bayesclassifierview.cpp
字号:
// BayesClassifierView.cpp : implementation of the CBayesClassifierView class
//
#include "stdafx.h"
#include "BayesClassifier.h"
#include "BayesClassifierDoc.h"
#include "BayesClassifierView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBayesClassifierView
IMPLEMENT_DYNCREATE(CBayesClassifierView, CFormView)
BEGIN_MESSAGE_MAP(CBayesClassifierView, CFormView)
//{{AFX_MSG_MAP(CBayesClassifierView)
ON_BN_CLICKED(IDC_confirm_BUTTON, OnconfirmBUTTON)
ON_BN_CLICKED(IDC_confirmfylx_BUTTON, OnconfirmfylxBUTTON)
ON_BN_CLICKED(IDC_afresh_BUTTON, OnafreshBUTTON)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBayesClassifierView construction/destruction
CBayesClassifierView::CBayesClassifierView()
: CFormView(CBayesClassifierView::IDD)
{
//{{AFX_DATA_INIT(CBayesClassifierView)
m_FbjCheck = FALSE;
m_KsxtCheck = FALSE;
m_TxstCheck = FALSE;
m_ShilyinCheck = FALSE;
m_FshbCheck = FALSE;
m_HxjcCheck = FALSE;
m_FyfdshbCheck = FALSE;
m_FnzhCheck = FALSE;
m_YxzCheck = FALSE;
m_Fyqjpro = _T("");
m_Jtjpro = _T("");
m_Klbgjpro = _T("");
m_Ptqjpro = _T("");
m_XjjyCheck = FALSE;
m_WkdCheck = FALSE;
m_tt = _T("");
m_HzhgrCheck = FALSE;
m_FinalDiag = _T("");
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CBayesClassifierView::~CBayesClassifierView()
{
}
void CBayesClassifierView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBayesClassifierView)
DDX_Control(pDX, IDC_symptom_EDIT, m_SymptomEdit);
DDX_Control(pDX, IDC_fylqj_RADIO, m_FylqjRadio);
DDX_Check(pDX, IDC_fbj_CHECK, m_FbjCheck);
DDX_Check(pDX, IDC_ksxt_CHECK, m_KsxtCheck);
DDX_Check(pDX, IDC_txst_CHECK, m_TxstCheck);
DDX_Check(pDX, IDC_shilyin_CHECK, m_ShilyinCheck);
DDX_Check(pDX, IDC_fshb_CHECK, m_FshbCheck);
DDX_Check(pDX, IDC_hxjc_CHECK, m_HxjcCheck);
DDX_Check(pDX, IDC_fyfdshb_CHECK, m_FyfdshbCheck);
DDX_Check(pDX, IDC_fnzh_CHECK, m_FnzhCheck);
DDX_Check(pDX, IDC_yxz_CHECK, m_YxzCheck);
DDX_Text(pDX, IDC_fyqjpro_EDIT, m_Fyqjpro);
DDX_Text(pDX, IDC_jtjpro_EDIT, m_Jtjpro);
DDX_Text(pDX, IDC_klbgjpro_EDIT, m_Klbgjpro);
DDX_Text(pDX, IDC_ptqjpro_EDIT, m_Ptqjpro);
DDX_Check(pDX, IDC_xjjy_CHECK, m_XjjyCheck);
DDX_Check(pDX, IDC_wkd_CHECK, m_WkdCheck);
DDX_Text(pDX, IDC_symptom_EDIT, m_tt);
DDX_Check(pDX, IDC_hzhgr_CHECK, m_HzhgrCheck);
DDX_Text(pDX, IDC_finaldiag_EDIT, m_FinalDiag);
//}}AFX_DATA_MAP
}
BOOL CBayesClassifierView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CBayesClassifierView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// CBayesClassifierView diagnostics
#ifdef _DEBUG
void CBayesClassifierView::AssertValid() const
{
CFormView::AssertValid();
}
void CBayesClassifierView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CBayesClassifierDoc* CBayesClassifierView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBayesClassifierDoc)));
return (CBayesClassifierDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CBayesClassifierView message handlers
char sympEdit[500] = "";
int DiseaseNum=0;
int iTanRadio;
void CBayesClassifierView::OnconfirmBUTTON()
{
char sympEdit1[100];
char sympEdit2[100];
char sympEdit3[100];
char sympEdit4[100];
char sympEdit5[100];
char sympEdit6[100];
char sympEdit7[100];
char sympEdit8[100];
char sympEdit9[100];
char sympEdit10[100];
char sympEdit11[100];
char sympEdit12[100];
char sympEdit13[100];
char sympEdit15[100];
char sympEdit14[100];
char sympEdit16[100];
UpdateData(TRUE);
if(m_FbjCheck==TRUE)
{
DiseaseNum++;
//if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
//sprintf(sympEdit1,"%s\r\n","发病急骤;");
// else
sprintf(sympEdit1,"%s","发病急骤;");
strcat(sympEdit,sympEdit1);
}
if(m_HzhgrCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit2,"%s\r\n","寒战高热;");
else
sprintf(sympEdit2,"%s","寒战高热;");
strcat(sympEdit,sympEdit2);
}
if(m_KsxtCheck==TRUE)
{
// strcat(sympEdit,"咳嗽胸痛;");
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit3,"%s\r\n","咳嗽胸痛;");
else
sprintf(sympEdit3,"%s","咳嗽胸痛;");
strcat(sympEdit,sympEdit3);
}
if(m_TxstCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit4,"%s\r\n","铁锈色痰;");
else
sprintf(sympEdit4,"%s","铁锈色痰;");
strcat(sympEdit,sympEdit4);
}
if(m_ShilyinCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit5,"%s\r\n","可闻及湿罗音;");
else
sprintf(sympEdit5,"%s","可闻及湿罗音;");
strcat(sympEdit,sympEdit5);
}
if(m_FshbCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit6,"%s\r\n","肺实变;");
else
sprintf(sympEdit6,"%s","肺实变;");
strcat(sympEdit,sympEdit6);
}
if(m_HxjcCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit7,"%s\r\n","呼吸急促;");
else
sprintf(sympEdit7,"%s","呼吸急促;");
strcat(sympEdit,sympEdit7);
}
if(m_XjjyCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit8,"%s\r\n","胸腔积液;");
else
sprintf(sympEdit8,"%s","胸腔积液;");
strcat(sympEdit,sympEdit8);
}
if(m_FyfdshbCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit9,"%s\r\n","肺叶或肺段实变;");
else
sprintf(sympEdit9,"%s","肺叶或肺段实变;");
strcat(sympEdit,sympEdit9);
}
if(m_WkdCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit10,"%s\r\n","无空洞;");
else
sprintf(sympEdit10,"%s","无空洞;");
strcat(sympEdit,sympEdit10);
}
if(m_FnzhCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit11,"%s\r\n","肺囊肿;");
else
sprintf(sympEdit11,"%s","肺囊肿;");
strcat(sympEdit,sympEdit11);
}
if(m_YxzCheck==TRUE)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit12,"%s\r\n","炎性浸润灶;");
else
sprintf(sympEdit12,"%s","炎性浸润灶;");
strcat(sympEdit,sympEdit12);
}
iTanRadio=GetCheckedRadioButton(IDC_fylqj_RADIO,IDC_jtj_RADIO);
if(iTanRadio==IDC_fylqj_RADIO)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit13,"%s\r\n","发现肺炎链球菌;");
else
sprintf(sympEdit13,"%s","发现肺炎链球菌;");
strcat(sympEdit,sympEdit13);
}
if(iTanRadio==IDC_ptqj_RADIO)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit14,"%s\r\n","发现葡萄球菌菌;");
else
sprintf(sympEdit14,"%s","发现葡萄球菌;");
strcat(sympEdit,sympEdit14);
}
if(iTanRadio==IDC_klbgj_RADIO)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit15,"%s\r\n","发现克雷伯杆菌;");
else
sprintf(sympEdit15,"%s","发现克雷伯杆菌;");
strcat(sympEdit,sympEdit15);
}
if(iTanRadio==IDC_jtj_RADIO)
{
DiseaseNum++;
if(DiseaseNum==2||DiseaseNum==4||DiseaseNum==6||DiseaseNum==8||DiseaseNum==10||DiseaseNum==12)
sprintf(sympEdit16,"%s\r\n","发现军团菌;");
else
sprintf(sympEdit16,"%s","发现军团菌;");
strcat(sympEdit,sympEdit16);
}
m_tt = sympEdit;
UpdateData(0);
//char cl[500]="";
//sympEdit[500]=cl[500];
//m_SymptomEdit.SetSel(0,-1);
//m_SymptomEdit.ReplaceSel(sympEdit);
}
void CBayesClassifierView::OnconfirmfylxBUTTON()
{
//float x1T1,x2T,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16;
char pro1[10]="";
char pro2[10]="";
float T[4]={4,2.5,2,1.5};
float x1T[2][4]={8,5,4,1};
float x2T[2][4]={4,2.5,2,6};
float x3T[2][4]={1.5,2.4,8,3};
float x4T[2][4]={7,2,1,1};
float x5T[2][4]={1,4,7,1};
float x6T[2][4]={2.5,2.5,4,8};
float x7T[2][4]={1.5,1,2.5,4};
float x8T[2][4]={3,7,1,4};
float x9T[2][4]={5.5,2,8,4};
float x10T[2][4]={8.5,1,5,6};
float x11T[2][4]={1,4,2,1};
float x12T[2][4]={3,9,2,6};
float x13T[2][4]={8,0.5,1,0.5};
float x14T[2][4]={0.5,8.5,0.5,0.5};
float x15T[2][4]={0.5,0.5,8,1};
float x16T[2][4]={0.5,0.5,0.5,8.5};
int i;
float PT[4];//后验概率
//判断选择病人的哪几种症状
if(m_FbjCheck==false)
{
for(i=0;i<4;i++)
{
x1T[0][i]=1;
}
}
if(m_HzhgrCheck==false)
{
for(i=0;i<4;i++)
{
x2T[0][i]=1;
}
}
if(m_KsxtCheck==false)
{
for(i=0;i<4;i++)
{
x3T[0][i]=1;
}
}
if(m_TxstCheck==false)
{
for(i=0;i<4;i++)
{
x4T[0][i]=1;
}
}
if(m_ShilyinCheck==false)
{
for(i=0;i<4;i++)
{
x5T[0][i]=1;
}
}
if(m_FshbCheck==false)
{
for(i=0;i<4;i++)
{
x6T[0][i]=1;
}
}
if(m_HxjcCheck==false)
{
for(i=0;i<4;i++)
{
x7T[0][i]=1;
}
}
if(m_XjjyCheck==false)
{
for(i=0;i<4;i++)
{
x8T[0][i]=1;
}
}
if(m_FyfdshbCheck==false)
{
for(i=0;i<4;i++)
{
x9T[0][i]=1;
}
}
if(m_WkdCheck==false)
{
for(i=0;i<4;i++)
{
x10T[0][i]=1;
}
}
if(m_FnzhCheck==false)
{
for(i=0;i<4;i++)
{
x11T[0][i]=1;
}
}
if(m_YxzCheck==false)
{
for(i=0;i<4;i++)
{
x12T[0][i]=1;
}
}
if(!(iTanRadio==IDC_fylqj_RADIO))
{
for(i=0;i<4;i++)
{
x13T[0][i]=1;
}
}
if(!(iTanRadio==IDC_ptqj_RADIO))
{
for(i=0;i<4;i++)
{
x14T[0][i]=1;
}
}
if(!(iTanRadio==IDC_klbgj_RADIO))
{
for(i=0;i<4;i++)
{
x15T[0][i]=1;
}
}
if(!(iTanRadio==IDC_jtj_RADIO))
{
for(i=0;i<4;i++)
{
x16T[0][i]=1;
}
}
float XX[4];float tempt=0;
for(i=0;i<4;i++)
{
XX[i]=x1T[0][i]*x2T[0][i]*x3T[0][i]*x4T[0][i]*x5T[0][i]*x6T[0][i]*x7T[0][i]*x8T[0][i]*x9T[0][i]*x10T[0][i]*x11T[0][i]*x12T[0][i]*x13T[0][i]*x14T[0][i]*x15T[0][i]*x16T[0][i];
}
for(i=0;i<4;i++)
{
tempt+=(XX[i]*T[i]);
}
for(i=0;i<4;i++)
{
PT[i]=(XX[i]*T[i]/tempt)*100;
}
m_Fyqjpro.Format("%.2f%%",PT[0]);
UpdateData(false);
m_Jtjpro.Format("%.2f%%",PT[3]);
UpdateData(false);
m_Klbgjpro.Format("%.2f%%",PT[2]);
UpdateData(false);
m_Ptqjpro.Format("%.2f%%",PT[1]);
UpdateData(false);
float a;
if(PT[0]>PT[1])//?PT1:PT2;
{a=PT[0];}
else
{
a=PT[1];
}
if(a<PT[2])
{
a=PT[2];
}
if(a<PT[3])
{
a=PT[3];
}
if(a==PT[0])
{
m_FinalDiag="肺炎球菌肺炎";
UpdateData(false);
}
if(a==PT[1])
{
m_FinalDiag="葡萄球菌肺炎";
UpdateData(false);
}
if(a==PT[2])
{
m_FinalDiag="克雷伯杆菌肺炎";
UpdateData(false);
}
if(a==PT[3])
{
m_FinalDiag="军团菌肺炎";
UpdateData(false);
}
}
void CBayesClassifierView::OnafreshBUTTON()
{
// 清屏
m_TxstCheck=false;
m_FylqjRadio.SetCheck(0);
m_XjjyCheck=false;
m_KsxtCheck=false;
m_HzhgrCheck=false;
m_ShilyinCheck=false;
m_FshbCheck=false;
m_HxjcCheck=false;
m_FyfdshbCheck=false;
m_WkdCheck=false;
m_FnzhCheck=false;
m_YxzCheck=false;
m_FbjCheck=false;
m_tt="";
// OnconfirmBUTTON();
m_Klbgjpro="";
m_Fyqjpro="";
m_Jtjpro="";
m_Ptqjpro="";
m_FinalDiag="";
DiseaseNum=0;
char sympEdit[500] = "";
UpdateData(false);//更新控件状态
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -