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

📄 robot.~cpp

📁 自动聊天机器人
💻 ~CPP
字号:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Robot.h"
#include "Robotconfig.h"
//---------------------------------------------------------------------------

__fastcall ChatRobot::ChatRobot( const AnsiString &name, ChatRobot::SEX sex, int age )
    {
       this->Name = name;
       this->Sex  = sex;
       this->Age  = age;
       this->mp_Logger = NULL;
    }
//---------------------------------------------------------------------------
__fastcall ChatRobot::ChatRobot()
    {
       this->Name = DEF_ROBOT_NAME;
       this->Sex  = DEF_ROBOT_SEX;           //不带参数的构造函数,;
       this->Age  = DEF_ROBOT_AGE;
       this->mp_Logger = NULL;
    }
//---------------------------------------------------------------------------
void __fastcall ChatRobot::SetLogger( IInfoLog *logger )
 {
        this->mp_Logger = logger;       //机器人通过一个中间接口来发送消息;
 }
//---------------------------------------------------------------------------
void __fastcall ChatRobot::Talk( const AnsiString &Info )
{
      TStringList *strlist;
      strlist = new TStringList();
      int len;
      AnsiString filename = ExtractFilePath( Application->ExeName );
      filename = filename + "dialog.txt";
      strlist->LoadFromFile(filename);

      if(this->mp_Logger == NULL) return;

      for( len = 0; len < strlist->Count; len++ )    //len列表中的行
            if( Info.Pos( strlist->Names[len] ) > 0 )    //返回是否匹配用户发送过来的关键字值
            { //ShowMessage(strlist->Names[len]);
            break;
            }
       if( len < strlist->Count && len >= 0 )
       this->mp_Logger->Log( Now(), this->Name, strlist->Values[strlist->Names[len]] );
      else
       {    //len = random( strlist->Count );     //随机产生一个不大于strlist->Count的数
            this->mp_Logger->Log( Now(), this->Name, strlist->Values[strlist->Names[18]] );
       }

       delete  strlist;

}
//---------------------------------------------------------------------------
void __fastcall ChatRobot::Introduce( void )
{
   AnsiString s;

   if( this->mp_Logger == NULL ) return;

   s = "您好,我叫" + this->Name + ",今年" + this->Age + "岁,";
   switch( this->Sex )
   {
      case ChatRobot::Male :
           s = s + "是一位帅哥哦!";
           break;
      case ChatRobot::Female :
           s = s + "是一位美女哦!";
           break;
      default:
           s = s + "性别未明!";
   }

   this->mp_Logger->Log( Now(), this->Name, s );
}

#pragma package(smart_init)

⌨️ 快捷键说明

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