boycontrol.cpp

来自「一个小型的聊天机器人,具备简单的对话逻辑能力」· C++ 代码 · 共 89 行

CPP
89
字号
// BoyControl.cpp: implementation of the CBoyControl class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "WiseBoy.h"
#include "BoyControl.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

#include "SentenceCommon.h"

CBoyControl::CBoyControl()
{

}

CBoyControl::~CBoyControl()
{

}

CString CBoyControl::Question(CString strQuestion)
{
	CString strRet;

	if (!IsStatementSentence(strQuestion))
	{
		strRet = "对不起,我不懂你的语法!";
		return strRet;
	}

	CString strSubject;
	CString strStatement;

	SpltSentence(strQuestion,strSubject,strStatement);

	if (!IsQuestionWord(strStatement))
	{
		if (m_pDB->IsSentenceExist (strSubject,strStatement))
		{
			strRet = "嗯,这个我知道的。";
			return strRet;
		}

		m_pDB->AddSentence (strSubject,strStatement);
		strRet = "谢谢,这个我知道了。";
		return strRet;
	}

	CStringArray arrayStatement;

	m_pDB->GetSubjectStatement (strSubject,arrayStatement);
	
	int nCount = arrayStatement.GetSize();

	if (nCount <= 0)
	{
		strRet = "这个我也不知道,你问问别人吧。";
		return strRet;
	}

	if (nCount == 1)
	{
		strRet = "让我告诉你吧。\r\n";
		strRet += "\t" + strSubject + "是" + arrayStatement[0] + "。";
		return strRet;
	}

	strRet = strSubject + "是这样的:\r\n";
	for (int i=0;i<nCount;i++)
	{
		strRet += "\t" + strSubject + "是" + arrayStatement[i] + "。\r\n";
	}

	strRet.TrimRight ("\r\n");

	return strRet;
}

⌨️ 快捷键说明

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